@getpara/solana-wallet-connectors 2.0.0-alpha.5 → 2.0.0-alpha.50
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 -49
- 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,64 @@ 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,
|
|
94
|
+
providerId,
|
|
80
95
|
withFullParaAuth: walletsWithFullAuth == null ? void 0 : walletsWithFullAuth.includes(
|
|
81
96
|
(_b = (_a = getWallet(providerName != null ? providerName : "")) == null ? void 0 : _a.id.toUpperCase()) != null ? _b : ""
|
|
82
|
-
)
|
|
97
|
+
),
|
|
98
|
+
withVerification: includeWalletVerification,
|
|
99
|
+
isConnectionOnly: connectionOnly
|
|
83
100
|
}
|
|
84
101
|
});
|
|
85
102
|
} catch (err) {
|
|
@@ -88,15 +105,23 @@ function SolanaExternalWalletProvider({
|
|
|
88
105
|
}
|
|
89
106
|
});
|
|
90
107
|
const switchWallet = (address) => __async(this, null, function* () {
|
|
91
|
-
var _a;
|
|
108
|
+
var _a, _b, _c, _d;
|
|
92
109
|
let error;
|
|
93
110
|
if (!address) {
|
|
94
111
|
yield para.logout();
|
|
95
112
|
} else {
|
|
96
|
-
|
|
97
|
-
yield
|
|
98
|
-
}
|
|
99
|
-
|
|
113
|
+
if (para.isExternalWalletAuth || para.isExternalWalletWithVerification) {
|
|
114
|
+
yield reset();
|
|
115
|
+
} else {
|
|
116
|
+
try {
|
|
117
|
+
yield login({
|
|
118
|
+
address,
|
|
119
|
+
providerId: (_c = getWallet((_b = (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name) != null ? _b : "")) == null ? void 0 : _c.id,
|
|
120
|
+
providerName: (_d = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _d.name
|
|
121
|
+
});
|
|
122
|
+
} catch (err) {
|
|
123
|
+
error = err;
|
|
124
|
+
}
|
|
100
125
|
}
|
|
101
126
|
}
|
|
102
127
|
onSwitchWallet({ address, error });
|
|
@@ -104,59 +129,108 @@ function SolanaExternalWalletProvider({
|
|
|
104
129
|
useEffect(() => {
|
|
105
130
|
var _a;
|
|
106
131
|
const storedExternalWallet = para.externalWallets[(_a = solanaAddress == null ? void 0 : solanaAddress.toString()) != null ? _a : ""];
|
|
107
|
-
if (!!solanaAddress && !storedExternalWallet) {
|
|
132
|
+
if (!!solanaAddress && !storedExternalWallet && !isLinkingAccount.current) {
|
|
108
133
|
reset();
|
|
109
134
|
}
|
|
110
135
|
}, []);
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
solanaSignMessageRef.current = solanaSignMessage;
|
|
138
|
+
}, [solanaSignMessage]);
|
|
139
|
+
useEffect(() => {
|
|
140
|
+
solanaAddressRef.current = solanaAddress;
|
|
141
|
+
}, [solanaAddress]);
|
|
111
142
|
useEffect(() => {
|
|
112
143
|
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())) {
|
|
144
|
+
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
145
|
switchWallet(solanaAddress == null ? void 0 : solanaAddress.toString());
|
|
115
146
|
}
|
|
116
147
|
}, [solanaAddress, connecting, wallet]);
|
|
117
|
-
const signMessage = (
|
|
118
|
-
var _a;
|
|
148
|
+
const signMessage = (_0) => __async(this, [_0], function* ({ message }) {
|
|
149
|
+
var _a, _b, _c, _d;
|
|
119
150
|
try {
|
|
151
|
+
let solanaAddressNow = (_a = solanaAddressRef.current) != null ? _a : solanaAddress, solanaSignMessageNow = (_b = solanaSignMessageRef.current) != null ? _b : solanaSignMessage;
|
|
152
|
+
while (!solanaAddressNow || !solanaSignMessageNow) {
|
|
153
|
+
yield new Promise((resolve) => setTimeout(resolve, 100));
|
|
154
|
+
solanaAddressNow = (_c = solanaAddressRef.current) != null ? _c : solanaAddress;
|
|
155
|
+
solanaSignMessageNow = (_d = solanaSignMessageRef.current) != null ? _d : solanaSignMessage;
|
|
156
|
+
}
|
|
120
157
|
const encodedMessage = new TextEncoder().encode(message);
|
|
121
|
-
const signature = yield
|
|
158
|
+
const signature = yield solanaSignMessageNow(encodedMessage);
|
|
159
|
+
solanaAddressRef.current = void 0;
|
|
160
|
+
solanaSignMessageRef.current = void 0;
|
|
122
161
|
return {
|
|
123
|
-
|
|
124
|
-
address: solanaAddress.toString(),
|
|
125
|
-
type: "SOLANA",
|
|
126
|
-
provider: (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name
|
|
127
|
-
},
|
|
162
|
+
address: solanaAddressNow.toString(),
|
|
128
163
|
signature: bs58.encode(signature)
|
|
129
164
|
};
|
|
130
165
|
} catch (e) {
|
|
166
|
+
console.error(e);
|
|
131
167
|
if (e.message.includes("User rejected the request")) {
|
|
132
168
|
return { error: "Signature request rejected" };
|
|
133
169
|
}
|
|
170
|
+
console.error("Solana signature error:", e.message);
|
|
134
171
|
return { error: "An unknown error occurred" };
|
|
135
172
|
}
|
|
136
173
|
});
|
|
137
174
|
const signVerificationMessage = () => __async(this, null, function* () {
|
|
138
|
-
const signature = yield signMessage(verificationMessage.current);
|
|
175
|
+
const signature = yield signMessage({ message: verificationMessage.current });
|
|
139
176
|
return signature;
|
|
140
177
|
});
|
|
141
|
-
const
|
|
142
|
-
yield _disconnect();
|
|
178
|
+
const connectBase = (adapter, _switchWallet = false) => __async(this, null, function* () {
|
|
143
179
|
if (!adapter) {
|
|
144
|
-
|
|
180
|
+
throw new Error("Adapter not found.");
|
|
145
181
|
}
|
|
146
182
|
selectWallet(adapter.name);
|
|
147
183
|
yield new Promise((resolve) => setTimeout(resolve, 100));
|
|
148
184
|
let address;
|
|
149
185
|
let error;
|
|
150
|
-
let authState;
|
|
151
186
|
try {
|
|
152
187
|
yield adapter.connect();
|
|
153
|
-
|
|
188
|
+
if (adapter.publicKey) {
|
|
189
|
+
address = adapter.publicKey.toString();
|
|
190
|
+
} else {
|
|
191
|
+
yield new Promise((resolve, reject) => {
|
|
192
|
+
adapter.once("connect", () => __async(this, null, function* () {
|
|
193
|
+
try {
|
|
194
|
+
address = adapter.publicKey.toString();
|
|
195
|
+
resolve();
|
|
196
|
+
} catch (err) {
|
|
197
|
+
reject(err);
|
|
198
|
+
}
|
|
199
|
+
}));
|
|
200
|
+
adapter.once("error", (err) => {
|
|
201
|
+
error = (err == null ? void 0 : err.message) || "An unknown error occurred";
|
|
202
|
+
reject(err);
|
|
203
|
+
});
|
|
204
|
+
adapter.once("disconnect", () => {
|
|
205
|
+
error = "Disconnected before connect event";
|
|
206
|
+
reject(new Error(error));
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
return address;
|
|
211
|
+
} catch (e) {
|
|
212
|
+
console.error(e);
|
|
213
|
+
yield adapter.disconnect();
|
|
214
|
+
throw e;
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
const connect = (adapter) => __async(this, null, function* () {
|
|
218
|
+
var _a;
|
|
219
|
+
if (isIosAndRedirectable()) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
yield disconnect();
|
|
223
|
+
let address;
|
|
224
|
+
let error;
|
|
225
|
+
let authState;
|
|
226
|
+
try {
|
|
227
|
+
address = yield connectBase(adapter, true);
|
|
154
228
|
if (address) {
|
|
155
229
|
try {
|
|
156
|
-
authState = yield login({ address, providerName: adapter.name });
|
|
230
|
+
authState = yield login({ address, providerId: (_a = getWallet(adapter.name)) == null ? void 0 : _a.id, providerName: adapter.name });
|
|
157
231
|
verificationMessage.current = authState.stage === "verify" ? authState.signatureVerificationMessage : void 0;
|
|
158
232
|
} catch (err) {
|
|
159
|
-
yield
|
|
233
|
+
yield disconnect();
|
|
160
234
|
address = void 0;
|
|
161
235
|
error = err;
|
|
162
236
|
}
|
|
@@ -170,6 +244,7 @@ function SolanaExternalWalletProvider({
|
|
|
170
244
|
break;
|
|
171
245
|
}
|
|
172
246
|
default: {
|
|
247
|
+
console.error("Solana connection error:", err.message);
|
|
173
248
|
error = "An unknown error occurred";
|
|
174
249
|
break;
|
|
175
250
|
}
|
|
@@ -177,34 +252,141 @@ function SolanaExternalWalletProvider({
|
|
|
177
252
|
}
|
|
178
253
|
return { address, error, authState };
|
|
179
254
|
});
|
|
255
|
+
const requestInfo = (providerId) => __async(this, null, function* () {
|
|
256
|
+
var _a, _b;
|
|
257
|
+
const wallet2 = wallets.find((w) => w.id === providerId);
|
|
258
|
+
const adapter = getAdapter((_a = wallet2.name) != null ? _a : "");
|
|
259
|
+
isLinkingAccount.current = true;
|
|
260
|
+
try {
|
|
261
|
+
const address = yield connectBase(adapter);
|
|
262
|
+
const externalWallet = {
|
|
263
|
+
partnerId: para.partnerId,
|
|
264
|
+
address,
|
|
265
|
+
type: "SOLANA",
|
|
266
|
+
providerId: wallet2.id,
|
|
267
|
+
provider: wallet2.name
|
|
268
|
+
};
|
|
269
|
+
return externalWallet;
|
|
270
|
+
} catch (e) {
|
|
271
|
+
console.error("Error linking account:", e);
|
|
272
|
+
throw new Error((_b = e == null ? void 0 : e.message) != null ? _b : e);
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
const disconnectBase = (providerId) => __async(this, null, function* () {
|
|
276
|
+
var _a, _b;
|
|
277
|
+
const wallet2 = wallets.find((w) => w.id === providerId);
|
|
278
|
+
const adapter = getAdapter((_a = wallet2.name) != null ? _a : "");
|
|
279
|
+
if (!(adapter == null ? void 0 : adapter.connected)) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
isLinkingAccount.current = true;
|
|
283
|
+
try {
|
|
284
|
+
yield adapter.disconnect();
|
|
285
|
+
} catch (e) {
|
|
286
|
+
console.error("Error disconnecting wallet:", e);
|
|
287
|
+
throw new Error((_b = e == null ? void 0 : e.message) != null ? _b : e);
|
|
288
|
+
}
|
|
289
|
+
});
|
|
180
290
|
const getAdapter = (name) => {
|
|
181
291
|
var _a;
|
|
182
292
|
return (_a = adapters.find((a) => a.adapter.name === "Mobile Wallet Adapter" ? a : a.adapter.name === name ? a : false)) == null ? void 0 : _a.adapter;
|
|
183
293
|
};
|
|
184
294
|
const getWallet = (name) => wallets.find((w) => w.name === name);
|
|
185
|
-
const
|
|
295
|
+
const createWallet = (walletFn) => {
|
|
186
296
|
const metaData = walletFn();
|
|
187
297
|
const adapter = getAdapter(metaData.name);
|
|
188
|
-
return __spreadValues({
|
|
298
|
+
return __spreadProps(__spreadValues({
|
|
189
299
|
connect: () => connect(adapter),
|
|
190
300
|
connectMobile: () => connect(adapter),
|
|
191
|
-
getQrUri: () => "",
|
|
192
301
|
type: "SOLANA",
|
|
193
302
|
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
|
-
|
|
303
|
+
}, metaData), {
|
|
304
|
+
// Using name here since that's the only common id across the networks
|
|
305
|
+
id: metaData.name
|
|
306
|
+
});
|
|
307
|
+
};
|
|
308
|
+
const [wallets, setWallets] = useState(() => walletFns.map(createWallet));
|
|
309
|
+
const farcasterStatus = useMemo(() => {
|
|
310
|
+
if (!isFarcasterSetup) {
|
|
311
|
+
return void 0;
|
|
200
312
|
}
|
|
313
|
+
const farcasterAdapter = getAdapter("Farcaster");
|
|
314
|
+
if (!farcasterAdapter) {
|
|
315
|
+
return {
|
|
316
|
+
isPresent: false
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
return farcasterAdapter.connected && farcasterAdapter.publicKey ? {
|
|
320
|
+
isPresent: true,
|
|
321
|
+
isConnected: true,
|
|
322
|
+
address: farcasterAdapter.publicKey.toString()
|
|
323
|
+
} : {
|
|
324
|
+
isPresent: true,
|
|
325
|
+
isConnected: false
|
|
326
|
+
};
|
|
327
|
+
}, [isFarcasterSetup, adapters]);
|
|
328
|
+
useEffect(() => {
|
|
329
|
+
const detectFarcaster = () => __async(this, null, function* () {
|
|
330
|
+
if (para.isFarcasterMiniApp) {
|
|
331
|
+
try {
|
|
332
|
+
yield import("@farcaster/mini-app-solana");
|
|
333
|
+
} catch (e) {
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
detectFarcaster();
|
|
338
|
+
}, [para.isFarcasterMiniApp]);
|
|
339
|
+
useEffect(() => {
|
|
340
|
+
const setupFarcaster = () => __async(this, null, function* () {
|
|
341
|
+
const adapter = getAdapter("Farcaster");
|
|
342
|
+
if (para.isFarcasterMiniApp && !wallets.some((w) => w.internalId === "FARCASTER") && !!adapter) {
|
|
343
|
+
const wallet2 = createWallet(farcasterWallet);
|
|
344
|
+
setWallets((prev) => [...prev, wallet2]);
|
|
345
|
+
if (para.supportedWalletTypes.some(({ type }) => type === "SOLANA")) {
|
|
346
|
+
yield connectBase(adapter, true);
|
|
347
|
+
}
|
|
348
|
+
setIsFarcasterSetup(true);
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
setupFarcaster();
|
|
352
|
+
}, [para.isFarcasterMiniApp, wallets, adapters]);
|
|
353
|
+
const injectedWallets = adapters.filter((wallet2) => wallet2.adapter.name !== "Mobile Wallet Adapter" && !wallets.some((w) => w.name === wallet2.adapter.name)).map((wallet2) => {
|
|
354
|
+
const adapter = wallet2.adapter;
|
|
355
|
+
return {
|
|
356
|
+
connect: () => connect(adapter),
|
|
357
|
+
connectMobile: () => connect(adapter),
|
|
358
|
+
type: "SOLANA",
|
|
359
|
+
installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable),
|
|
360
|
+
name: adapter.name,
|
|
361
|
+
iconUrl: adapter.icon,
|
|
362
|
+
// Using name here since that's the only common id across the networks
|
|
363
|
+
id: adapter.name,
|
|
364
|
+
internalId: adapter.name
|
|
365
|
+
};
|
|
201
366
|
});
|
|
367
|
+
const walletsWithInjected = [...wallets, ...injectedWallets];
|
|
202
368
|
return /* @__PURE__ */ jsx(
|
|
203
369
|
SolanaExternalWalletContext.Provider,
|
|
204
370
|
{
|
|
205
371
|
value: useMemo(
|
|
206
|
-
() => ({
|
|
207
|
-
|
|
372
|
+
() => __spreadValues({
|
|
373
|
+
wallets: walletsWithInjected,
|
|
374
|
+
disconnect,
|
|
375
|
+
signMessage,
|
|
376
|
+
signVerificationMessage,
|
|
377
|
+
requestInfo,
|
|
378
|
+
disconnectBase,
|
|
379
|
+
farcasterStatus
|
|
380
|
+
}, externalHooks),
|
|
381
|
+
[
|
|
382
|
+
walletsWithInjected,
|
|
383
|
+
disconnect,
|
|
384
|
+
signMessage,
|
|
385
|
+
signVerificationMessage,
|
|
386
|
+
requestInfo,
|
|
387
|
+
farcasterStatus,
|
|
388
|
+
disconnectBase
|
|
389
|
+
]
|
|
208
390
|
),
|
|
209
391
|
children
|
|
210
392
|
}
|
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.50",
|
|
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.50",
|
|
6
|
+
"@getpara/web-sdk": "2.0.0-alpha.50",
|
|
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": "688b92a7ca207593a4a3be09cb5cc580092614fc",
|
|
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
|
}
|