@sundaeswap/wallet-lite 0.0.32 → 0.0.34
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/cjs/classes/WalletObserver.class.js +21 -29
- package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +7 -0
- package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +11 -4
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletLoadingState.js +13 -5
- package/dist/cjs/react-components/hooks/useWalletLoadingState.js.map +1 -1
- package/dist/esm/classes/WalletObserver.class.js +5 -13
- package/dist/esm/classes/WalletObserver.class.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +8 -1
- package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +4 -3
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletLoadingState.js +5 -5
- package/dist/esm/react-components/hooks/useWalletLoadingState.js.map +1 -1
- package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
- package/dist/types/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/classes/WalletObserver.class.ts +7 -18
- package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +14 -1
- package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +4 -3
- package/src/react-components/hooks/useWalletLoadingState.ts +5 -5
package/package.json
CHANGED
|
@@ -111,18 +111,6 @@ export class WalletObserver<
|
|
|
111
111
|
if (!this._options.persistence) {
|
|
112
112
|
return;
|
|
113
113
|
}
|
|
114
|
-
|
|
115
|
-
const savedWallet = window.localStorage.getItem(
|
|
116
|
-
WalletObserver.PERSISTENCE_CACHE_KEY
|
|
117
|
-
);
|
|
118
|
-
|
|
119
|
-
if (!savedWallet) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
// Init connection
|
|
124
|
-
const seed: IWalletObserverSeed = JSON.parse(savedWallet);
|
|
125
|
-
this.connectWallet(seed.activeWallet);
|
|
126
114
|
}
|
|
127
115
|
|
|
128
116
|
/**
|
|
@@ -187,13 +175,13 @@ export class WalletObserver<
|
|
|
187
175
|
network: newNetwork,
|
|
188
176
|
};
|
|
189
177
|
|
|
190
|
-
this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);
|
|
191
|
-
this._performingSync = false;
|
|
192
|
-
|
|
193
178
|
const end = performance.now();
|
|
194
179
|
if (this._options.debug) {
|
|
195
180
|
console.log(`sync: ${end - start}ms`);
|
|
196
181
|
}
|
|
182
|
+
|
|
183
|
+
this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);
|
|
184
|
+
this._performingSync = false;
|
|
197
185
|
return result;
|
|
198
186
|
} catch (e) {
|
|
199
187
|
this._performingSync = false;
|
|
@@ -230,8 +218,6 @@ export class WalletObserver<
|
|
|
230
218
|
* @returns {Promise<Cip30WalletApi>} - A promise that resolves to the API instance.
|
|
231
219
|
*/
|
|
232
220
|
syncApi = async (activeWallet?: TSupportedWalletExtensions): Promise<any> => {
|
|
233
|
-
let attempts = 0;
|
|
234
|
-
this.api = undefined;
|
|
235
221
|
if (!activeWallet && !this.activeWallet) {
|
|
236
222
|
throw new Error(
|
|
237
223
|
"A wallet is required to be passed as a parameter, or to be defined in the class."
|
|
@@ -241,8 +227,10 @@ export class WalletObserver<
|
|
|
241
227
|
const selectedWallet =
|
|
242
228
|
activeWallet || (this.activeWallet as TSupportedWalletExtensions);
|
|
243
229
|
|
|
230
|
+
let attempts = 0;
|
|
244
231
|
let shouldContinue = true;
|
|
245
|
-
|
|
232
|
+
|
|
233
|
+
while (shouldContinue) {
|
|
246
234
|
if (attempts === 10) {
|
|
247
235
|
throw new Error(
|
|
248
236
|
"Could not reconnect to the selected wallet. Please check your extension."
|
|
@@ -258,6 +246,7 @@ export class WalletObserver<
|
|
|
258
246
|
|
|
259
247
|
this.api = api;
|
|
260
248
|
this.network = await api.getNetworkId();
|
|
249
|
+
shouldContinue = false;
|
|
261
250
|
} catch (e) {
|
|
262
251
|
if (
|
|
263
252
|
(e as Error)?.message === "user canceled connection" ||
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { FC, PropsWithChildren, useMemo } from "react";
|
|
1
|
+
import { FC, PropsWithChildren, useEffect, useMemo } from "react";
|
|
2
2
|
|
|
3
|
+
import { TSupportedWalletExtensions } from "../../@types/observer.js";
|
|
4
|
+
import { WalletObserver } from "../../classes/WalletObserver.class.js";
|
|
3
5
|
import {
|
|
4
6
|
IWalletObserverProviderProps,
|
|
5
7
|
IWalletObserverState,
|
|
@@ -49,6 +51,17 @@ const WalletObserverProvider: FC<
|
|
|
49
51
|
[options, state, derivedState]
|
|
50
52
|
);
|
|
51
53
|
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
const wallet: TSupportedWalletExtensions | null =
|
|
56
|
+
window.localStorage.getItem(
|
|
57
|
+
WalletObserver.PERSISTENCE_CACHE_KEY
|
|
58
|
+
) as TSupportedWalletExtensions;
|
|
59
|
+
|
|
60
|
+
if (wallet) {
|
|
61
|
+
state.connectWallet(JSON.parse(wallet).activeWallet);
|
|
62
|
+
}
|
|
63
|
+
}, []);
|
|
64
|
+
|
|
52
65
|
return (
|
|
53
66
|
<WalletObserverContext.Provider value={contextValue}>
|
|
54
67
|
{children}
|
|
@@ -129,11 +129,12 @@ export const useWalletObserverState = (observer: WalletObserver) => {
|
|
|
129
129
|
const connectWallet = useCallback(
|
|
130
130
|
async (wallet: TSupportedWalletExtensions) => {
|
|
131
131
|
if (observer.hasActiveConnection() && wallet !== observer.activeWallet) {
|
|
132
|
-
setSwitching(true);
|
|
132
|
+
setSwitching(() => true);
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
await observer.connectWallet(wallet)
|
|
136
|
-
|
|
135
|
+
await observer.connectWallet(wallet);
|
|
136
|
+
await syncWallet();
|
|
137
|
+
setSwitching(() => false);
|
|
137
138
|
},
|
|
138
139
|
[observer, setSwitching]
|
|
139
140
|
);
|
|
@@ -20,16 +20,16 @@ export const useWalletLoadingState = <
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
const setConnectingStart = () => {
|
|
23
|
-
setConnecting(true);
|
|
23
|
+
setConnecting(() => true);
|
|
24
24
|
};
|
|
25
25
|
const setConnectingEnd = () => {
|
|
26
|
-
setConnecting(false);
|
|
26
|
+
setConnecting(() => false);
|
|
27
27
|
};
|
|
28
28
|
const setSyncingStart = () => {
|
|
29
|
-
setSyncing(true);
|
|
29
|
+
setSyncing(() => true);
|
|
30
30
|
};
|
|
31
31
|
const setSyncingEnd = () => {
|
|
32
|
-
setSyncing(false);
|
|
32
|
+
setSyncing(() => false);
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
state.observer.addEventListener(
|
|
@@ -67,7 +67,7 @@ export const useWalletLoadingState = <
|
|
|
67
67
|
setSyncingEnd
|
|
68
68
|
);
|
|
69
69
|
};
|
|
70
|
-
}, [
|
|
70
|
+
}, []);
|
|
71
71
|
|
|
72
72
|
return {
|
|
73
73
|
connectingWallet: connecting,
|