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