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