@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.
Files changed (25) hide show
  1. package/dist/cjs/classes/WalletObserver.class.js +21 -29
  2. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  3. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +7 -0
  4. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  5. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +11 -4
  6. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  7. package/dist/cjs/react-components/hooks/useWalletLoadingState.js +13 -5
  8. package/dist/cjs/react-components/hooks/useWalletLoadingState.js.map +1 -1
  9. package/dist/esm/classes/WalletObserver.class.js +5 -13
  10. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  11. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +8 -1
  12. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  13. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +4 -3
  14. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  15. package/dist/esm/react-components/hooks/useWalletLoadingState.js +5 -5
  16. package/dist/esm/react-components/hooks/useWalletLoadingState.js.map +1 -1
  17. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  18. package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
  19. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  20. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  21. package/package.json +1 -1
  22. package/src/classes/WalletObserver.class.ts +7 -18
  23. package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +14 -1
  24. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +4 -3
  25. package/src/react-components/hooks/useWalletLoadingState.ts +5 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sundaeswap/wallet-lite",
3
- "version": "0.0.32",
3
+ "version": "0.0.34",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -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
- while (!this.api && shouldContinue) {
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).then(syncWallet);
136
- setSwitching(false);
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
- }, [state.observer, setConnecting, setSyncing]);
70
+ }, []);
71
71
 
72
72
  return {
73
73
  connectingWallet: connecting,