@getpara/solana-wallet-connectors 1.7.1 → 1.8.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/index.js CHANGED
@@ -1,342 +1,9 @@
1
1
  "use client";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
- var __spreadValues = (a, b) => {
8
- for (var prop in b || (b = {}))
9
- if (__hasOwnProp.call(b, prop))
10
- __defNormalProp(a, prop, b[prop]);
11
- if (__getOwnPropSymbols)
12
- for (var prop of __getOwnPropSymbols(b)) {
13
- if (__propIsEnum.call(b, prop))
14
- __defNormalProp(a, prop, b[prop]);
15
- }
16
- return a;
17
- };
18
- var __async = (__this, __arguments, generator) => {
19
- return new Promise((resolve, reject) => {
20
- var fulfilled = (value) => {
21
- try {
22
- step(generator.next(value));
23
- } catch (e) {
24
- reject(e);
25
- }
26
- };
27
- var rejected = (value) => {
28
- try {
29
- step(generator.throw(value));
30
- } catch (e) {
31
- reject(e);
32
- }
33
- };
34
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
35
- step((generator = generator.apply(__this, __arguments)).next());
36
- });
37
- };
38
-
39
- // src/providers/SolanaExternalWalletContext.tsx
40
- import { createContext as createContext2, useEffect as useEffect2, useMemo as useMemo2, useRef } from "react";
41
- import { useWallet } from "@solana/wallet-adapter-react";
42
- 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
- import { WalletType } from "@getpara/web-sdk";
122
- import { useExternalWalletProviderStore as useExternalWalletProviderStore2 } from "@getpara/react-sdk";
123
- import bs58 from "bs58";
124
- import { jsx as jsx2 } from "react/jsx-runtime";
125
- var defaultSolanaExternalWallet = {
126
- wallets: [],
127
- disconnect: () => Promise.resolve(),
128
- signMessage: () => Promise.resolve({}),
129
- signVerificationMessage: () => Promise.resolve({})
130
- };
131
- var SolanaExternalWalletContext = createContext2(defaultSolanaExternalWallet);
132
- function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
133
- const {
134
- wallets: adapters,
135
- select: selectWallet,
136
- disconnect: _disconnect,
137
- publicKey: solanaAddress,
138
- wallet,
139
- connecting,
140
- signMessage: solanaSignMessage,
141
- connected
142
- } = useWallet();
143
- const { wallets: walletFns } = useParaSolana();
144
- const fullAuthWallets = useExternalWalletProviderStore2((state) => state.fullAuthWallets);
145
- const verificationMessage = useRef();
146
- const reset = () => __async(this, null, function* () {
147
- yield _disconnect();
148
- yield para.logout();
149
- });
150
- const login = (address, providerName) => __async(this, null, function* () {
151
- var _a, _b;
152
- 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
- )
160
- });
161
- } catch (err) {
162
- yield reset();
163
- throw "Error logging you in. Please try again.";
164
- }
165
- });
166
- const switchWallet = (address) => __async(this, null, function* () {
167
- var _a;
168
- let error;
169
- if (!address) {
170
- yield para.logout();
171
- } else {
172
- try {
173
- yield login(address, (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name);
174
- } catch (err) {
175
- error = err;
176
- }
177
- }
178
- onSwitchWallet({ address, error });
179
- });
180
- useEffect2(() => {
181
- var _a;
182
- const storedExternalWallet = para.externalWallets[(_a = solanaAddress == null ? void 0 : solanaAddress.toString()) != null ? _a : ""];
183
- if (!!solanaAddress && !storedExternalWallet) {
184
- reset();
185
- }
186
- }, []);
187
- useEffect2(() => {
188
- 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())) {
190
- switchWallet(solanaAddress == null ? void 0 : solanaAddress.toString());
191
- }
192
- }, [solanaAddress, connecting]);
193
- const signMessage = (message) => __async(this, null, function* () {
194
- try {
195
- const encodedMessage = new TextEncoder().encode(message);
196
- const signature = yield solanaSignMessage(encodedMessage);
197
- return {
198
- address: solanaAddress.toString(),
199
- signature: bs58.encode(signature)
200
- };
201
- } catch (e) {
202
- if (e.message.includes("User rejected the request")) {
203
- return { error: "Signature request rejected" };
204
- }
205
- return { error: "An unknown error occurred" };
206
- }
207
- });
208
- const signVerificationMessage = () => __async(this, null, function* () {
209
- const signature = yield signMessage(verificationMessage.current);
210
- return signature;
211
- });
212
- const connect = (adapter) => __async(this, null, function* () {
213
- yield _disconnect();
214
- if (!adapter) {
215
- return { address: void 0, error: "Adapter not found.", userExists: false, isVerified: false };
216
- }
217
- selectWallet(adapter.name);
218
- yield new Promise((resolve) => setTimeout(resolve, 100));
219
- let address;
220
- let error;
221
- let userExists = false;
222
- let isVerified = false;
223
- try {
224
- yield adapter.connect();
225
- address = adapter.publicKey.toString();
226
- if (address) {
227
- try {
228
- const loginResp = yield login(address, adapter.name);
229
- userExists = loginResp.userExists;
230
- isVerified = loginResp.isVerified;
231
- verificationMessage.current = loginResp.signatureVerificationMessage;
232
- } catch (err) {
233
- yield _disconnect();
234
- address = void 0;
235
- error = err;
236
- }
237
- }
238
- } catch (err) {
239
- switch (err.message) {
240
- case "User aborted.":
241
- case "Approval Denied":
242
- case "You canceled this request.": {
243
- error = "Connection request rejected";
244
- break;
245
- }
246
- default: {
247
- error = "An unknown error occurred";
248
- break;
249
- }
250
- }
251
- }
252
- return { address, error, userExists, isVerified };
253
- });
254
- const getAdapter = (name) => {
255
- var _a;
256
- return (_a = adapters.find((a) => a.adapter.name === "Mobile Wallet Adapter" ? a : a.adapter.name === name ? a : false)) == null ? void 0 : _a.adapter;
257
- };
258
- const wallets = walletFns.map((walletFn) => {
259
- const metaData = walletFn();
260
- const adapter = getAdapter(metaData.name);
261
- return __spreadValues({
262
- connect: () => connect(adapter),
263
- connectMobile: () => connect(adapter),
264
- getQrUri: () => "",
265
- type: WalletType.SOLANA,
266
- installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable)
267
- }, metaData);
268
- });
269
- const getWallet = (name) => wallets.find((w) => w.name === name);
270
- const disconnect = () => __async(this, null, function* () {
271
- yield _disconnect();
272
- if (connected) {
273
- typeof window !== void 0 && (window == null ? void 0 : window.location.reload());
274
- }
275
- });
276
- return /* @__PURE__ */ jsx2(
277
- SolanaExternalWalletContext.Provider,
278
- {
279
- value: useMemo2(
280
- () => ({ wallets, disconnect, signMessage, signVerificationMessage }),
281
- [wallets, disconnect, signMessage, signVerificationMessage]
282
- ),
283
- children
284
- }
285
- );
286
- }
287
-
288
- // src/wallets/connectors/phantom/phantomIcon.ts
289
- var icon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTAzNl85NDApIj4KICAgIDxwYXRoIGQ9Ik0xMiAyNEMxOC42Mjc0IDI0IDI0IDE4LjYyNzQgMjQgMTJDMjQgNS4zNzI1OCAxOC42Mjc0IDAgMTIgMEM1LjM3MjU4IDAgMCA1LjM3MjU4IDAgMTJDMCAxOC42Mjc0IDUuMzcyNTggMjQgMTIgMjRaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMTAzNl85NDApIi8+CiAgICA8cGF0aCBkPSJNMjAuODgyMyAxMS44ODk3SDE4Ljc1NUMxOC43NTUgNy41MzIyMyAxNS4yMjgyIDQgMTAuODc3MyA0QzYuNTgwMzcgNCAzLjA4Njg5IDcuNDQ1NzYgMy4wMDEzOSAxMS43Mjg2QzIuOTEyOTMgMTYuMTU1NyA3LjA2MDAxIDIwIDExLjQ4MDkgMjBIMTIuMDM3QzE1LjkzNDUgMjAgMjEuMTU4NSAxNi45NDQzIDIxLjk3NDcgMTMuMjIxMUMyMi4xMjU0IDEyLjUzNDggMjEuNTg0MSAxMS44ODk3IDIwLjg4MjMgMTEuODg5N1pNNy43MTU5NiAxMi4wODM4QzcuNzE1OTYgMTIuNjY2NSA3LjI0MDA5IDEzLjE0MzEgNi42NTgyNyAxMy4xNDMxQzYuMDc2NDQgMTMuMTQzMSA1LjYwMDYgMTIuNjY2MyA1LjYwMDYgMTIuMDgzOFYxMC4zNzAxQzUuNjAwNiA5Ljc4NzQ0IDYuMDc2NDQgOS4zMTA4NCA2LjY1ODI3IDkuMzEwODRDNy4yNDAwOSA5LjMxMDg0IDcuNzE1OTYgOS43ODc0NCA3LjcxNTk2IDEwLjM3MDFWMTIuMDgzOFpNMTEuMzg4NiAxMi4wODM4QzExLjM4ODYgMTIuNjY2NSAxMC45MTI4IDEzLjE0MzEgMTAuMzMxIDEzLjE0MzFDOS43NDkxNCAxMy4xNDMxIDkuMjczMzIgMTIuNjY2MyA5LjI3MzMyIDEyLjA4MzhWMTAuMzcwMUM5LjI3MzMyIDkuNzg3NDQgOS43NDkzNSA5LjMxMDg0IDEwLjMzMSA5LjMxMDg0QzEwLjkxMjggOS4zMTA4NCAxMS4zODg2IDkuNzg3NDQgMTEuMzg4NiAxMC4zNzAxVjEyLjA4MzhaIiBmaWxsPSJ1cmwoI3BhaW50MV9saW5lYXJfMTAzNl85NDApIi8+CiAgPC9nPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzEwMzZfOTQwIiB4MT0iMTIiIHkxPSIwIiB4Mj0iMTIiIHkyPSIyNCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjNTM0QkIxIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzU1MUJGOSIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xMDM2Xzk0MCIgeDE9IjEyLjUiIHkxPSI0IiB4Mj0iMTIuNSIgeTI9IjIwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0id2hpdGUiIHN0b3Atb3BhY2l0eT0iMC44MiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcDBfMTAzNl85NDAiPgogICAgICA8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9IndoaXRlIi8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+";
290
-
291
- // src/wallets/connectors/phantom/phantom.ts
292
- var phantomWallet = () => {
293
- return {
294
- id: "phantom",
295
- name: "Phantom",
296
- iconUrl: icon,
297
- isExtension: true,
298
- isMobile: true,
299
- getUri: () => "",
300
- downloadUrl: "https://phantom.app/download"
301
- };
302
- };
303
-
304
- // src/wallets/connectors/glow/glowIcon.ts
305
- var icon2 = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTAzN18xMjEwKSI+CiAgICA8cGF0aCBkPSJNMjAuNDE2MiAyMC41NTQxQzE4LjE3MzggMjIuNzY1OCAxNS4xNDk2IDI0LjAwNCAxMiAyNEM4Ljg1NzU3IDI0LjAwNDcgNS44Mzk2NSAyMi43NzE5IDMuNTk5MjQgMjAuNTY4NEM4LjUxMzI5IDE2LjY5NzkgMTUuNDk2NiAxNi42OTM0IDIwLjQxNjIgMjAuNTU0MVpNMjAuNTU0MSAyMC40MTYyQzIyLjc2NTggMTguMTczOCAyNC4wMDQgMTUuMTQ5NiAyNCAxMkMyNCA4LjcyOTQ4IDIyLjY5MTggNS43NjU2MSAyMC41NzA2IDMuNjAwMzRDMTYuNjk3OSA4LjUyODczIDE2LjY5MzQgMTUuNDk3NyAyMC41NTQxIDIwLjQxNjJaTTIwLjQzMzkgMy40NjM1NkMxNS41MDc3IDcuMzQ0MDYgOC41MDIyNiA3LjMzODU1IDMuNTgwNDggMy40NDkyMkM1LjgyMzA2IDEuMjM1MjkgOC44NDg3MSAtMC4wMDQyMjQ3NCAxMiAxLjA4MTk0ZS0wNUMxNS4yODcxIDEuMDgxOTRlLTA1IDE4LjI2NjQgMS4zMjI1NiAyMC40MzM5IDMuNDYzNTZaTTMuNDQ5MjIgMy41ODA0OEMxLjIzNTI5IDUuODIzMDYgLTAuMDA0MjI0NzQgOC44NDg3MSAxLjA4MTk0ZS0wNSAxMkMxLjA4MTk0ZS0wNSAxNS4yODgyIDEuMzIyNTYgMTguMjY2NCAzLjQ2MzU2IDIwLjQzMzlDNy4zNDQwNiAxNS41MDc3IDcuMzM4NTUgOC41MDIyNiAzLjQ0OTIyIDMuNTgwNDhaIiBmaWxsPSIjQ0M2MkQ1Ii8+CiAgPC9nPgogIDxkZWZzPgogICAgPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDM3XzEyMTAiPgogICAgICA8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9IndoaXRlIi8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+";
306
-
307
- // src/wallets/connectors/glow/glow.ts
308
- var glowWallet = () => {
309
- return {
310
- id: "glow",
311
- name: "Glow",
312
- iconUrl: icon2,
313
- isExtension: true,
314
- isMobile: true,
315
- getUri: () => "",
316
- downloadUrl: "https://glow.app"
317
- };
318
- };
319
-
320
- // src/wallets/connectors/backpack/backpackIcon.ts
321
- var icon3 = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swXzEzNDFfMzQiIHN0eWxlPSJtYXNrLXR5cGU6bHVtaW5hbmNlIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI0IiB5PSIwIiB3aWR0aD0iMTciIGhlaWdodD0iMjQiPgo8cGF0aCBkPSJNMjAuNSAwSDRWMjRIMjAuNVYwWiIgZmlsbD0id2hpdGUiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzEzNDFfMzQpIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy44MTMgMS44ODcwOEMxNC42ODUzIDEuODg3MDggMTUuNTAzNSAyLjAwNDAyIDE2LjI2MTIgMi4yMjA4OUMxNS41MTk1IDAuNDkyMjU0IDEzLjk3OTUgMCAxMi4yNjU2IDBDMTAuNTQ4MyAwIDkuMDA1NjUgMC40OTQxODggOC4yNjU2MiAyLjIzMTA3QzkuMDE3NjUgMi4wMDY1NyA5LjgzMjM2IDEuODg3MDggMTAuNzAxNyAxLjg4NzA4SDEzLjgxM1pNMTAuNTAyMiAzLjYyMjU2QzYuMzYwMDMgMy42MjI1NiA0IDYuODgxMTQgNCAxMC45MDA4VjE1LjAzQzQgMTUuNDMyIDQuMzM1NzkgMTUuNzUgNC43NSAxNS43NUgxOS43NUMyMC4xNjQyIDE1Ljc1IDIwLjUgMTUuNDMyIDIwLjUgMTUuMDNWMTAuOTAwOEMyMC41IDYuODgxMTQgMTcuNzU1NiAzLjYyMjU2IDEzLjYxMzUgMy42MjI1NkgxMC41MDIyWk0xMi4yNDQxIDEwLjkzNjVDMTMuNjkzOSAxMC45MzY1IDE0Ljg2OTIgOS43NjEyMyAxNC44NjkyIDguMzExNTNDMTQuODY5MiA2Ljg2MTc4IDEzLjY5MzkgNS42ODY1MyAxMi4yNDQxIDUuNjg2NTNDMTAuNzk0NCA1LjY4NjUzIDkuNjE5MTQgNi44NjE3OCA5LjYxOTE0IDguMzExNTNDOS42MTkxNCA5Ljc2MTIzIDEwLjc5NDQgMTAuOTM2NSAxMi4yNDQxIDEwLjkzNjVaTTQgMTguMTc3MUM0IDE3Ljc3NTEgNC4zMzU3OSAxNy40NDkyIDQuNzUgMTcuNDQ5MkgxOS43NUMyMC4xNjQyIDE3LjQ0OTIgMjAuNSAxNy43NzUxIDIwLjUgMTguMTc3MVYyMi41NDRDMjAuNSAyMy4zNDc5IDE5LjgyODQgMjMuOTk5NyAxOSAyMy45OTk3SDUuNUM0LjY3MTU3IDIzLjk5OTcgNCAyMy4zNDc5IDQgMjIuNTQ0VjE4LjE3NzFaIiBmaWxsPSIjRTMzRTNGIi8+CjwvZz4KPC9zdmc+Cg==";
322
-
323
- // src/wallets/connectors/backpack/backpack.ts
324
- var backpackWallet = () => {
325
- return {
326
- id: "backpack",
327
- name: "Backpack",
328
- iconUrl: icon3,
329
- isExtension: true,
330
- isMobile: true,
331
- getUri: () => "",
332
- downloadUrl: "https://backpack.app/download"
333
- };
334
- };
2
+ import { SolanaExternalWalletProvider, SolanaExternalWalletContext } from "./providers/SolanaExternalWalletContext.js";
3
+ import { ParaSolanaProvider } from "./providers/ParaSolanaProvider.js";
4
+ export * from "./wallets/connectors/index.js";
335
5
  export {
336
6
  ParaSolanaProvider,
337
7
  SolanaExternalWalletContext,
338
- SolanaExternalWalletProvider,
339
- backpackWallet,
340
- glowWallet,
341
- phantomWallet
8
+ SolanaExternalWalletProvider
342
9
  };
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,102 @@
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 { jsx } from "react/jsx-runtime";
23
+ import { createContext, useContext, useEffect, useMemo, useState } from "react";
24
+ import { ConnectionProvider, WalletProvider as SolanaWalletProvider } from "@solana/wallet-adapter-react";
25
+ import { useClient, useExternalWalletProviderStore } from "@getpara/react-sdk";
26
+ import { SolanaExternalWalletContext, SolanaExternalWalletProvider } from "./SolanaExternalWalletContext.js";
27
+ import {
28
+ createDefaultAddressSelector,
29
+ createDefaultAuthorizationResultCache,
30
+ createDefaultWalletNotFoundHandler,
31
+ SolanaMobileWalletAdapter
32
+ } from "@solana-mobile/wallet-adapter-mobile";
33
+ const defaultWallet = {
34
+ wallets: []
35
+ };
36
+ const ParaSolanaContext = createContext(defaultWallet);
37
+ function ParaSolanaProvider({
38
+ children,
39
+ wallets: walletFns,
40
+ endpoint,
41
+ appIdentity,
42
+ chain,
43
+ connectionConfig,
44
+ para: _para
45
+ }) {
46
+ const updateExternalWalletProviderState = useExternalWalletProviderStore((state) => state.updateState);
47
+ const SolanaProvider = useExternalWalletProviderStore((state) => state.SolanaProvider);
48
+ const solanaContext = useExternalWalletProviderStore((state) => state.solanaContext);
49
+ const [shouldAutoConnect, setShouldAutoConnect] = useState(true);
50
+ const para = _para != null ? _para : useClient();
51
+ useEffect(() => {
52
+ setShouldAutoConnect(false);
53
+ }, []);
54
+ useEffect(() => {
55
+ if (!solanaContext || !SolanaProvider) {
56
+ updateExternalWalletProviderState({
57
+ SolanaProvider: SolanaExternalWalletProvider,
58
+ solanaContext: SolanaExternalWalletContext
59
+ });
60
+ }
61
+ }, []);
62
+ const value = useMemo(() => ({ wallets: walletFns }), [walletFns]);
63
+ if (!solanaContext || !SolanaProvider) {
64
+ return null;
65
+ }
66
+ return /* @__PURE__ */ jsx(ConnectionProvider, { endpoint, config: connectionConfig, children: /* @__PURE__ */ jsx(
67
+ SolanaWalletProvider,
68
+ {
69
+ wallets: [
70
+ new SolanaMobileWalletAdapter({
71
+ addressSelector: createDefaultAddressSelector(),
72
+ appIdentity,
73
+ authorizationResultCache: createDefaultAuthorizationResultCache(),
74
+ chain,
75
+ onWalletNotFound: createDefaultWalletNotFoundHandler()
76
+ })
77
+ ],
78
+ localStorageKey: "paraSolanaExternal",
79
+ autoConnect: (adapter) => __async(this, null, function* () {
80
+ var _a;
81
+ const hasParaExternalWallet = (_a = Object.values(para.externalWallets)) == null ? void 0 : _a.find((w) => w.name === adapter.name);
82
+ if (shouldAutoConnect && hasParaExternalWallet) {
83
+ if (!para.isExternalWalletAuth) {
84
+ return true;
85
+ } else if (para.isExternalWalletAuth && (yield para.isFullyLoggedIn())) {
86
+ return true;
87
+ }
88
+ return false;
89
+ }
90
+ return false;
91
+ }),
92
+ children: /* @__PURE__ */ jsx(ParaSolanaContext.Provider, { value, children })
93
+ }
94
+ ) });
95
+ }
96
+ const useParaSolana = () => useContext(ParaSolanaContext);
97
+ export {
98
+ ParaSolanaContext,
99
+ ParaSolanaProvider,
100
+ defaultWallet,
101
+ useParaSolana
102
+ };
@@ -0,0 +1,212 @@
1
+ "use client";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __spreadValues = (a, b) => {
8
+ for (var prop in b || (b = {}))
9
+ if (__hasOwnProp.call(b, prop))
10
+ __defNormalProp(a, prop, b[prop]);
11
+ if (__getOwnPropSymbols)
12
+ for (var prop of __getOwnPropSymbols(b)) {
13
+ if (__propIsEnum.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ }
16
+ return a;
17
+ };
18
+ var __async = (__this, __arguments, generator) => {
19
+ return new Promise((resolve, reject) => {
20
+ var fulfilled = (value) => {
21
+ try {
22
+ step(generator.next(value));
23
+ } catch (e) {
24
+ reject(e);
25
+ }
26
+ };
27
+ var rejected = (value) => {
28
+ try {
29
+ step(generator.throw(value));
30
+ } catch (e) {
31
+ reject(e);
32
+ }
33
+ };
34
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
35
+ step((generator = generator.apply(__this, __arguments)).next());
36
+ });
37
+ };
38
+ import { jsx } from "react/jsx-runtime";
39
+ import { createContext, useEffect, useMemo, useRef } from "react";
40
+ import { useWallet } from "@solana/wallet-adapter-react";
41
+ import { WalletReadyState } from "@solana/wallet-adapter-base";
42
+ import { useParaSolana } from "./ParaSolanaProvider.js";
43
+ import { WalletType } from "@getpara/web-sdk";
44
+ import { useExternalWalletProviderStore } from "@getpara/react-sdk";
45
+ import bs58 from "bs58";
46
+ const defaultSolanaExternalWallet = {
47
+ wallets: [],
48
+ disconnect: () => Promise.resolve(),
49
+ signMessage: () => Promise.resolve({}),
50
+ signVerificationMessage: () => Promise.resolve({})
51
+ };
52
+ const SolanaExternalWalletContext = createContext(defaultSolanaExternalWallet);
53
+ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
54
+ const {
55
+ wallets: adapters,
56
+ select: selectWallet,
57
+ disconnect: _disconnect,
58
+ publicKey: solanaAddress,
59
+ wallet,
60
+ connecting,
61
+ signMessage: solanaSignMessage,
62
+ connected
63
+ } = useWallet();
64
+ const { wallets: walletFns } = useParaSolana();
65
+ const fullAuthWallets = useExternalWalletProviderStore((state) => state.fullAuthWallets);
66
+ const verificationMessage = useRef();
67
+ const reset = () => __async(this, null, function* () {
68
+ yield _disconnect();
69
+ yield para.logout();
70
+ });
71
+ const login = (address, providerName) => __async(this, null, function* () {
72
+ var _a, _b;
73
+ try {
74
+ return yield para.externalWalletLogin({
75
+ address,
76
+ type: WalletType.SOLANA,
77
+ provider: providerName,
78
+ withFullParaAuth: fullAuthWallets == null ? void 0 : fullAuthWallets.includes(
79
+ (_b = (_a = getWallet(providerName != null ? providerName : "")) == null ? void 0 : _a.id.toUpperCase()) != null ? _b : ""
80
+ )
81
+ });
82
+ } catch (err) {
83
+ yield reset();
84
+ throw "Error logging you in. Please try again.";
85
+ }
86
+ });
87
+ const switchWallet = (address) => __async(this, null, function* () {
88
+ var _a;
89
+ let error;
90
+ if (!address) {
91
+ yield para.logout();
92
+ } else {
93
+ try {
94
+ yield login(address, (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name);
95
+ } catch (err) {
96
+ error = err;
97
+ }
98
+ }
99
+ onSwitchWallet({ address, error });
100
+ });
101
+ useEffect(() => {
102
+ var _a;
103
+ const storedExternalWallet = para.externalWallets[(_a = solanaAddress == null ? void 0 : solanaAddress.toString()) != null ? _a : ""];
104
+ if (!!solanaAddress && !storedExternalWallet) {
105
+ reset();
106
+ }
107
+ }, []);
108
+ useEffect(() => {
109
+ const storedExternalWallet = Object.values(para.externalWallets || {})[0];
110
+ if (!connecting && (storedExternalWallet == null ? void 0 : storedExternalWallet.type) === WalletType.SOLANA && (storedExternalWallet == null ? void 0 : storedExternalWallet.address) !== (solanaAddress == null ? void 0 : solanaAddress.toString())) {
111
+ switchWallet(solanaAddress == null ? void 0 : solanaAddress.toString());
112
+ }
113
+ }, [solanaAddress, connecting]);
114
+ const signMessage = (message) => __async(this, null, function* () {
115
+ try {
116
+ const encodedMessage = new TextEncoder().encode(message);
117
+ const signature = yield solanaSignMessage(encodedMessage);
118
+ return {
119
+ address: solanaAddress.toString(),
120
+ signature: bs58.encode(signature)
121
+ };
122
+ } catch (e) {
123
+ if (e.message.includes("User rejected the request")) {
124
+ return { error: "Signature request rejected" };
125
+ }
126
+ return { error: "An unknown error occurred" };
127
+ }
128
+ });
129
+ const signVerificationMessage = () => __async(this, null, function* () {
130
+ const signature = yield signMessage(verificationMessage.current);
131
+ return signature;
132
+ });
133
+ const connect = (adapter) => __async(this, null, function* () {
134
+ yield _disconnect();
135
+ if (!adapter) {
136
+ return { address: void 0, error: "Adapter not found.", userExists: false, isVerified: false };
137
+ }
138
+ selectWallet(adapter.name);
139
+ yield new Promise((resolve) => setTimeout(resolve, 100));
140
+ let address;
141
+ let error;
142
+ let userExists = false;
143
+ let isVerified = false;
144
+ try {
145
+ yield adapter.connect();
146
+ address = adapter.publicKey.toString();
147
+ if (address) {
148
+ try {
149
+ const loginResp = yield login(address, adapter.name);
150
+ userExists = loginResp.userExists;
151
+ isVerified = loginResp.isVerified;
152
+ verificationMessage.current = loginResp.signatureVerificationMessage;
153
+ } catch (err) {
154
+ yield _disconnect();
155
+ address = void 0;
156
+ error = err;
157
+ }
158
+ }
159
+ } catch (err) {
160
+ switch (err.message) {
161
+ case "User aborted.":
162
+ case "Approval Denied":
163
+ case "You canceled this request.": {
164
+ error = "Connection request rejected";
165
+ break;
166
+ }
167
+ default: {
168
+ error = "An unknown error occurred";
169
+ break;
170
+ }
171
+ }
172
+ }
173
+ return { address, error, userExists, isVerified };
174
+ });
175
+ const getAdapter = (name) => {
176
+ var _a;
177
+ return (_a = adapters.find((a) => a.adapter.name === "Mobile Wallet Adapter" ? a : a.adapter.name === name ? a : false)) == null ? void 0 : _a.adapter;
178
+ };
179
+ const wallets = walletFns.map((walletFn) => {
180
+ const metaData = walletFn();
181
+ const adapter = getAdapter(metaData.name);
182
+ return __spreadValues({
183
+ connect: () => connect(adapter),
184
+ connectMobile: () => connect(adapter),
185
+ getQrUri: () => "",
186
+ type: WalletType.SOLANA,
187
+ installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable)
188
+ }, metaData);
189
+ });
190
+ const getWallet = (name) => wallets.find((w) => w.name === name);
191
+ const disconnect = () => __async(this, null, function* () {
192
+ yield _disconnect();
193
+ if (connected) {
194
+ typeof window !== void 0 && (window == null ? void 0 : window.location.reload());
195
+ }
196
+ });
197
+ return /* @__PURE__ */ jsx(
198
+ SolanaExternalWalletContext.Provider,
199
+ {
200
+ value: useMemo(
201
+ () => ({ wallets, disconnect, signMessage, signVerificationMessage }),
202
+ [wallets, disconnect, signMessage, signVerificationMessage]
203
+ ),
204
+ children
205
+ }
206
+ );
207
+ }
208
+ export {
209
+ SolanaExternalWalletContext,
210
+ SolanaExternalWalletProvider,
211
+ defaultSolanaExternalWallet
212
+ };
@@ -0,0 +1 @@
1
+ "use client";
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { icon } from "./backpackIcon.js";
3
+ const backpackWallet = () => {
4
+ return {
5
+ id: "backpack",
6
+ name: "Backpack",
7
+ iconUrl: icon,
8
+ isExtension: true,
9
+ isMobile: true,
10
+ getUri: () => "",
11
+ downloadUrl: "https://backpack.app/download"
12
+ };
13
+ };
14
+ export {
15
+ backpackWallet
16
+ };
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ const icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swXzEzNDFfMzQiIHN0eWxlPSJtYXNrLXR5cGU6bHVtaW5hbmNlIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI0IiB5PSIwIiB3aWR0aD0iMTciIGhlaWdodD0iMjQiPgo8cGF0aCBkPSJNMjAuNSAwSDRWMjRIMjAuNVYwWiIgZmlsbD0id2hpdGUiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swXzEzNDFfMzQpIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy44MTMgMS44ODcwOEMxNC42ODUzIDEuODg3MDggMTUuNTAzNSAyLjAwNDAyIDE2LjI2MTIgMi4yMjA4OUMxNS41MTk1IDAuNDkyMjU0IDEzLjk3OTUgMCAxMi4yNjU2IDBDMTAuNTQ4MyAwIDkuMDA1NjUgMC40OTQxODggOC4yNjU2MiAyLjIzMTA3QzkuMDE3NjUgMi4wMDY1NyA5LjgzMjM2IDEuODg3MDggMTAuNzAxNyAxLjg4NzA4SDEzLjgxM1pNMTAuNTAyMiAzLjYyMjU2QzYuMzYwMDMgMy42MjI1NiA0IDYuODgxMTQgNCAxMC45MDA4VjE1LjAzQzQgMTUuNDMyIDQuMzM1NzkgMTUuNzUgNC43NSAxNS43NUgxOS43NUMyMC4xNjQyIDE1Ljc1IDIwLjUgMTUuNDMyIDIwLjUgMTUuMDNWMTAuOTAwOEMyMC41IDYuODgxMTQgMTcuNzU1NiAzLjYyMjU2IDEzLjYxMzUgMy42MjI1NkgxMC41MDIyWk0xMi4yNDQxIDEwLjkzNjVDMTMuNjkzOSAxMC45MzY1IDE0Ljg2OTIgOS43NjEyMyAxNC44NjkyIDguMzExNTNDMTQuODY5MiA2Ljg2MTc4IDEzLjY5MzkgNS42ODY1MyAxMi4yNDQxIDUuNjg2NTNDMTAuNzk0NCA1LjY4NjUzIDkuNjE5MTQgNi44NjE3OCA5LjYxOTE0IDguMzExNTNDOS42MTkxNCA5Ljc2MTIzIDEwLjc5NDQgMTAuOTM2NSAxMi4yNDQxIDEwLjkzNjVaTTQgMTguMTc3MUM0IDE3Ljc3NTEgNC4zMzU3OSAxNy40NDkyIDQuNzUgMTcuNDQ5MkgxOS43NUMyMC4xNjQyIDE3LjQ0OTIgMjAuNSAxNy43NzUxIDIwLjUgMTguMTc3MVYyMi41NDRDMjAuNSAyMy4zNDc5IDE5LjgyODQgMjMuOTk5NyAxOSAyMy45OTk3SDUuNUM0LjY3MTU3IDIzLjk5OTcgNCAyMy4zNDc5IDQgMjIuNTQ0VjE4LjE3NzFaIiBmaWxsPSIjRTMzRTNGIi8+CjwvZz4KPC9zdmc+Cg==";
3
+ export {
4
+ icon
5
+ };
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { icon } from "./glowIcon.js";
3
+ const glowWallet = () => {
4
+ return {
5
+ id: "glow",
6
+ name: "Glow",
7
+ iconUrl: icon,
8
+ isExtension: true,
9
+ isMobile: true,
10
+ getUri: () => "",
11
+ downloadUrl: "https://glow.app"
12
+ };
13
+ };
14
+ export {
15
+ glowWallet
16
+ };
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ const icon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTAzN18xMjEwKSI+CiAgICA8cGF0aCBkPSJNMjAuNDE2MiAyMC41NTQxQzE4LjE3MzggMjIuNzY1OCAxNS4xNDk2IDI0LjAwNCAxMiAyNEM4Ljg1NzU3IDI0LjAwNDcgNS44Mzk2NSAyMi43NzE5IDMuNTk5MjQgMjAuNTY4NEM4LjUxMzI5IDE2LjY5NzkgMTUuNDk2NiAxNi42OTM0IDIwLjQxNjIgMjAuNTU0MVpNMjAuNTU0MSAyMC40MTYyQzIyLjc2NTggMTguMTczOCAyNC4wMDQgMTUuMTQ5NiAyNCAxMkMyNCA4LjcyOTQ4IDIyLjY5MTggNS43NjU2MSAyMC41NzA2IDMuNjAwMzRDMTYuNjk3OSA4LjUyODczIDE2LjY5MzQgMTUuNDk3NyAyMC41NTQxIDIwLjQxNjJaTTIwLjQzMzkgMy40NjM1NkMxNS41MDc3IDcuMzQ0MDYgOC41MDIyNiA3LjMzODU1IDMuNTgwNDggMy40NDkyMkM1LjgyMzA2IDEuMjM1MjkgOC44NDg3MSAtMC4wMDQyMjQ3NCAxMiAxLjA4MTk0ZS0wNUMxNS4yODcxIDEuMDgxOTRlLTA1IDE4LjI2NjQgMS4zMjI1NiAyMC40MzM5IDMuNDYzNTZaTTMuNDQ5MjIgMy41ODA0OEMxLjIzNTI5IDUuODIzMDYgLTAuMDA0MjI0NzQgOC44NDg3MSAxLjA4MTk0ZS0wNSAxMkMxLjA4MTk0ZS0wNSAxNS4yODgyIDEuMzIyNTYgMTguMjY2NCAzLjQ2MzU2IDIwLjQzMzlDNy4zNDQwNiAxNS41MDc3IDcuMzM4NTUgOC41MDIyNiAzLjQ0OTIyIDMuNTgwNDhaIiBmaWxsPSIjQ0M2MkQ1Ii8+CiAgPC9nPgogIDxkZWZzPgogICAgPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDM3XzEyMTAiPgogICAgICA8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9IndoaXRlIi8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+";
3
+ export {
4
+ icon
5
+ };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { phantomWallet } from "./phantom/phantom.js";
3
+ import { glowWallet } from "./glow/glow.js";
4
+ import { backpackWallet } from "./backpack/backpack.js";
5
+ export {
6
+ backpackWallet,
7
+ glowWallet,
8
+ phantomWallet
9
+ };
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { icon } from "./phantomIcon.js";
3
+ const phantomWallet = () => {
4
+ return {
5
+ id: "phantom",
6
+ name: "Phantom",
7
+ iconUrl: icon,
8
+ isExtension: true,
9
+ isMobile: true,
10
+ getUri: () => "",
11
+ downloadUrl: "https://phantom.app/download"
12
+ };
13
+ };
14
+ export {
15
+ phantomWallet
16
+ };
@@ -1 +1 @@
1
- export declare const icon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTAzNl85NDApIj4KICAgIDxwYXRoIGQ9Ik0xMiAyNEMxOC42Mjc0IDI0IDI0IDE4LjYyNzQgMjQgMTJDMjQgNS4zNzI1OCAxOC42Mjc0IDAgMTIgMEM1LjM3MjU4IDAgMCA1LjM3MjU4IDAgMTJDMCAxOC42Mjc0IDUuMzcyNTggMjQgMTIgMjRaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMTAzNl85NDApIi8+CiAgICA8cGF0aCBkPSJNMjAuODgyMyAxMS44ODk3SDE4Ljc1NUMxOC43NTUgNy41MzIyMyAxNS4yMjgyIDQgMTAuODc3MyA0QzYuNTgwMzcgNCAzLjA4Njg5IDcuNDQ1NzYgMy4wMDEzOSAxMS43Mjg2QzIuOTEyOTMgMTYuMTU1NyA3LjA2MDAxIDIwIDExLjQ4MDkgMjBIMTIuMDM3QzE1LjkzNDUgMjAgMjEuMTU4NSAxNi45NDQzIDIxLjk3NDcgMTMuMjIxMUMyMi4xMjU0IDEyLjUzNDggMjEuNTg0MSAxMS44ODk3IDIwLjg4MjMgMTEuODg5N1pNNy43MTU5NiAxMi4wODM4QzcuNzE1OTYgMTIuNjY2NSA3LjI0MDA5IDEzLjE0MzEgNi42NTgyNyAxMy4xNDMxQzYuMDc2NDQgMTMuMTQzMSA1LjYwMDYgMTIuNjY2MyA1LjYwMDYgMTIuMDgzOFYxMC4zNzAxQzUuNjAwNiA5Ljc4NzQ0IDYuMDc2NDQgOS4zMTA4NCA2LjY1ODI3IDkuMzEwODRDNy4yNDAwOSA5LjMxMDg0IDcuNzE1OTYgOS43ODc0NCA3LjcxNTk2IDEwLjM3MDFWMTIuMDgzOFpNMTEuMzg4NiAxMi4wODM4QzExLjM4ODYgMTIuNjY2NSAxMC45MTI4IDEzLjE0MzEgMTAuMzMxIDEzLjE0MzFDOS43NDkxNCAxMy4xNDMxIDkuMjczMzIgMTIuNjY2MyA5LjI3MzMyIDEyLjA4MzhWMTAuMzcwMUM5LjI3MzMyIDkuNzg3NDQgOS43NDkzNSA5LjMxMDg0IDEwLjMzMSA5LjMxMDg0QzEwLjkxMjggOS4zMTA4NCAxMS4zODg2IDkuNzg3NDQgMTEuMzg4NiAxMC4zNzAxVjEyLjA4MzhaIiBmaWxsPSJ1cmwoI3BhaW50MV9saW5lYXJfMTAzNl85NDApIi8+CiAgPC9nPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzEwMzZfOTQwIiB4MT0iMTIiIHkxPSIwIiB4Mj0iMTIiIHkyPSIyNCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjNTM0QkIxIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzU1MUJGOSIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xMDM2Xzk0MCIgeDE9IjEyLjUiIHkxPSI0IiB4Mj0iMTIuNSIgeTI9IjIwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0id2hpdGUiIHN0b3Atb3BhY2l0eT0iMC44MiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcDBfMTAzNl85NDAiPgogICAgICA8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9IndoaXRlIi8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+";
1
+ export declare const icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMjU5Nl8xMzg1ODApIj4KPHJlY3QgeT0iLTAuMDAwOTc2NTYyIiB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiBmaWxsPSIjQUI5RkYyIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNTIyLjIxOCA3NjQuODEzQzQ3NS4xMDEgODM3LjAxMSAzOTYuMTQ3IDkyOC4zNzcgMjkxLjA4OSA5MjguMzc3QzI0MS40MjUgOTI4LjM3NyAxOTMuNjcxIDkwNy45MzIgMTkzLjY3MSA4MTkuMTIxQzE5My42NzEgNTkyLjk0MiA1MDIuNDc5IDI0Mi44MTIgNzg5LjAwMyAyNDIuODEyQzk1Mi4wMDMgMjQyLjgxMiAxMDE2Ljk1IDM1NS45MDEgMTAxNi45NSA0ODQuMzI1QzEwMTYuOTUgNjQ5LjE2NyA5MDkuOTc5IDgzNy42NSA4MDMuNjQ3IDgzNy42NUM3NjkuOTAxIDgzNy42NSA3NTMuMzQ2IDgxOS4xMjEgNzUzLjM0NiA3ODkuNzMxQzc1My4zNDYgNzgyLjA2NCA3NTQuNjIgNzczLjc1OCA3NTcuMTY3IDc2NC44MTNDNzIwLjg3NCA4MjYuNzg4IDY1MC44MzUgODg0LjI5MiA1ODUuMjUzIDg4NC4yOTJDNTM3LjQ5OSA4ODQuMjkyIDUxMy4zMDQgODU0LjI2MiA1MTMuMzA0IDgxMi4wOTNDNTEzLjMwNCA3OTYuNzU5IDUxNi40ODcgNzgwLjc4NiA1MjIuMjE4IDc2NC44MTNaTTc2OS4wMzUgNDc5Ljg3MUM3NjkuMDM1IDUxNy4yOTMgNzQ2Ljk1NiA1MzYuMDAzIDcyMi4yNTggNTM2LjAwM0M2OTcuMTg1IDUzNi4wMDMgNjc1LjQ4MSA1MTcuMjkzIDY3NS40ODEgNDc5Ljg3MUM2NzUuNDgxIDQ0Mi40NDkgNjk3LjE4NSA0MjMuNzM4IDcyMi4yNTggNDIzLjczOEM3NDYuOTU2IDQyMy43MzggNzY5LjAzNSA0NDIuNDQ5IDc2OS4wMzUgNDc5Ljg3MVpNOTA5LjM2NyA0NzkuODcyQzkwOS4zNjcgNTE3LjI5NCA4ODcuMjg4IDUzNi4wMDUgODYyLjU5IDUzNi4wMDVDODM3LjUxNyA1MzYuMDA1IDgxNS44MTMgNTE3LjI5NCA4MTUuODEzIDQ3OS44NzJDODE1LjgxMyA0NDIuNDUgODM3LjUxNyA0MjMuNzQgODYyLjU5IDQyMy43NEM4ODcuMjg4IDQyMy43NCA5MDkuMzY3IDQ0Mi40NSA5MDkuMzY3IDQ3OS44NzJaIiBmaWxsPSIjRkZGREY4Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjU5Nl8xMzg1ODAiPgo8cmVjdCB5PSItMC4wMDA5NzY1NjIiIHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjEyMDAiIHJ4PSI2MDAiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==";
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ const icon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMjU5Nl8xMzg1ODApIj4KPHJlY3QgeT0iLTAuMDAwOTc2NTYyIiB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiBmaWxsPSIjQUI5RkYyIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNTIyLjIxOCA3NjQuODEzQzQ3NS4xMDEgODM3LjAxMSAzOTYuMTQ3IDkyOC4zNzcgMjkxLjA4OSA5MjguMzc3QzI0MS40MjUgOTI4LjM3NyAxOTMuNjcxIDkwNy45MzIgMTkzLjY3MSA4MTkuMTIxQzE5My42NzEgNTkyLjk0MiA1MDIuNDc5IDI0Mi44MTIgNzg5LjAwMyAyNDIuODEyQzk1Mi4wMDMgMjQyLjgxMiAxMDE2Ljk1IDM1NS45MDEgMTAxNi45NSA0ODQuMzI1QzEwMTYuOTUgNjQ5LjE2NyA5MDkuOTc5IDgzNy42NSA4MDMuNjQ3IDgzNy42NUM3NjkuOTAxIDgzNy42NSA3NTMuMzQ2IDgxOS4xMjEgNzUzLjM0NiA3ODkuNzMxQzc1My4zNDYgNzgyLjA2NCA3NTQuNjIgNzczLjc1OCA3NTcuMTY3IDc2NC44MTNDNzIwLjg3NCA4MjYuNzg4IDY1MC44MzUgODg0LjI5MiA1ODUuMjUzIDg4NC4yOTJDNTM3LjQ5OSA4ODQuMjkyIDUxMy4zMDQgODU0LjI2MiA1MTMuMzA0IDgxMi4wOTNDNTEzLjMwNCA3OTYuNzU5IDUxNi40ODcgNzgwLjc4NiA1MjIuMjE4IDc2NC44MTNaTTc2OS4wMzUgNDc5Ljg3MUM3NjkuMDM1IDUxNy4yOTMgNzQ2Ljk1NiA1MzYuMDAzIDcyMi4yNTggNTM2LjAwM0M2OTcuMTg1IDUzNi4wMDMgNjc1LjQ4MSA1MTcuMjkzIDY3NS40ODEgNDc5Ljg3MUM2NzUuNDgxIDQ0Mi40NDkgNjk3LjE4NSA0MjMuNzM4IDcyMi4yNTggNDIzLjczOEM3NDYuOTU2IDQyMy43MzggNzY5LjAzNSA0NDIuNDQ5IDc2OS4wMzUgNDc5Ljg3MVpNOTA5LjM2NyA0NzkuODcyQzkwOS4zNjcgNTE3LjI5NCA4ODcuMjg4IDUzNi4wMDUgODYyLjU5IDUzNi4wMDVDODM3LjUxNyA1MzYuMDA1IDgxNS44MTMgNTE3LjI5NCA4MTUuODEzIDQ3OS44NzJDODE1LjgxMyA0NDIuNDUgODM3LjUxNyA0MjMuNzQgODYyLjU5IDQyMy43NEM4ODcuMjg4IDQyMy43NCA5MDkuMzY3IDQ0Mi40NSA5MDkuMzY3IDQ3OS44NzJaIiBmaWxsPSIjRkZGREY4Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjU5Nl8xMzg1ODAiPgo8cmVjdCB5PSItMC4wMDA5NzY1NjIiIHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjEyMDAiIHJ4PSI2MDAiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==";
3
+ export {
4
+ icon
5
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpara/solana-wallet-connectors",
3
- "version": "1.7.1",
3
+ "version": "1.8.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -9,7 +9,7 @@
9
9
  "./connectors": "./dist/wallets/connectors/index.js"
10
10
  },
11
11
  "dependencies": {
12
- "@getpara/react-sdk": "1.7.1",
12
+ "@getpara/react-sdk": "1.8.0",
13
13
  "bs58": "6.0.0"
14
14
  },
15
15
  "scripts": {
@@ -38,5 +38,5 @@
38
38
  "dist",
39
39
  "package.json"
40
40
  ],
41
- "gitHead": "767395af96d4a724946a092de760e9137a73369a"
41
+ "gitHead": "ef96e79558695ccbe148d25a8e3611c4596d1954"
42
42
  }
package/dist/index.js.br DELETED
Binary file
package/dist/index.js.gz DELETED
Binary file