@sundaeswap/wallet-lite 0.0.27 → 0.0.29
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 -24
- package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
- package/dist/cjs/react-components/RenderWalletHandles.js.map +1 -1
- package/dist/cjs/react-components/RenderWalletPeerConnect.js.map +1 -1
- package/dist/cjs/react-components/RenderWalletState.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +6 -14
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletLoadingState.js +14 -3
- package/dist/cjs/react-components/hooks/useWalletLoadingState.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletObserver.js +1 -2
- package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletPeerConnect.js +1 -1
- package/dist/cjs/react-components/hooks/useWalletPeerConnect.js.map +1 -1
- package/dist/esm/classes/WalletObserver.class.js +7 -1
- package/dist/esm/classes/WalletObserver.class.js.map +1 -1
- package/dist/esm/react-components/RenderWalletHandles.js.map +1 -1
- package/dist/esm/react-components/RenderWalletPeerConnect.js.map +1 -1
- package/dist/esm/react-components/RenderWalletState.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +1 -6
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletLoadingState.js +9 -3
- package/dist/esm/react-components/hooks/useWalletLoadingState.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletObserver.js +1 -2
- package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletPeerConnect.js +1 -1
- package/dist/esm/react-components/hooks/useWalletPeerConnect.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/RenderWalletHandles.d.ts +2 -7
- package/dist/types/react-components/RenderWalletHandles.d.ts.map +1 -1
- package/dist/types/react-components/RenderWalletPeerConnect.d.ts +2 -5
- package/dist/types/react-components/RenderWalletPeerConnect.d.ts.map +1 -1
- package/dist/types/react-components/RenderWalletState.d.ts +2 -4
- package/dist/types/react-components/RenderWalletState.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +0 -2
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
- package/dist/types/react-components/contexts/observer/types.d.ts +0 -2
- package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
- package/dist/types/react-components/hooks/useWalletLoadingState.d.ts +1 -0
- package/dist/types/react-components/hooks/useWalletLoadingState.d.ts.map +1 -1
- package/dist/types/react-components/hooks/useWalletObserver.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 -4
- package/src/react-components/RenderWalletHandles.tsx +2 -10
- package/src/react-components/RenderWalletPeerConnect.tsx +2 -5
- package/src/react-components/RenderWalletState.tsx +2 -4
- package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +0 -5
- package/src/react-components/contexts/observer/types.ts +0 -2
- package/src/react-components/hooks/useWalletLoadingState.ts +14 -2
- package/src/react-components/hooks/useWalletObserver.ts +0 -2
- package/src/react-components/hooks/useWalletPeerConnect.tsx +2 -2
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
|
}
|
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
2
2
|
import { FC, ReactNode } from "react";
|
|
3
3
|
|
|
4
|
-
import { TAssetAmountMap } from "../@types/observer.js";
|
|
5
|
-
import { THandleMetadata } from "./contexts/observer/index.js";
|
|
6
4
|
import { useWalletHandles } from "./hooks/useWalletHandles.js";
|
|
7
5
|
import { useWalletObserver } from "./hooks/useWalletObserver.js";
|
|
8
6
|
|
|
9
|
-
export type IWalletHandles<
|
|
10
|
-
AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
|
|
11
|
-
> = {
|
|
12
|
-
handles: TAssetAmountMap<THandleMetadata<AssetMetadata>>;
|
|
13
|
-
loadingHandles: boolean;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
7
|
export type TRenderWalletHandlesFunctionState<
|
|
17
8
|
T extends IAssetAmountMetadata = IAssetAmountMetadata
|
|
18
|
-
> = ReturnType<typeof useWalletObserver<T>> &
|
|
9
|
+
> = ReturnType<typeof useWalletObserver<T>> &
|
|
10
|
+
ReturnType<typeof useWalletHandles<T>>;
|
|
19
11
|
|
|
20
12
|
export type TRenderWalletHandlesFunction = (
|
|
21
13
|
state: TRenderWalletHandlesFunctionState
|
|
@@ -2,16 +2,13 @@ import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
|
2
2
|
import { FC, ReactNode } from "react";
|
|
3
3
|
import { ErrorBoundary } from "react-error-boundary";
|
|
4
4
|
|
|
5
|
-
import { TGetPeerConnectInstance } from "../@types/observer.js";
|
|
6
5
|
import { useWalletObserver } from "./hooks/useWalletObserver.js";
|
|
7
6
|
import { useWalletPeerConnect } from "./hooks/useWalletPeerConnect.js";
|
|
8
7
|
|
|
9
8
|
export type TRenderWalletPeerConnectFunctionState<
|
|
10
9
|
T extends IAssetAmountMetadata = IAssetAmountMetadata
|
|
11
|
-
> = ReturnType<typeof useWalletObserver<T>> &
|
|
12
|
-
|
|
13
|
-
QRCodeElement: ReactNode;
|
|
14
|
-
};
|
|
10
|
+
> = ReturnType<typeof useWalletObserver<T>> &
|
|
11
|
+
ReturnType<typeof useWalletPeerConnect<T>>;
|
|
15
12
|
|
|
16
13
|
export type TRenderWalletPeerConnectFunction = (
|
|
17
14
|
state: TRenderWalletPeerConnectFunctionState
|
|
@@ -6,10 +6,8 @@ import { useWalletObserver } from "./hooks/useWalletObserver.js";
|
|
|
6
6
|
|
|
7
7
|
export type TRenderWalletStateFunctionState<
|
|
8
8
|
T extends IAssetAmountMetadata = IAssetAmountMetadata
|
|
9
|
-
> = ReturnType<typeof useWalletObserver<T>> &
|
|
10
|
-
|
|
11
|
-
syncingWallet: boolean;
|
|
12
|
-
};
|
|
9
|
+
> = ReturnType<typeof useWalletObserver<T>> &
|
|
10
|
+
ReturnType<typeof useWalletLoadingState<T>>;
|
|
13
11
|
|
|
14
12
|
export type TRenderWalletStateFunction = (
|
|
15
13
|
state: TRenderWalletStateFunctionState
|
|
@@ -35,7 +35,6 @@ export const useWalletObserverState = (observer: WalletObserver) => {
|
|
|
35
35
|
const [unusedAddresses, setUnusedAddresses] = useState<string[]>([]);
|
|
36
36
|
const [utxos, setUtxos] = useState<TransactionUnspentOutput[]>();
|
|
37
37
|
const [collateral, setCollateral] = useState<TransactionUnspentOutput[]>();
|
|
38
|
-
const [ready, setReady] = useState(false);
|
|
39
38
|
const [isCip45, setIsCip45] = useState(false);
|
|
40
39
|
const [switching, setSwitching] = useState(false);
|
|
41
40
|
|
|
@@ -53,7 +52,6 @@ export const useWalletObserverState = (observer: WalletObserver) => {
|
|
|
53
52
|
setNetwork(undefined);
|
|
54
53
|
setUtxos(undefined);
|
|
55
54
|
setCollateral(undefined);
|
|
56
|
-
setReady(false);
|
|
57
55
|
setIsCip45(false);
|
|
58
56
|
}, [observer]);
|
|
59
57
|
|
|
@@ -125,7 +123,6 @@ export const useWalletObserverState = (observer: WalletObserver) => {
|
|
|
125
123
|
return prevValue;
|
|
126
124
|
});
|
|
127
125
|
|
|
128
|
-
setReady(true);
|
|
129
126
|
setIsCip45(newWallet.includes("p2p"));
|
|
130
127
|
}, [observer, disconnect]);
|
|
131
128
|
|
|
@@ -170,7 +167,5 @@ export const useWalletObserverState = (observer: WalletObserver) => {
|
|
|
170
167
|
connectWallet,
|
|
171
168
|
switching,
|
|
172
169
|
setSwitching,
|
|
173
|
-
ready,
|
|
174
|
-
setReady,
|
|
175
170
|
};
|
|
176
171
|
};
|
|
@@ -49,10 +49,8 @@ export interface IWalletObserverState<
|
|
|
49
49
|
observerRef: MutableRefObject<WalletObserver<AssetMetadata>>;
|
|
50
50
|
refreshInterval: number | false;
|
|
51
51
|
state: {
|
|
52
|
-
ready: boolean;
|
|
53
52
|
isCip45: boolean;
|
|
54
53
|
setIsCip45: Dispatch<SetStateAction<boolean>>;
|
|
55
|
-
setReady: Dispatch<SetStateAction<boolean>>;
|
|
56
54
|
activeWallet?: TSupportedWalletExtensions;
|
|
57
55
|
setActiveWallet: Dispatch<
|
|
58
56
|
SetStateAction<TSupportedWalletExtensions | undefined>
|
|
@@ -10,6 +10,7 @@ export const useWalletLoadingState = <
|
|
|
10
10
|
const state = useWalletObserver<AssetMetadata>();
|
|
11
11
|
const [connecting, setConnecting] = useState(false);
|
|
12
12
|
const [syncing, setSyncing] = useState(false);
|
|
13
|
+
const [ready, setReady] = useState(false);
|
|
13
14
|
|
|
14
15
|
useEffect(() => {
|
|
15
16
|
if (!state.observer) {
|
|
@@ -21,6 +22,7 @@ export const useWalletLoadingState = <
|
|
|
21
22
|
};
|
|
22
23
|
const setConnectingEnd = () => {
|
|
23
24
|
setConnecting(false);
|
|
25
|
+
setReady(true);
|
|
24
26
|
};
|
|
25
27
|
const setSyncingStart = () => {
|
|
26
28
|
setSyncing(true);
|
|
@@ -28,6 +30,7 @@ export const useWalletLoadingState = <
|
|
|
28
30
|
const setSyncingEnd = () => {
|
|
29
31
|
setSyncing(false);
|
|
30
32
|
};
|
|
33
|
+
const onDisconnect = () => setReady(false);
|
|
31
34
|
|
|
32
35
|
state.observer.addEventListener(
|
|
33
36
|
EWalletObserverEvents.CONNECT_WALLET_START,
|
|
@@ -45,6 +48,10 @@ export const useWalletLoadingState = <
|
|
|
45
48
|
EWalletObserverEvents.SYNCING_WALLET_END,
|
|
46
49
|
setSyncingEnd
|
|
47
50
|
);
|
|
51
|
+
state.observer.addEventListener(
|
|
52
|
+
EWalletObserverEvents.DISCONNECT,
|
|
53
|
+
onDisconnect
|
|
54
|
+
);
|
|
48
55
|
|
|
49
56
|
return () => {
|
|
50
57
|
state.observer.removeEventListener(
|
|
@@ -63,15 +70,20 @@ export const useWalletLoadingState = <
|
|
|
63
70
|
EWalletObserverEvents.SYNCING_WALLET_END,
|
|
64
71
|
setSyncingEnd
|
|
65
72
|
);
|
|
73
|
+
state.observer.removeEventListener(
|
|
74
|
+
EWalletObserverEvents.DISCONNECT,
|
|
75
|
+
onDisconnect
|
|
76
|
+
);
|
|
66
77
|
};
|
|
67
|
-
}, [state.observer, setConnecting, setSyncing]);
|
|
78
|
+
}, [state.observer, setConnecting, setSyncing, setReady]);
|
|
68
79
|
|
|
69
80
|
const memoizedState = useMemo(
|
|
70
81
|
() => ({
|
|
71
82
|
connectingWallet: connecting,
|
|
72
83
|
syncingWallet: syncing,
|
|
84
|
+
ready,
|
|
73
85
|
}),
|
|
74
|
-
[]
|
|
86
|
+
[connecting, syncing, ready]
|
|
75
87
|
);
|
|
76
88
|
|
|
77
89
|
return memoizedState;
|
|
@@ -18,7 +18,6 @@ export const useWalletObserver = <
|
|
|
18
18
|
|
|
19
19
|
const memoizedState = useMemo(() => {
|
|
20
20
|
const result: TUseWalletObserverState<AssetMetadata> = {
|
|
21
|
-
ready: Boolean(state.activeWallet && state.observer.api),
|
|
22
21
|
isCip45: state.isCip45,
|
|
23
22
|
activeWallet: state.activeWallet,
|
|
24
23
|
adaBalance: state.adaBalance,
|
|
@@ -53,7 +52,6 @@ export const useWalletObserver = <
|
|
|
53
52
|
state.usedAddresses,
|
|
54
53
|
state.utxos,
|
|
55
54
|
state.collateral,
|
|
56
|
-
state.ready,
|
|
57
55
|
state.isCip45,
|
|
58
56
|
state.switching,
|
|
59
57
|
]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
2
|
-
|
|
3
2
|
import { MutableRefObject, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
|
|
4
4
|
import { TGetPeerConnectInstance } from "../../@types/observer.js";
|
|
5
5
|
import { useWalletObserver } from "./useWalletObserver.js";
|
|
6
6
|
|
|
@@ -22,7 +22,7 @@ export const useWalletPeerConnect = <
|
|
|
22
22
|
.getCip45Instance()
|
|
23
23
|
.then((res) => setPeerConnect(res))
|
|
24
24
|
.catch((e) => setError((e as Error).message));
|
|
25
|
-
}, [state.observer,
|
|
25
|
+
}, [state.observer, setPeerConnect, setError]);
|
|
26
26
|
|
|
27
27
|
useEffect(() => {
|
|
28
28
|
if (peerConnect && qrCode.current) {
|