@getpara/solana-wallet-connectors 2.0.0-alpha.5 → 2.0.0-alpha.51
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 +231 -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 +3 -1
- package/dist/wallets/connectors/index.js +6 -2
- 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,141 @@ 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, _b;
|
|
275
|
+
const wallet2 = wallets.find((w) => w.id === providerId);
|
|
276
|
+
const adapter = getAdapter((_a = wallet2.name) != null ? _a : "");
|
|
277
|
+
if (!(adapter == null ? void 0 : adapter.connected)) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
isLinkingAccount.current = true;
|
|
281
|
+
try {
|
|
282
|
+
yield adapter.disconnect();
|
|
283
|
+
} catch (e) {
|
|
284
|
+
console.error("Error disconnecting wallet:", e);
|
|
285
|
+
throw new Error((_b = e == null ? void 0 : e.message) != null ? _b : e);
|
|
286
|
+
}
|
|
287
|
+
});
|
|
180
288
|
const getAdapter = (name) => {
|
|
181
289
|
var _a;
|
|
182
290
|
return (_a = adapters.find((a) => a.adapter.name === "Mobile Wallet Adapter" ? a : a.adapter.name === name ? a : false)) == null ? void 0 : _a.adapter;
|
|
183
291
|
};
|
|
184
292
|
const getWallet = (name) => wallets.find((w) => w.name === name);
|
|
185
|
-
const
|
|
293
|
+
const createWallet = (walletFn) => {
|
|
186
294
|
const metaData = walletFn();
|
|
187
295
|
const adapter = getAdapter(metaData.name);
|
|
188
|
-
return __spreadValues({
|
|
296
|
+
return __spreadProps(__spreadValues({
|
|
189
297
|
connect: () => connect(adapter),
|
|
190
298
|
connectMobile: () => connect(adapter),
|
|
191
|
-
getQrUri: () => "",
|
|
192
299
|
type: "SOLANA",
|
|
193
300
|
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
|
-
|
|
301
|
+
}, metaData), {
|
|
302
|
+
// Using name here since that's the only common id across the networks
|
|
303
|
+
id: metaData.name
|
|
304
|
+
});
|
|
305
|
+
};
|
|
306
|
+
const [wallets, setWallets] = useState(() => walletFns.map(createWallet));
|
|
307
|
+
const farcasterStatus = useMemo(() => {
|
|
308
|
+
if (!isFarcasterSetup) {
|
|
309
|
+
return void 0;
|
|
200
310
|
}
|
|
311
|
+
const farcasterAdapter = getAdapter("Farcaster");
|
|
312
|
+
if (!farcasterAdapter) {
|
|
313
|
+
return {
|
|
314
|
+
isPresent: false
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
return farcasterAdapter.connected && farcasterAdapter.publicKey ? {
|
|
318
|
+
isPresent: true,
|
|
319
|
+
isConnected: true,
|
|
320
|
+
address: farcasterAdapter.publicKey.toString()
|
|
321
|
+
} : {
|
|
322
|
+
isPresent: true,
|
|
323
|
+
isConnected: false
|
|
324
|
+
};
|
|
325
|
+
}, [isFarcasterSetup, adapters]);
|
|
326
|
+
useEffect(() => {
|
|
327
|
+
const detectFarcaster = () => __async(this, null, function* () {
|
|
328
|
+
if (para.isFarcasterMiniApp) {
|
|
329
|
+
try {
|
|
330
|
+
yield import("@farcaster/mini-app-solana");
|
|
331
|
+
} catch (e) {
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
detectFarcaster();
|
|
336
|
+
}, [para.isFarcasterMiniApp]);
|
|
337
|
+
useEffect(() => {
|
|
338
|
+
const setupFarcaster = () => __async(this, null, function* () {
|
|
339
|
+
const adapter = getAdapter("Farcaster");
|
|
340
|
+
if (para.isFarcasterMiniApp && !wallets.some((w) => w.internalId === "FARCASTER") && !!adapter) {
|
|
341
|
+
const wallet2 = createWallet(farcasterWallet);
|
|
342
|
+
setWallets((prev) => [...prev, wallet2]);
|
|
343
|
+
if (para.supportedWalletTypes.some(({ type }) => type === "SOLANA")) {
|
|
344
|
+
yield connectBase(adapter, true);
|
|
345
|
+
}
|
|
346
|
+
setIsFarcasterSetup(true);
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
setupFarcaster();
|
|
350
|
+
}, [para.isFarcasterMiniApp, wallets, adapters]);
|
|
351
|
+
const injectedWallets = adapters.filter((wallet2) => wallet2.adapter.name !== "Mobile Wallet Adapter" && !wallets.some((w) => w.name === wallet2.adapter.name)).map((wallet2) => {
|
|
352
|
+
const adapter = wallet2.adapter;
|
|
353
|
+
return {
|
|
354
|
+
connect: () => connect(adapter),
|
|
355
|
+
connectMobile: () => connect(adapter),
|
|
356
|
+
type: "SOLANA",
|
|
357
|
+
installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable),
|
|
358
|
+
name: adapter.name,
|
|
359
|
+
iconUrl: adapter.icon,
|
|
360
|
+
// Using name here since that's the only common id across the networks
|
|
361
|
+
id: adapter.name,
|
|
362
|
+
internalId: adapter.name
|
|
363
|
+
};
|
|
201
364
|
});
|
|
365
|
+
const walletsWithInjected = [...wallets, ...injectedWallets];
|
|
202
366
|
return /* @__PURE__ */ jsx(
|
|
203
367
|
SolanaExternalWalletContext.Provider,
|
|
204
368
|
{
|
|
205
369
|
value: useMemo(
|
|
206
|
-
() => ({
|
|
207
|
-
|
|
370
|
+
() => __spreadValues({
|
|
371
|
+
wallets: walletsWithInjected,
|
|
372
|
+
disconnect,
|
|
373
|
+
signMessage,
|
|
374
|
+
signVerificationMessage,
|
|
375
|
+
requestInfo,
|
|
376
|
+
disconnectBase,
|
|
377
|
+
farcasterStatus
|
|
378
|
+
}, externalHooks),
|
|
379
|
+
[
|
|
380
|
+
walletsWithInjected,
|
|
381
|
+
disconnect,
|
|
382
|
+
signMessage,
|
|
383
|
+
signVerificationMessage,
|
|
384
|
+
requestInfo,
|
|
385
|
+
farcasterStatus,
|
|
386
|
+
disconnectBase
|
|
387
|
+
]
|
|
208
388
|
),
|
|
209
389
|
children
|
|
210
390
|
}
|
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,7 @@
|
|
|
1
|
+
import { farcasterWallet } from './farcaster/farcaster.js';
|
|
1
2
|
import { phantomWallet } from './phantom/phantom.js';
|
|
2
3
|
import { glowWallet } from './glow/glow.js';
|
|
3
4
|
import { backpackWallet } from './backpack/backpack.js';
|
|
4
|
-
|
|
5
|
+
import { solflareWallet } from './solflare/solflare.js';
|
|
6
|
+
export { farcasterWallet, phantomWallet, glowWallet, backpackWallet, solflareWallet };
|
|
5
7
|
export declare const allWallets: (() => import("../../types/Wallet.js").Wallet)[];
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { farcasterWallet } from "./farcaster/farcaster.js";
|
|
2
3
|
import { phantomWallet } from "./phantom/phantom.js";
|
|
3
4
|
import { glowWallet } from "./glow/glow.js";
|
|
4
5
|
import { backpackWallet } from "./backpack/backpack.js";
|
|
5
|
-
|
|
6
|
+
import { solflareWallet } from "./solflare/solflare.js";
|
|
7
|
+
const allWallets = [phantomWallet, glowWallet, backpackWallet, solflareWallet];
|
|
6
8
|
export {
|
|
7
9
|
allWallets,
|
|
8
10
|
backpackWallet,
|
|
11
|
+
farcasterWallet,
|
|
9
12
|
glowWallet,
|
|
10
|
-
phantomWallet
|
|
13
|
+
phantomWallet,
|
|
14
|
+
solflareWallet
|
|
11
15
|
};
|
|
@@ -1,13 +1,43 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
var __async = (__this, __arguments, generator) => {
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
var fulfilled = (value) => {
|
|
5
|
+
try {
|
|
6
|
+
step(generator.next(value));
|
|
7
|
+
} catch (e) {
|
|
8
|
+
reject(e);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
var rejected = (value) => {
|
|
12
|
+
try {
|
|
13
|
+
step(generator.throw(value));
|
|
14
|
+
} catch (e) {
|
|
15
|
+
reject(e);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
19
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
import { isIosAndRedirectable } from "@solana/wallet-adapter-base";
|
|
2
23
|
import { icon } from "./phantomIcon.js";
|
|
3
24
|
const phantomWallet = () => {
|
|
4
25
|
return {
|
|
5
26
|
id: "phantom",
|
|
27
|
+
internalId: "PHANTOM",
|
|
6
28
|
name: "Phantom",
|
|
7
29
|
iconUrl: icon,
|
|
8
30
|
isExtension: true,
|
|
9
31
|
isMobile: true,
|
|
10
|
-
|
|
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.51",
|
|
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.51",
|
|
6
|
+
"@getpara/web-sdk": "2.0.0-alpha.51",
|
|
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": "f5b6354bac51de2e6988af340d7490dbdb62bc88",
|
|
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
|
}
|