@getpara/solana-wallet-connectors 1.7.1 → 2.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4 -1
- package/dist/index.js +83 -113
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/providers/ParaSolanaProvider.d.ts +7 -15
- package/dist/providers/SolanaExternalWalletContext.d.ts +15 -16
- package/dist/types/Wallet.d.ts +1 -1
- package/dist/wallets/connectors/index.d.ts +1 -0
- package/package.json +8 -11
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { SolanaExternalWalletContext } from './providers/SolanaExternalWalletContext.js';
|
|
2
|
+
export type { SolanaExternalWalletContextType } from './providers/SolanaExternalWalletContext.js';
|
|
2
3
|
export { ParaSolanaProvider } from './providers/ParaSolanaProvider.js';
|
|
4
|
+
export type { ParaSolanaProviderConfig, ParaSolanaProviderProps } from './providers/ParaSolanaProvider.js';
|
|
3
5
|
export * from './wallets/connectors/index.js';
|
|
6
|
+
export type { WalletList } from './types/Wallet.js';
|
package/dist/index.js
CHANGED
|
@@ -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) => {
|
|
@@ -37,99 +40,26 @@ var __async = (__this, __arguments, generator) => {
|
|
|
37
40
|
};
|
|
38
41
|
|
|
39
42
|
// src/providers/SolanaExternalWalletContext.tsx
|
|
40
|
-
import { createContext
|
|
43
|
+
import { createContext, useEffect, useMemo, useRef } from "react";
|
|
41
44
|
import { useWallet } from "@solana/wallet-adapter-react";
|
|
42
45
|
import { WalletReadyState } from "@solana/wallet-adapter-base";
|
|
43
|
-
|
|
44
|
-
// src/providers/ParaSolanaProvider.tsx
|
|
45
|
-
import { createContext, useContext, useEffect, useMemo, useState } from "react";
|
|
46
|
-
import { ConnectionProvider, WalletProvider as SolanaWalletProvider } from "@solana/wallet-adapter-react";
|
|
47
|
-
import { useClient, useExternalWalletProviderStore } from "@getpara/react-sdk";
|
|
48
|
-
import {
|
|
49
|
-
createDefaultAddressSelector,
|
|
50
|
-
createDefaultAuthorizationResultCache,
|
|
51
|
-
createDefaultWalletNotFoundHandler,
|
|
52
|
-
SolanaMobileWalletAdapter
|
|
53
|
-
} from "@solana-mobile/wallet-adapter-mobile";
|
|
54
|
-
import { jsx } from "react/jsx-runtime";
|
|
55
|
-
var defaultWallet = {
|
|
56
|
-
wallets: []
|
|
57
|
-
};
|
|
58
|
-
var ParaSolanaContext = createContext(defaultWallet);
|
|
59
|
-
function ParaSolanaProvider({
|
|
60
|
-
children,
|
|
61
|
-
wallets: walletFns,
|
|
62
|
-
endpoint,
|
|
63
|
-
appIdentity,
|
|
64
|
-
chain,
|
|
65
|
-
connectionConfig,
|
|
66
|
-
para: _para
|
|
67
|
-
}) {
|
|
68
|
-
const updateExternalWalletProviderState = useExternalWalletProviderStore((state) => state.updateState);
|
|
69
|
-
const SolanaProvider = useExternalWalletProviderStore((state) => state.SolanaProvider);
|
|
70
|
-
const solanaContext = useExternalWalletProviderStore((state) => state.solanaContext);
|
|
71
|
-
const [shouldAutoConnect, setShouldAutoConnect] = useState(true);
|
|
72
|
-
const para = _para != null ? _para : useClient();
|
|
73
|
-
useEffect(() => {
|
|
74
|
-
setShouldAutoConnect(false);
|
|
75
|
-
}, []);
|
|
76
|
-
useEffect(() => {
|
|
77
|
-
if (!solanaContext || !SolanaProvider) {
|
|
78
|
-
updateExternalWalletProviderState({
|
|
79
|
-
SolanaProvider: SolanaExternalWalletProvider,
|
|
80
|
-
solanaContext: SolanaExternalWalletContext
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}, []);
|
|
84
|
-
const value = useMemo(() => ({ wallets: walletFns }), [walletFns]);
|
|
85
|
-
if (!solanaContext || !SolanaProvider) {
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
return /* @__PURE__ */ jsx(ConnectionProvider, { endpoint, config: connectionConfig, children: /* @__PURE__ */ jsx(
|
|
89
|
-
SolanaWalletProvider,
|
|
90
|
-
{
|
|
91
|
-
wallets: [
|
|
92
|
-
new SolanaMobileWalletAdapter({
|
|
93
|
-
addressSelector: createDefaultAddressSelector(),
|
|
94
|
-
appIdentity,
|
|
95
|
-
authorizationResultCache: createDefaultAuthorizationResultCache(),
|
|
96
|
-
chain,
|
|
97
|
-
onWalletNotFound: createDefaultWalletNotFoundHandler()
|
|
98
|
-
})
|
|
99
|
-
],
|
|
100
|
-
localStorageKey: "paraSolanaExternal",
|
|
101
|
-
autoConnect: (adapter) => __async(this, null, function* () {
|
|
102
|
-
var _a;
|
|
103
|
-
const hasParaExternalWallet = (_a = Object.values(para.externalWallets)) == null ? void 0 : _a.find((w) => w.name === adapter.name);
|
|
104
|
-
if (shouldAutoConnect && hasParaExternalWallet) {
|
|
105
|
-
if (!para.isExternalWalletAuth) {
|
|
106
|
-
return true;
|
|
107
|
-
} else if (para.isExternalWalletAuth && (yield para.isFullyLoggedIn())) {
|
|
108
|
-
return true;
|
|
109
|
-
}
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
return false;
|
|
113
|
-
}),
|
|
114
|
-
children: /* @__PURE__ */ jsx(ParaSolanaContext.Provider, { value, children })
|
|
115
|
-
}
|
|
116
|
-
) });
|
|
117
|
-
}
|
|
118
|
-
var useParaSolana = () => useContext(ParaSolanaContext);
|
|
119
|
-
|
|
120
|
-
// src/providers/SolanaExternalWalletContext.tsx
|
|
121
46
|
import { WalletType } from "@getpara/web-sdk";
|
|
122
|
-
import { useExternalWalletProviderStore as useExternalWalletProviderStore2 } from "@getpara/react-sdk";
|
|
123
47
|
import bs58 from "bs58";
|
|
124
|
-
import { jsx
|
|
48
|
+
import { jsx } from "react/jsx-runtime";
|
|
125
49
|
var defaultSolanaExternalWallet = {
|
|
126
50
|
wallets: [],
|
|
127
51
|
disconnect: () => Promise.resolve(),
|
|
128
52
|
signMessage: () => Promise.resolve({}),
|
|
129
53
|
signVerificationMessage: () => Promise.resolve({})
|
|
130
54
|
};
|
|
131
|
-
var SolanaExternalWalletContext =
|
|
132
|
-
function SolanaExternalWalletProvider({
|
|
55
|
+
var SolanaExternalWalletContext = createContext(defaultSolanaExternalWallet);
|
|
56
|
+
function SolanaExternalWalletProvider({
|
|
57
|
+
children,
|
|
58
|
+
wallets: walletFns,
|
|
59
|
+
onSwitchWallet,
|
|
60
|
+
para,
|
|
61
|
+
walletsWithFullAuth
|
|
62
|
+
}) {
|
|
133
63
|
const {
|
|
134
64
|
wallets: adapters,
|
|
135
65
|
select: selectWallet,
|
|
@@ -137,26 +67,26 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
|
|
|
137
67
|
publicKey: solanaAddress,
|
|
138
68
|
wallet,
|
|
139
69
|
connecting,
|
|
140
|
-
|
|
141
|
-
|
|
70
|
+
connected,
|
|
71
|
+
signMessage: solanaSignMessage
|
|
142
72
|
} = useWallet();
|
|
143
|
-
const { wallets: walletFns } = useParaSolana();
|
|
144
|
-
const fullAuthWallets = useExternalWalletProviderStore2((state) => state.fullAuthWallets);
|
|
145
73
|
const verificationMessage = useRef();
|
|
146
74
|
const reset = () => __async(this, null, function* () {
|
|
147
75
|
yield _disconnect();
|
|
148
76
|
yield para.logout();
|
|
149
77
|
});
|
|
150
|
-
const login = (
|
|
78
|
+
const login = (_0) => __async(this, [_0], function* ({ address, providerName }) {
|
|
151
79
|
var _a, _b;
|
|
152
80
|
try {
|
|
153
|
-
return yield para.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
81
|
+
return yield para.loginExternalWallet({
|
|
82
|
+
externalWallet: {
|
|
83
|
+
address,
|
|
84
|
+
type: WalletType.SOLANA,
|
|
85
|
+
provider: providerName,
|
|
86
|
+
withFullParaAuth: walletsWithFullAuth == null ? void 0 : walletsWithFullAuth.includes(
|
|
87
|
+
(_b = (_a = getWallet(providerName != null ? providerName : "")) == null ? void 0 : _a.id.toUpperCase()) != null ? _b : ""
|
|
88
|
+
)
|
|
89
|
+
}
|
|
160
90
|
});
|
|
161
91
|
} catch (err) {
|
|
162
92
|
yield reset();
|
|
@@ -170,32 +100,37 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
|
|
|
170
100
|
yield para.logout();
|
|
171
101
|
} else {
|
|
172
102
|
try {
|
|
173
|
-
yield login(address, (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name);
|
|
103
|
+
yield login({ address, providerName: (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name });
|
|
174
104
|
} catch (err) {
|
|
175
105
|
error = err;
|
|
176
106
|
}
|
|
177
107
|
}
|
|
178
108
|
onSwitchWallet({ address, error });
|
|
179
109
|
});
|
|
180
|
-
|
|
110
|
+
useEffect(() => {
|
|
181
111
|
var _a;
|
|
182
112
|
const storedExternalWallet = para.externalWallets[(_a = solanaAddress == null ? void 0 : solanaAddress.toString()) != null ? _a : ""];
|
|
183
113
|
if (!!solanaAddress && !storedExternalWallet) {
|
|
184
114
|
reset();
|
|
185
115
|
}
|
|
186
116
|
}, []);
|
|
187
|
-
|
|
117
|
+
useEffect(() => {
|
|
188
118
|
const storedExternalWallet = Object.values(para.externalWallets || {})[0];
|
|
189
|
-
if (!connecting && (storedExternalWallet == null ? void 0 : storedExternalWallet.type) === WalletType.SOLANA && (storedExternalWallet == null ? void 0 : storedExternalWallet.address) !== (solanaAddress == null ? void 0 : solanaAddress.toString())) {
|
|
119
|
+
if (!connecting && (!wallet || (wallet == null ? void 0 : wallet.adapter.connected)) && (storedExternalWallet == null ? void 0 : storedExternalWallet.type) === WalletType.SOLANA && (storedExternalWallet == null ? void 0 : storedExternalWallet.address) !== (solanaAddress == null ? void 0 : solanaAddress.toString())) {
|
|
190
120
|
switchWallet(solanaAddress == null ? void 0 : solanaAddress.toString());
|
|
191
121
|
}
|
|
192
|
-
}, [solanaAddress, connecting]);
|
|
122
|
+
}, [solanaAddress, connecting, wallet]);
|
|
193
123
|
const signMessage = (message) => __async(this, null, function* () {
|
|
124
|
+
var _a;
|
|
194
125
|
try {
|
|
195
126
|
const encodedMessage = new TextEncoder().encode(message);
|
|
196
127
|
const signature = yield solanaSignMessage(encodedMessage);
|
|
197
128
|
return {
|
|
198
|
-
|
|
129
|
+
externalWallet: {
|
|
130
|
+
address: solanaAddress.toString(),
|
|
131
|
+
type: WalletType.SOLANA,
|
|
132
|
+
provider: (_a = wallet == null ? void 0 : wallet.adapter) == null ? void 0 : _a.name
|
|
133
|
+
},
|
|
199
134
|
signature: bs58.encode(signature)
|
|
200
135
|
};
|
|
201
136
|
} catch (e) {
|
|
@@ -212,23 +147,20 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
|
|
|
212
147
|
const connect = (adapter) => __async(this, null, function* () {
|
|
213
148
|
yield _disconnect();
|
|
214
149
|
if (!adapter) {
|
|
215
|
-
return {
|
|
150
|
+
return { error: "Adapter not found." };
|
|
216
151
|
}
|
|
217
152
|
selectWallet(adapter.name);
|
|
218
153
|
yield new Promise((resolve) => setTimeout(resolve, 100));
|
|
219
154
|
let address;
|
|
220
155
|
let error;
|
|
221
|
-
let
|
|
222
|
-
let isVerified = false;
|
|
156
|
+
let authState;
|
|
223
157
|
try {
|
|
224
158
|
yield adapter.connect();
|
|
225
159
|
address = adapter.publicKey.toString();
|
|
226
160
|
if (address) {
|
|
227
161
|
try {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
isVerified = loginResp.isVerified;
|
|
231
|
-
verificationMessage.current = loginResp.signatureVerificationMessage;
|
|
162
|
+
authState = yield login({ address, providerName: adapter.name });
|
|
163
|
+
verificationMessage.current = authState.stage === "verify" ? authState.signatureVerificationMessage : void 0;
|
|
232
164
|
} catch (err) {
|
|
233
165
|
yield _disconnect();
|
|
234
166
|
address = void 0;
|
|
@@ -249,12 +181,13 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
|
|
|
249
181
|
}
|
|
250
182
|
}
|
|
251
183
|
}
|
|
252
|
-
return { address, error,
|
|
184
|
+
return { address, error, authState };
|
|
253
185
|
});
|
|
254
186
|
const getAdapter = (name) => {
|
|
255
187
|
var _a;
|
|
256
188
|
return (_a = adapters.find((a) => a.adapter.name === "Mobile Wallet Adapter" ? a : a.adapter.name === name ? a : false)) == null ? void 0 : _a.adapter;
|
|
257
189
|
};
|
|
190
|
+
const getWallet = (name) => wallets.find((w) => w.name === name);
|
|
258
191
|
const wallets = walletFns.map((walletFn) => {
|
|
259
192
|
const metaData = walletFn();
|
|
260
193
|
const adapter = getAdapter(metaData.name);
|
|
@@ -266,17 +199,16 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
|
|
|
266
199
|
installed: adapter && ((adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Installed || (adapter == null ? void 0 : adapter.readyState) === WalletReadyState.Loadable)
|
|
267
200
|
}, metaData);
|
|
268
201
|
});
|
|
269
|
-
const getWallet = (name) => wallets.find((w) => w.name === name);
|
|
270
202
|
const disconnect = () => __async(this, null, function* () {
|
|
271
203
|
yield _disconnect();
|
|
272
204
|
if (connected) {
|
|
273
205
|
typeof window !== void 0 && (window == null ? void 0 : window.location.reload());
|
|
274
206
|
}
|
|
275
207
|
});
|
|
276
|
-
return /* @__PURE__ */
|
|
208
|
+
return /* @__PURE__ */ jsx(
|
|
277
209
|
SolanaExternalWalletContext.Provider,
|
|
278
210
|
{
|
|
279
|
-
value:
|
|
211
|
+
value: useMemo(
|
|
280
212
|
() => ({ wallets, disconnect, signMessage, signVerificationMessage }),
|
|
281
213
|
[wallets, disconnect, signMessage, signVerificationMessage]
|
|
282
214
|
),
|
|
@@ -285,6 +217,41 @@ function SolanaExternalWalletProvider({ children, para, onSwitchWallet }) {
|
|
|
285
217
|
);
|
|
286
218
|
}
|
|
287
219
|
|
|
220
|
+
// src/providers/ParaSolanaProvider.tsx
|
|
221
|
+
import { useMemo as useMemo2 } from "react";
|
|
222
|
+
import { ConnectionProvider, WalletProvider as SolanaWalletProvider } from "@solana/wallet-adapter-react";
|
|
223
|
+
import {
|
|
224
|
+
createDefaultAddressSelector,
|
|
225
|
+
createDefaultAuthorizationResultCache,
|
|
226
|
+
createDefaultWalletNotFoundHandler,
|
|
227
|
+
SolanaMobileWalletAdapter
|
|
228
|
+
} from "@solana-mobile/wallet-adapter-mobile";
|
|
229
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
230
|
+
function ParaSolanaProvider({ children, config, internalConfig }) {
|
|
231
|
+
const { wallets: walletFns, endpoint, appIdentity, chain, connectionConfig } = config;
|
|
232
|
+
const solanaExternalWalletProviderProps = useMemo2(
|
|
233
|
+
() => __spreadValues({ wallets: walletFns }, internalConfig),
|
|
234
|
+
[walletFns, internalConfig]
|
|
235
|
+
);
|
|
236
|
+
return /* @__PURE__ */ jsx2(ConnectionProvider, { endpoint, config: connectionConfig, children: /* @__PURE__ */ jsx2(
|
|
237
|
+
SolanaWalletProvider,
|
|
238
|
+
{
|
|
239
|
+
wallets: [
|
|
240
|
+
new SolanaMobileWalletAdapter({
|
|
241
|
+
addressSelector: createDefaultAddressSelector(),
|
|
242
|
+
appIdentity,
|
|
243
|
+
authorizationResultCache: createDefaultAuthorizationResultCache(),
|
|
244
|
+
chain,
|
|
245
|
+
onWalletNotFound: createDefaultWalletNotFoundHandler()
|
|
246
|
+
})
|
|
247
|
+
],
|
|
248
|
+
localStorageKey: "paraSolanaExternal",
|
|
249
|
+
autoConnect: true,
|
|
250
|
+
children: /* @__PURE__ */ jsx2(SolanaExternalWalletProvider, __spreadProps(__spreadValues({}, solanaExternalWalletProviderProps), { children }))
|
|
251
|
+
}
|
|
252
|
+
) });
|
|
253
|
+
}
|
|
254
|
+
|
|
288
255
|
// src/wallets/connectors/phantom/phantomIcon.ts
|
|
289
256
|
var icon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMTAzNl85NDApIj4KICAgIDxwYXRoIGQ9Ik0xMiAyNEMxOC42Mjc0IDI0IDI0IDE4LjYyNzQgMjQgMTJDMjQgNS4zNzI1OCAxOC42Mjc0IDAgMTIgMEM1LjM3MjU4IDAgMCA1LjM3MjU4IDAgMTJDMCAxOC42Mjc0IDUuMzcyNTggMjQgMTIgMjRaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMTAzNl85NDApIi8+CiAgICA8cGF0aCBkPSJNMjAuODgyMyAxMS44ODk3SDE4Ljc1NUMxOC43NTUgNy41MzIyMyAxNS4yMjgyIDQgMTAuODc3MyA0QzYuNTgwMzcgNCAzLjA4Njg5IDcuNDQ1NzYgMy4wMDEzOSAxMS43Mjg2QzIuOTEyOTMgMTYuMTU1NyA3LjA2MDAxIDIwIDExLjQ4MDkgMjBIMTIuMDM3QzE1LjkzNDUgMjAgMjEuMTU4NSAxNi45NDQzIDIxLjk3NDcgMTMuMjIxMUMyMi4xMjU0IDEyLjUzNDggMjEuNTg0MSAxMS44ODk3IDIwLjg4MjMgMTEuODg5N1pNNy43MTU5NiAxMi4wODM4QzcuNzE1OTYgMTIuNjY2NSA3LjI0MDA5IDEzLjE0MzEgNi42NTgyNyAxMy4xNDMxQzYuMDc2NDQgMTMuMTQzMSA1LjYwMDYgMTIuNjY2MyA1LjYwMDYgMTIuMDgzOFYxMC4zNzAxQzUuNjAwNiA5Ljc4NzQ0IDYuMDc2NDQgOS4zMTA4NCA2LjY1ODI3IDkuMzEwODRDNy4yNDAwOSA5LjMxMDg0IDcuNzE1OTYgOS43ODc0NCA3LjcxNTk2IDEwLjM3MDFWMTIuMDgzOFpNMTEuMzg4NiAxMi4wODM4QzExLjM4ODYgMTIuNjY2NSAxMC45MTI4IDEzLjE0MzEgMTAuMzMxIDEzLjE0MzFDOS43NDkxNCAxMy4xNDMxIDkuMjczMzIgMTIuNjY2MyA5LjI3MzMyIDEyLjA4MzhWMTAuMzcwMUM5LjI3MzMyIDkuNzg3NDQgOS43NDkzNSA5LjMxMDg0IDEwLjMzMSA5LjMxMDg0QzEwLjkxMjggOS4zMTA4NCAxMS4zODg2IDkuNzg3NDQgMTEuMzg4NiAxMC4zNzAxVjEyLjA4MzhaIiBmaWxsPSJ1cmwoI3BhaW50MV9saW5lYXJfMTAzNl85NDApIi8+CiAgPC9nPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzEwMzZfOTQwIiB4MT0iMTIiIHkxPSIwIiB4Mj0iMTIiIHkyPSIyNCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjNTM0QkIxIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzU1MUJGOSIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xMDM2Xzk0MCIgeDE9IjEyLjUiIHkxPSI0IiB4Mj0iMTIuNSIgeTI9IjIwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0id2hpdGUiIHN0b3Atb3BhY2l0eT0iMC44MiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcDBfMTAzNl85NDAiPgogICAgICA8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9IndoaXRlIi8+CiAgICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KPC9zdmc+";
|
|
290
257
|
|
|
@@ -332,10 +299,13 @@ var backpackWallet = () => {
|
|
|
332
299
|
downloadUrl: "https://backpack.app/download"
|
|
333
300
|
};
|
|
334
301
|
};
|
|
302
|
+
|
|
303
|
+
// src/wallets/connectors/index.ts
|
|
304
|
+
var allWallets = [phantomWallet, glowWallet, backpackWallet];
|
|
335
305
|
export {
|
|
336
306
|
ParaSolanaProvider,
|
|
337
307
|
SolanaExternalWalletContext,
|
|
338
|
-
|
|
308
|
+
allWallets,
|
|
339
309
|
backpackWallet,
|
|
340
310
|
glowWallet,
|
|
341
311
|
phantomWallet
|
package/dist/index.js.br
CHANGED
|
Binary file
|
package/dist/index.js.gz
CHANGED
|
Binary file
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
2
|
import { WalletList } from '../types/Wallet.js';
|
|
3
|
-
import
|
|
3
|
+
import { SolanaExternalWalletProviderConfig } from './SolanaExternalWalletContext.js';
|
|
4
4
|
import { type ConnectionConfig } from '@solana/web3.js';
|
|
5
5
|
import { Chain } from '@solana-mobile/mobile-wallet-adapter-protocol';
|
|
6
|
-
export
|
|
7
|
-
wallets: any[];
|
|
8
|
-
};
|
|
9
|
-
export declare const ParaSolanaContext: import("react").Context<{
|
|
10
|
-
wallets: WalletList;
|
|
11
|
-
}>;
|
|
12
|
-
interface ParaSolanaProviderProps {
|
|
13
|
-
children: ReactNode;
|
|
6
|
+
export interface ParaSolanaProviderConfig {
|
|
14
7
|
wallets: WalletList;
|
|
15
8
|
/** Endpoint passed to the ConnectionProvider
|
|
16
9
|
* Ref: https://solana-labs.github.io/solana-web3.js/classes/Connection.html
|
|
@@ -32,10 +25,9 @@ interface ParaSolanaProviderProps {
|
|
|
32
25
|
* Ref: https://docs.solanamobile.com/reference/typescript/mobile-wallet-adapter#web3mobilewalletauthorize
|
|
33
26
|
*/
|
|
34
27
|
chain: Chain;
|
|
35
|
-
para?: ParaWeb;
|
|
36
28
|
}
|
|
37
|
-
export
|
|
38
|
-
|
|
39
|
-
|
|
29
|
+
export type ParaSolanaProviderProps = {
|
|
30
|
+
config: ParaSolanaProviderConfig;
|
|
31
|
+
internalConfig: SolanaExternalWalletProviderConfig;
|
|
40
32
|
};
|
|
41
|
-
export {};
|
|
33
|
+
export declare function ParaSolanaProvider({ children, config, internalConfig }: ParaSolanaProviderProps & PropsWithChildren): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
2
|
import ParaWeb from '@getpara/web-sdk';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
disconnect: () => Promise<void>;
|
|
7
|
-
signMessage: () => Promise<{}>;
|
|
8
|
-
signVerificationMessage: () => Promise<{}>;
|
|
9
|
-
};
|
|
10
|
-
export declare const SolanaExternalWalletContext: import("react").Context<{
|
|
3
|
+
import { WalletList } from '../types/Wallet.js';
|
|
4
|
+
import { TExternalWallet, type CommonWallet } from '@getpara/react-common';
|
|
5
|
+
export type SolanaExternalWalletContextType = {
|
|
11
6
|
wallets: CommonWallet[];
|
|
12
7
|
disconnect: () => Promise<void>;
|
|
13
8
|
signMessage: (message: string) => Promise<{
|
|
@@ -19,14 +14,18 @@ export declare const SolanaExternalWalletContext: import("react").Context<{
|
|
|
19
14
|
signature?: string;
|
|
20
15
|
error?: string;
|
|
21
16
|
}>;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
onSwitchWallet: (args: {
|
|
17
|
+
};
|
|
18
|
+
export declare const SolanaExternalWalletContext: import("react").Context<SolanaExternalWalletContextType>;
|
|
19
|
+
export type SolanaExternalWalletProviderConfig = {
|
|
20
|
+
onSwitchWallet?: (args: {
|
|
27
21
|
address?: string;
|
|
28
22
|
error?: string;
|
|
29
23
|
}) => void;
|
|
30
|
-
|
|
31
|
-
|
|
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;
|
|
32
31
|
export {};
|
package/dist/types/Wallet.d.ts
CHANGED
|
@@ -2,3 +2,4 @@ import { phantomWallet } from './phantom/phantom.js';
|
|
|
2
2
|
import { glowWallet } from './glow/glow.js';
|
|
3
3
|
import { backpackWallet } from './backpack/backpack.js';
|
|
4
4
|
export { phantomWallet, glowWallet, backpackWallet };
|
|
5
|
+
export declare const allWallets: (() => import("../../types/Wallet.js").Wallet)[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getpara/solana-wallet-connectors",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-alpha.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -8,29 +8,26 @@
|
|
|
8
8
|
".": "./dist/index.js",
|
|
9
9
|
"./connectors": "./dist/wallets/connectors/index.js"
|
|
10
10
|
},
|
|
11
|
-
"dependencies": {
|
|
12
|
-
"@getpara/react-sdk": "1.7.1",
|
|
13
|
-
"bs58": "6.0.0"
|
|
14
|
-
},
|
|
15
11
|
"scripts": {
|
|
16
12
|
"build": "rm -rf dist && yarn typegen && node ./scripts/build.mjs",
|
|
17
13
|
"typegen": "tsc --emitDeclarationOnly",
|
|
18
14
|
"test": "vitest run --coverage"
|
|
19
15
|
},
|
|
20
|
-
"
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@getpara/web-sdk": "2.0.0-alpha.3",
|
|
21
18
|
"@solana-mobile/wallet-adapter-mobile": "2.1.3",
|
|
22
19
|
"@solana/wallet-adapter-base": "0.9.23",
|
|
23
20
|
"@solana/wallet-adapter-react": "0.15.35",
|
|
24
21
|
"@solana/wallet-adapter-walletconnect": "0.1.16",
|
|
22
|
+
"bs58": "6.0.0"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@getpara/react-common": "2.0.0-alpha.3",
|
|
25
26
|
"@types/react": "^18.0.31",
|
|
26
27
|
"@types/react-dom": "^18.2.7",
|
|
27
28
|
"typescript": "^5.4.3"
|
|
28
29
|
},
|
|
29
30
|
"peerDependencies": {
|
|
30
|
-
"@solana-mobile/wallet-adapter-mobile": "2.1.x",
|
|
31
|
-
"@solana/wallet-adapter-base": "0.9.x",
|
|
32
|
-
"@solana/wallet-adapter-react": "0.15.x",
|
|
33
|
-
"@solana/wallet-adapter-walletconnect": "0.1.x",
|
|
34
31
|
"react": ">=18",
|
|
35
32
|
"react-dom": ">=18"
|
|
36
33
|
},
|
|
@@ -38,5 +35,5 @@
|
|
|
38
35
|
"dist",
|
|
39
36
|
"package.json"
|
|
40
37
|
],
|
|
41
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "77a1e04b06258842ca9c81e3db2a2b0092517659"
|
|
42
39
|
}
|