@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.
- package/dist/cjs/classes/WalletObserver.class.js +33 -25
- package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +1 -3
- package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +33 -33
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/esm/classes/WalletObserver.class.js +7 -2
- package/dist/esm/classes/WalletObserver.class.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +1 -3
- package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +7 -7
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/types/classes/WalletObserver.class.d.ts +1 -1
- package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.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 +15 -5
- package/src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts +1 -10
- package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +15 -15
package/package.json
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { TransactionUnspentOutput } from "@cardano-sdk/core/dist/cjs/Serialization/index.js";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
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
|
};
|
package/src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts
CHANGED
|
@@ -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
|
-
}, [
|
|
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,
|