@sundaeswap/wallet-lite 0.0.26 → 0.0.28

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 (21) hide show
  1. package/dist/cjs/classes/WalletObserver.class.js +33 -25
  2. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  3. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +1 -3
  4. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +1 -1
  5. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +33 -33
  6. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  7. package/dist/esm/classes/WalletObserver.class.js +7 -2
  8. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  9. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +1 -3
  10. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +1 -1
  11. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +7 -7
  12. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  13. package/dist/types/classes/WalletObserver.class.d.ts +1 -1
  14. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  15. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.d.ts.map +1 -1
  16. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  17. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  18. package/package.json +1 -1
  19. package/src/classes/WalletObserver.class.ts +15 -5
  20. package/src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts +1 -10
  21. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +15 -15
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sundaeswap/wallet-lite",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -1,7 +1,9 @@
1
1
  import type { TransactionUnspentOutput } from "@cardano-sdk/core/dist/cjs/Serialization/index.js";
2
- import type {
3
- Cip30WalletApi,
4
- GetCollateral,
2
+ import {
3
+ APIErrorCode,
4
+ type ApiError,
5
+ type Cip30WalletApi,
6
+ type GetCollateral,
5
7
  } from "@cardano-sdk/dapp-connector";
6
8
  import { AssetAmount, type IAssetAmountMetadata } from "@sundaeswap/asset";
7
9
  import merge from "lodash/merge.js";
@@ -238,7 +240,8 @@ export class WalletObserver<
238
240
  const selectedWallet =
239
241
  activeWallet || (this._activeWallet as TSupportedWalletExtensions);
240
242
 
241
- while (!this.api) {
243
+ let shouldContinue = true;
244
+ while (!this.api && shouldContinue) {
242
245
  if (attempts === 10) {
243
246
  throw new Error(
244
247
  "Could not reconnect to the selected wallet. Please check your extension."
@@ -255,6 +258,14 @@ export class WalletObserver<
255
258
  this.api = api;
256
259
  this.network = await api.getNetworkId();
257
260
  } catch (e) {
261
+ if (
262
+ (e as Error)?.message === "user canceled connection" ||
263
+ (e as ApiError)?.code === APIErrorCode.Refused
264
+ ) {
265
+ shouldContinue = false;
266
+ return undefined;
267
+ }
268
+
258
269
  await new Promise((res) => setTimeout(res, 200));
259
270
  attempts++;
260
271
  }
@@ -389,7 +400,6 @@ export class WalletObserver<
389
400
  disconnect = (): void => {
390
401
  this._activeWallet = undefined;
391
402
  this.api = undefined;
392
- this._cachedMetadata = new Map();
393
403
  window.localStorage.removeItem(WalletObserver.PERSISTENCE_CACHE_KEY);
394
404
  this.dispatch(EWalletObserverEvents.DISCONNECT);
395
405
  };
@@ -83,17 +83,8 @@ export const useProviderEventListeners = (
83
83
  useEffect(() => {
84
84
  window.addEventListener("focus", state.syncWallet);
85
85
 
86
- observer.addEventListener(
87
- EWalletObserverEvents.CONNECT_WALLET_END,
88
- state.syncWallet
89
- );
90
-
91
86
  return () => {
92
87
  window.addEventListener("focus", state.syncWallet);
93
- observer.removeEventListener(
94
- EWalletObserverEvents.CONNECT_WALLET_END,
95
- state.syncWallet
96
- );
97
88
  };
98
- }, [observer, state.syncWallet]);
89
+ }, [state.syncWallet]);
99
90
  };
@@ -57,21 +57,6 @@ export const useWalletObserverState = (observer: WalletObserver) => {
57
57
  setIsCip45(false);
58
58
  }, [observer]);
59
59
 
60
- const connectWallet = useCallback(
61
- async (wallet: TSupportedWalletExtensions) => {
62
- if (
63
- observer.hasActiveConnection() &&
64
- wallet !== observer.getActiveWallet()
65
- ) {
66
- setSwitching(true);
67
- }
68
-
69
- await observer.connectWallet(wallet);
70
- setSwitching(false);
71
- },
72
- [observer, setSwitching]
73
- );
74
-
75
60
  const syncWallet = useCallback(async () => {
76
61
  if (observer.isSyncing() || !observer.hasActiveConnection()) {
77
62
  return;
@@ -144,6 +129,21 @@ export const useWalletObserverState = (observer: WalletObserver) => {
144
129
  setIsCip45(newWallet.includes("p2p"));
145
130
  }, [observer, disconnect]);
146
131
 
132
+ const connectWallet = useCallback(
133
+ async (wallet: TSupportedWalletExtensions) => {
134
+ if (
135
+ observer.hasActiveConnection() &&
136
+ wallet !== observer.getActiveWallet()
137
+ ) {
138
+ setSwitching(true);
139
+ }
140
+
141
+ await observer.connectWallet(wallet).then(syncWallet);
142
+ setSwitching(false);
143
+ },
144
+ [observer, setSwitching]
145
+ );
146
+
147
147
  return {
148
148
  activeWallet,
149
149
  setActiveWallet,