@getpara/solana-wallet-connectors 2.0.0-alpha.7 → 2.0.0-alpha.71
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/README.md +14 -0
- package/dist/index.d.ts +2 -1
- package/dist/providers/ParaSolanaProvider.js +1 -1
- package/dist/providers/SolanaExternalWalletContext.d.ts +10 -28
- package/dist/providers/SolanaExternalWalletContext.js +252 -54
- 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/README.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
https://www.npmjs.com/package/@getpara/solana-wallet-connectors
|
|
2
|
+
|
|
3
|
+
`@getpara/solana-wallet-connectors` is a package that provides wallet connectors for Solana when using Para's React SDK Lite.
|
|
4
|
+
The package enables integration with popular Solana wallets like Phantom, Backpack, Solflare, and Glow through Para's provider system. After installation, you can configure it in your ParaProvider.
|
|
5
|
+
|
|
6
|
+
###Prerequisites
|
|
7
|
+
|
|
8
|
+
To use Para, you need an API key. This key authenticates your requests to Para services and is essential for integration.
|
|
9
|
+
|
|
10
|
+
Don't have an API key yet? Request access to the [Developer Portal](https://developer.getpara.com/) to create API keys, manage billing, teams, and more.
|
|
11
|
+
|
|
12
|
+
###Learn more
|
|
13
|
+
|
|
14
|
+
For more information on Para’s Solana wallet connector visit the [Para Docs](https://docs.getpara.com/v2/react/guides/external-wallets/solana-lite#solana-wallets-with-react-sdk-lite)
|
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';
|
|
@@ -48,7 +48,7 @@ function ParaSolanaProvider({ children, config, internalConfig }) {
|
|
|
48
48
|
],
|
|
49
49
|
localStorageKey: "paraSolanaExternal",
|
|
50
50
|
autoConnect: true,
|
|
51
|
-
children: /* @__PURE__ */ jsx(SolanaExternalWalletProvider, __spreadProps(__spreadValues({}, solanaExternalWalletProviderProps), { children }))
|
|
51
|
+
children: /* @__PURE__ */ jsx(SolanaExternalWalletProvider, __spreadProps(__spreadValues({}, solanaExternalWalletProviderProps), { chain, children }))
|
|
52
52
|
}
|
|
53
53
|
) });
|
|
54
54
|
}
|
|
@@ -1,31 +1,13 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
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
|
+
import { Chain } from '@solana-mobile/mobile-wallet-adapter-protocol';
|
|
6
|
+
export type SolanaExternalWalletContextType = ExternalWalletContextType & TExternalHooks & FarcasterMiniAppManagement;
|
|
18
7
|
export declare const SolanaExternalWalletContext: import("react").Context<SolanaExternalWalletContextType>;
|
|
19
|
-
export type SolanaExternalWalletProviderConfig =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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;
|
|
8
|
+
export type SolanaExternalWalletProviderConfig = ExternalWalletProviderConfigBase;
|
|
9
|
+
type SolanaExternalWalletProviderConfigFull = ExternalWalletProviderConfig<CreateWalletFn>;
|
|
10
|
+
export declare function SolanaExternalWalletProvider({ children, wallets: walletFns, onSwitchWallet, para, walletsWithFullAuth, includeWalletVerification, connectionOnly, chain, }: SolanaExternalWalletProviderConfigFull & PropsWithChildren & {
|
|
11
|
+
chain: Chain;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
31
13
|
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,67 +39,91 @@ 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,
|
|
62
|
+
chain
|
|
56
63
|
}) {
|
|
57
64
|
const {
|
|
58
65
|
wallets: adapters,
|
|
59
66
|
select: selectWallet,
|
|
60
|
-
disconnect
|
|
67
|
+
disconnect,
|
|
68
|
+
disconnecting,
|
|
61
69
|
publicKey: solanaAddress,
|
|
62
70
|
wallet,
|
|
63
71
|
connecting,
|
|
64
|
-
connected,
|
|
65
72
|
signMessage: solanaSignMessage
|
|
66
73
|
} = useWallet();
|
|
74
|
+
const disconnectTypeRef = useRef();
|
|
75
|
+
const solanaSignMessageRef = useRef(solanaSignMessage);
|
|
76
|
+
const solanaAddressRef = useRef(solanaAddress);
|
|
67
77
|
const verificationMessage = useRef();
|
|
78
|
+
const [isFarcasterSetup, setIsFarcasterSetup] = useState(false);
|
|
68
79
|
const reset = () => __async(this, null, function* () {
|
|
69
|
-
yield
|
|
80
|
+
yield disconnect();
|
|
70
81
|
yield para.logout();
|
|
71
82
|
});
|
|
72
|
-
const login = (_0) => __async(this, [_0], function* ({
|
|
83
|
+
const login = (_0) => __async(this, [_0], function* ({
|
|
84
|
+
address,
|
|
85
|
+
providerId,
|
|
86
|
+
providerName
|
|
87
|
+
}) {
|
|
73
88
|
var _a, _b;
|
|
74
89
|
try {
|
|
75
90
|
return yield para.loginExternalWallet({
|
|
76
91
|
externalWallet: {
|
|
92
|
+
partnerId: para.partnerId,
|
|
77
93
|
address,
|
|
78
94
|
type: "SOLANA",
|
|
79
95
|
provider: providerName,
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
96
|
+
providerId,
|
|
97
|
+
withFullParaAuth: walletsWithFullAuth === "ALL" || (walletsWithFullAuth == null ? void 0 : walletsWithFullAuth.includes((_b = (_a = getWallet(providerName != null ? providerName : "")) == null ? void 0 : _a.id.toUpperCase()) != null ? _b : "")),
|
|
98
|
+
withVerification: includeWalletVerification,
|
|
99
|
+
isConnectionOnly: connectionOnly
|
|
100
|
+
},
|
|
101
|
+
uri: window == null ? void 0 : window.location.origin,
|
|
102
|
+
chainId: chain
|
|
84
103
|
});
|
|
85
|
-
} catch (
|
|
104
|
+
} catch (e) {
|
|
86
105
|
yield reset();
|
|
87
106
|
throw "Error logging you in. Please try again.";
|
|
88
107
|
}
|
|
89
108
|
});
|
|
90
109
|
const switchWallet = (address) => __async(this, null, function* () {
|
|
91
|
-
var _a;
|
|
110
|
+
var _a, _b, _c, _d;
|
|
92
111
|
let error;
|
|
93
112
|
if (!address) {
|
|
94
113
|
yield para.logout();
|
|
95
114
|
} else {
|
|
96
|
-
|
|
97
|
-
yield
|
|
98
|
-
}
|
|
99
|
-
|
|
115
|
+
if (para.isExternalWalletAuth || para.isExternalWalletWithVerification) {
|
|
116
|
+
yield reset();
|
|
117
|
+
} else {
|
|
118
|
+
try {
|
|
119
|
+
yield login({
|
|
120
|
+
address,
|
|
121
|
+
providerId: (_c = getWallet((_b = (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name) != null ? _b : "")) == null ? void 0 : _c.id,
|
|
122
|
+
providerName: (_d = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _d.name
|
|
123
|
+
});
|
|
124
|
+
} catch (err) {
|
|
125
|
+
error = err;
|
|
126
|
+
}
|
|
100
127
|
}
|
|
101
128
|
}
|
|
102
129
|
onSwitchWallet({ address, error });
|
|
@@ -104,59 +131,113 @@ function SolanaExternalWalletProvider({
|
|
|
104
131
|
useEffect(() => {
|
|
105
132
|
var _a;
|
|
106
133
|
const storedExternalWallet = para.externalWallets[(_a = solanaAddress == null ? void 0 : solanaAddress.toString()) != null ? _a : ""];
|
|
107
|
-
if (!!solanaAddress && !storedExternalWallet) {
|
|
134
|
+
if (!!solanaAddress && !storedExternalWallet && !disconnectTypeRef.current) {
|
|
108
135
|
reset();
|
|
109
136
|
}
|
|
110
137
|
}, []);
|
|
138
|
+
useEffect(() => {
|
|
139
|
+
solanaSignMessageRef.current = solanaSignMessage;
|
|
140
|
+
}, [solanaSignMessage]);
|
|
141
|
+
useEffect(() => {
|
|
142
|
+
solanaAddressRef.current = solanaAddress;
|
|
143
|
+
}, [solanaAddress]);
|
|
111
144
|
useEffect(() => {
|
|
112
145
|
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())) {
|
|
146
|
+
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()) && !disconnectTypeRef.current) {
|
|
114
147
|
switchWallet(solanaAddress == null ? void 0 : solanaAddress.toString());
|
|
115
148
|
}
|
|
116
149
|
}, [solanaAddress, connecting, wallet]);
|
|
117
|
-
const signMessage = (
|
|
118
|
-
var _a;
|
|
150
|
+
const signMessage = (_0) => __async(this, [_0], function* ({ message }) {
|
|
151
|
+
var _a, _b, _c, _d;
|
|
119
152
|
try {
|
|
153
|
+
let solanaAddressNow = (_a = solanaAddressRef.current) != null ? _a : solanaAddress, solanaSignMessageNow = (_b = solanaSignMessageRef.current) != null ? _b : solanaSignMessage;
|
|
154
|
+
while (!solanaAddressNow || !solanaSignMessageNow) {
|
|
155
|
+
yield new Promise((resolve) => setTimeout(resolve, 100));
|
|
156
|
+
solanaAddressNow = (_c = solanaAddressRef.current) != null ? _c : solanaAddress;
|
|
157
|
+
solanaSignMessageNow = (_d = solanaSignMessageRef.current) != null ? _d : solanaSignMessage;
|
|
158
|
+
}
|
|
120
159
|
const encodedMessage = new TextEncoder().encode(message);
|
|
121
|
-
const signature = yield
|
|
160
|
+
const signature = yield solanaSignMessageNow(encodedMessage);
|
|
161
|
+
solanaAddressRef.current = void 0;
|
|
162
|
+
solanaSignMessageRef.current = void 0;
|
|
122
163
|
return {
|
|
123
|
-
|
|
124
|
-
address: solanaAddress.toString(),
|
|
125
|
-
type: "SOLANA",
|
|
126
|
-
provider: (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name
|
|
127
|
-
},
|
|
164
|
+
address: solanaAddressNow.toString(),
|
|
128
165
|
signature: bs58.encode(signature)
|
|
129
166
|
};
|
|
130
167
|
} catch (e) {
|
|
168
|
+
console.error(e);
|
|
131
169
|
if (e.message.includes("User rejected the request")) {
|
|
132
170
|
return { error: "Signature request rejected" };
|
|
133
171
|
}
|
|
172
|
+
console.error("Solana signature error:", e.message);
|
|
134
173
|
return { error: "An unknown error occurred" };
|
|
135
174
|
}
|
|
136
175
|
});
|
|
137
176
|
const signVerificationMessage = () => __async(this, null, function* () {
|
|
138
|
-
const signature = yield signMessage(verificationMessage.current);
|
|
177
|
+
const signature = yield signMessage({ message: verificationMessage.current });
|
|
139
178
|
return signature;
|
|
140
179
|
});
|
|
141
|
-
const
|
|
142
|
-
yield _disconnect();
|
|
180
|
+
const connectBase = (adapter, _switchWallet = false) => __async(this, null, function* () {
|
|
143
181
|
if (!adapter) {
|
|
144
|
-
|
|
182
|
+
throw new Error("Adapter not found.");
|
|
183
|
+
}
|
|
184
|
+
const wallet2 = getWallet(adapter.name);
|
|
185
|
+
if (wallet2.getQrUri) {
|
|
186
|
+
const qrUri = yield wallet2.getQrUri();
|
|
187
|
+
window.dispatchEvent(new CustomEvent("PARA_WALLETCONNECT_URI_READY", { detail: qrUri }));
|
|
145
188
|
}
|
|
146
189
|
selectWallet(adapter.name);
|
|
147
190
|
yield new Promise((resolve) => setTimeout(resolve, 100));
|
|
148
191
|
let address;
|
|
149
192
|
let error;
|
|
150
|
-
let authState;
|
|
151
193
|
try {
|
|
152
194
|
yield adapter.connect();
|
|
153
|
-
|
|
195
|
+
if (adapter.publicKey) {
|
|
196
|
+
address = adapter.publicKey.toString();
|
|
197
|
+
} else {
|
|
198
|
+
yield new Promise((resolve, reject) => {
|
|
199
|
+
adapter.once("connect", () => __async(this, null, function* () {
|
|
200
|
+
try {
|
|
201
|
+
address = adapter.publicKey.toString();
|
|
202
|
+
resolve();
|
|
203
|
+
} catch (err) {
|
|
204
|
+
reject(err);
|
|
205
|
+
}
|
|
206
|
+
}));
|
|
207
|
+
adapter.once("error", (err) => {
|
|
208
|
+
error = (err == null ? void 0 : err.message) || "An unknown error occurred";
|
|
209
|
+
reject(err);
|
|
210
|
+
});
|
|
211
|
+
adapter.once("disconnect", () => {
|
|
212
|
+
error = "Disconnected before connect event";
|
|
213
|
+
reject(new Error(error));
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
return address;
|
|
218
|
+
} catch (e) {
|
|
219
|
+
console.error(e);
|
|
220
|
+
yield adapter.disconnect();
|
|
221
|
+
throw e;
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
const connect = (adapter) => __async(this, null, function* () {
|
|
225
|
+
var _a;
|
|
226
|
+
if (isIosAndRedirectable()) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
yield disconnect();
|
|
230
|
+
let address;
|
|
231
|
+
let error;
|
|
232
|
+
let authState;
|
|
233
|
+
try {
|
|
234
|
+
address = yield connectBase(adapter, true);
|
|
154
235
|
if (address) {
|
|
155
236
|
try {
|
|
156
|
-
authState = yield login({ address, providerName: adapter.name });
|
|
237
|
+
authState = yield login({ address, providerId: (_a = getWallet(adapter.name)) == null ? void 0 : _a.id, providerName: adapter.name });
|
|
157
238
|
verificationMessage.current = authState.stage === "verify" ? authState.signatureVerificationMessage : void 0;
|
|
158
239
|
} catch (err) {
|
|
159
|
-
yield
|
|
240
|
+
yield disconnect();
|
|
160
241
|
address = void 0;
|
|
161
242
|
error = err;
|
|
162
243
|
}
|
|
@@ -165,11 +246,13 @@ function SolanaExternalWalletProvider({
|
|
|
165
246
|
switch (err.message) {
|
|
166
247
|
case "User aborted.":
|
|
167
248
|
case "Approval Denied":
|
|
168
|
-
case "You canceled this request.":
|
|
249
|
+
case "You canceled this request.":
|
|
250
|
+
case "Disconnected before connect event": {
|
|
169
251
|
error = "Connection request rejected";
|
|
170
252
|
break;
|
|
171
253
|
}
|
|
172
254
|
default: {
|
|
255
|
+
console.error("Solana connection error:", err.message);
|
|
173
256
|
error = "An unknown error occurred";
|
|
174
257
|
break;
|
|
175
258
|
}
|
|
@@ -177,34 +260,149 @@ function SolanaExternalWalletProvider({
|
|
|
177
260
|
}
|
|
178
261
|
return { address, error, authState };
|
|
179
262
|
});
|
|
263
|
+
const requestInfo = (providerId) => __async(this, null, function* () {
|
|
264
|
+
var _a, _b;
|
|
265
|
+
const wallet2 = wallets.find((w) => w.id === providerId);
|
|
266
|
+
const adapter = getAdapter((_a = wallet2.name) != null ? _a : "");
|
|
267
|
+
disconnectTypeRef.current = "ACCOUNT_LINKING";
|
|
268
|
+
try {
|
|
269
|
+
const address = yield connectBase(adapter);
|
|
270
|
+
const externalWallet = {
|
|
271
|
+
partnerId: para.partnerId,
|
|
272
|
+
address,
|
|
273
|
+
type: "SOLANA",
|
|
274
|
+
providerId: wallet2.id,
|
|
275
|
+
provider: wallet2.name
|
|
276
|
+
};
|
|
277
|
+
return externalWallet;
|
|
278
|
+
} catch (e) {
|
|
279
|
+
console.error("Error linking account:", e);
|
|
280
|
+
throw new Error((_b = e == null ? void 0 : e.message) != null ? _b : e);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
const disconnectBase = (_0, ..._1) => __async(this, [_0, ..._1], function* (providerId, { disconnectType } = {}) {
|
|
284
|
+
var _a;
|
|
285
|
+
const wallet2 = wallets.find((w) => w.id === providerId);
|
|
286
|
+
if (!wallet2) {
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
const adapter = getAdapter((_a = wallet2.name) != null ? _a : "");
|
|
290
|
+
if (!(adapter == null ? void 0 : adapter.connected)) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
if (disconnectType) {
|
|
294
|
+
disconnectTypeRef.current = disconnectType;
|
|
295
|
+
}
|
|
296
|
+
try {
|
|
297
|
+
yield adapter.disconnect();
|
|
298
|
+
} catch (e) {
|
|
299
|
+
console.error("Error disconnecting Solana wallet:", e);
|
|
300
|
+
} finally {
|
|
301
|
+
disconnectTypeRef.current = void 0;
|
|
302
|
+
}
|
|
303
|
+
});
|
|
180
304
|
const getAdapter = (name) => {
|
|
181
305
|
var _a;
|
|
182
306
|
return (_a = adapters.find((a) => a.adapter.name === "Mobile Wallet Adapter" ? a : a.adapter.name === name ? a : false)) == null ? void 0 : _a.adapter;
|
|
183
307
|
};
|
|
184
308
|
const getWallet = (name) => wallets.find((w) => w.name === name);
|
|
185
|
-
const
|
|
309
|
+
const createWallet = (walletFn) => {
|
|
186
310
|
const metaData = walletFn();
|
|
187
311
|
const adapter = getAdapter(metaData.name);
|
|
188
|
-
return __spreadValues({
|
|
312
|
+
return __spreadProps(__spreadValues({
|
|
189
313
|
connect: () => connect(adapter),
|
|
190
314
|
connectMobile: () => connect(adapter),
|
|
191
|
-
getQrUri: () => "",
|
|
192
315
|
type: "SOLANA",
|
|
193
316
|
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
|
-
|
|
317
|
+
}, metaData), {
|
|
318
|
+
// Using name here since that's the only common id across the networks
|
|
319
|
+
id: metaData.name
|
|
320
|
+
});
|
|
321
|
+
};
|
|
322
|
+
const [wallets, setWallets] = useState(() => walletFns.map(createWallet));
|
|
323
|
+
const farcasterStatus = useMemo(() => {
|
|
324
|
+
if (!isFarcasterSetup) {
|
|
325
|
+
return void 0;
|
|
200
326
|
}
|
|
327
|
+
const farcasterAdapter = getAdapter("Farcaster");
|
|
328
|
+
if (!farcasterAdapter) {
|
|
329
|
+
return {
|
|
330
|
+
isPresent: false
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
return farcasterAdapter.connected && farcasterAdapter.publicKey ? {
|
|
334
|
+
isPresent: true,
|
|
335
|
+
isConnected: true,
|
|
336
|
+
address: farcasterAdapter.publicKey.toString()
|
|
337
|
+
} : {
|
|
338
|
+
isPresent: true,
|
|
339
|
+
isConnected: false
|
|
340
|
+
};
|
|
341
|
+
}, [isFarcasterSetup, adapters]);
|
|
342
|
+
useEffect(() => {
|
|
343
|
+
const detectFarcaster = () => __async(this, null, function* () {
|
|
344
|
+
if (para.isFarcasterMiniApp) {
|
|
345
|
+
try {
|
|
346
|
+
yield import("@farcaster/mini-app-solana");
|
|
347
|
+
} catch (e) {
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
detectFarcaster();
|
|
352
|
+
}, [para.isFarcasterMiniApp]);
|
|
353
|
+
useEffect(() => {
|
|
354
|
+
const setupFarcaster = () => __async(this, null, function* () {
|
|
355
|
+
const adapter = getAdapter("Farcaster");
|
|
356
|
+
if (para.isFarcasterMiniApp && !wallets.some((w) => w.internalId === "FARCASTER") && !!adapter) {
|
|
357
|
+
const wallet2 = createWallet(farcasterWallet);
|
|
358
|
+
setWallets((prev) => [...prev, wallet2]);
|
|
359
|
+
if (para.supportedWalletTypes.some(({ type }) => type === "SOLANA")) {
|
|
360
|
+
yield connectBase(adapter, true);
|
|
361
|
+
}
|
|
362
|
+
setIsFarcasterSetup(true);
|
|
363
|
+
}
|
|
364
|
+
});
|
|
365
|
+
setupFarcaster();
|
|
366
|
+
}, [para.isFarcasterMiniApp, wallets, adapters]);
|
|
367
|
+
const injectedWallets = adapters.filter((wallet2) => wallet2.adapter.name !== "Mobile Wallet Adapter" && !wallets.some((w) => w.name === wallet2.adapter.name)).map((wallet2) => {
|
|
368
|
+
const adapter = wallet2.adapter;
|
|
369
|
+
return {
|
|
370
|
+
connect: () => connect(adapter),
|
|
371
|
+
connectMobile: () => connect(adapter),
|
|
372
|
+
type: "SOLANA",
|
|
373
|
+
installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable),
|
|
374
|
+
name: adapter.name,
|
|
375
|
+
iconUrl: adapter.icon,
|
|
376
|
+
// Using name here since that's the only common id across the networks
|
|
377
|
+
id: adapter.name,
|
|
378
|
+
internalId: adapter.name
|
|
379
|
+
};
|
|
201
380
|
});
|
|
381
|
+
const walletsWithInjected = [...wallets, ...injectedWallets];
|
|
202
382
|
return /* @__PURE__ */ jsx(
|
|
203
383
|
SolanaExternalWalletContext.Provider,
|
|
204
384
|
{
|
|
205
385
|
value: useMemo(
|
|
206
|
-
() => ({
|
|
207
|
-
|
|
386
|
+
() => __spreadValues({
|
|
387
|
+
wallets: walletsWithInjected,
|
|
388
|
+
disconnect,
|
|
389
|
+
disconnectStatus: disconnecting ? "pending" : "idle",
|
|
390
|
+
signMessage,
|
|
391
|
+
signVerificationMessage,
|
|
392
|
+
requestInfo,
|
|
393
|
+
disconnectBase,
|
|
394
|
+
farcasterStatus
|
|
395
|
+
}, externalHooks),
|
|
396
|
+
[
|
|
397
|
+
walletsWithInjected,
|
|
398
|
+
disconnect,
|
|
399
|
+
disconnecting,
|
|
400
|
+
signMessage,
|
|
401
|
+
signVerificationMessage,
|
|
402
|
+
requestInfo,
|
|
403
|
+
farcasterStatus,
|
|
404
|
+
disconnectBase
|
|
405
|
+
]
|
|
208
406
|
),
|
|
209
407
|
children
|
|
210
408
|
}
|
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.71",
|
|
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.71",
|
|
6
|
+
"@getpara/web-sdk": "2.0.0-alpha.71",
|
|
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": "30e5bad6a141f1b56959432f11aaf1536b84dece",
|
|
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
|
}
|