@sundaeswap/wallet-lite 0.0.37 → 0.0.39

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 (63) hide show
  1. package/dist/cjs/@types/events.js.map +1 -1
  2. package/dist/cjs/classes/WalletObserver.class.js +13 -13
  3. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  4. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +17 -8
  5. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  6. package/dist/cjs/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js +84 -3
  7. package/dist/cjs/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js.map +1 -1
  8. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +15 -1
  9. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  10. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  11. package/dist/cjs/react-components/hooks/useWalletLoadingState.js +10 -59
  12. package/dist/cjs/react-components/hooks/useWalletLoadingState.js.map +1 -1
  13. package/dist/cjs/react-components/hooks/useWalletObserver.js +25 -21
  14. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  15. package/dist/cjs/utils/getLibs.js +1 -1
  16. package/dist/cjs/utils/getLibs.js.map +1 -1
  17. package/dist/esm/@types/events.js.map +1 -1
  18. package/dist/esm/classes/WalletObserver.class.js +3 -3
  19. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  20. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +17 -7
  21. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  22. package/dist/esm/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js +56 -5
  23. package/dist/esm/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js.map +1 -1
  24. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +14 -2
  25. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  26. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  27. package/dist/esm/react-components/hooks/useWalletLoadingState.js +11 -41
  28. package/dist/esm/react-components/hooks/useWalletLoadingState.js.map +1 -1
  29. package/dist/esm/react-components/hooks/useWalletObserver.js +6 -4
  30. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  31. package/dist/esm/utils/getLibs.js +1 -1
  32. package/dist/esm/utils/getLibs.js.map +1 -1
  33. package/dist/types/@types/events.d.ts +1 -4
  34. package/dist/types/@types/events.d.ts.map +1 -1
  35. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  36. package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
  37. package/dist/types/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.d.ts +9 -2
  38. package/dist/types/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.d.ts.map +1 -1
  39. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +1 -0
  40. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  41. package/dist/types/react-components/contexts/observer/types.d.ts +3 -0
  42. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  43. package/dist/types/react-components/hooks/useWalletLoadingState.d.ts.map +1 -1
  44. package/dist/types/react-components/hooks/useWalletObserver.d.ts +2 -2
  45. package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
  46. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  47. package/package.json +1 -1
  48. package/src/@types/events.ts +1 -4
  49. package/src/classes/WalletObserver.class.ts +3 -4
  50. package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +25 -6
  51. package/src/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.ts +94 -5
  52. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +28 -1
  53. package/src/react-components/contexts/observer/types.ts +3 -0
  54. package/src/react-components/hooks/useWalletLoadingState.ts +12 -68
  55. package/src/react-components/hooks/useWalletObserver.ts +53 -22
  56. package/src/utils/getLibs.ts +1 -1
  57. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +0 -64
  58. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +0 -1
  59. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +0 -54
  60. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +0 -1
  61. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.d.ts +0 -14
  62. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.d.ts.map +0 -1
  63. package/src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts +0 -90
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sundaeswap/wallet-lite",
3
- "version": "0.0.37",
3
+ "version": "0.0.39",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -1,7 +1,6 @@
1
1
  import { IAssetAmountMetadata } from "@sundaeswap/asset";
2
2
 
3
3
  import { WalletBalanceMap } from "../classes/WalletBalanceMap.class.js";
4
- import { TSupportedWalletExtensions } from "./observer.js";
5
4
 
6
5
  /**
7
6
  * A list of observer events that a client can hook into.
@@ -32,9 +31,7 @@ export interface EWalletObserverEventValues<
32
31
  unusedAddresses: string[];
33
32
  };
34
33
  [EWalletObserverEvents.CONNECT_WALLET_START]: undefined;
35
- [EWalletObserverEvents.CONNECT_WALLET_END]: {
36
- extension: TSupportedWalletExtensions;
37
- };
34
+ [EWalletObserverEvents.CONNECT_WALLET_END]: undefined;
38
35
  [EWalletObserverEvents.GET_BALANCE_MAP_START]: undefined;
39
36
  [EWalletObserverEvents.GET_BALANCE_MAP_END]: {
40
37
  balanceMap: WalletBalanceMap<T>;
@@ -147,6 +147,7 @@ export class WalletObserver<
147
147
  newNetwork = await this.getNetwork();
148
148
  } catch (e) {
149
149
  this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);
150
+ this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);
150
151
  this._performingSync = false;
151
152
  throw e;
152
153
  }
@@ -181,11 +182,13 @@ export class WalletObserver<
181
182
  }
182
183
 
183
184
  this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);
185
+ this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);
184
186
  this._performingSync = false;
185
187
  return result;
186
188
  } catch (e) {
187
189
  this._performingSync = false;
188
190
  this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);
191
+ this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);
189
192
  throw e;
190
193
  }
191
194
  };
@@ -325,10 +328,6 @@ export class WalletObserver<
325
328
  );
326
329
  }
327
330
 
328
- this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END, {
329
- extension,
330
- });
331
-
332
331
  const end = performance.now();
333
332
  if (this._options.debug) {
334
333
  console.log(`connectWallet: ${end - start}ms`);
@@ -8,7 +8,6 @@ import {
8
8
  WalletObserverContext,
9
9
  } from "../contexts/observer/index.js";
10
10
  import { useDerivedState } from "./hooks/effects/useDerivedState.js";
11
- import { useProviderEventListeners } from "./hooks/effects/useProviderEventListeners.js";
12
11
  import { useProviderRefreshInterval } from "./hooks/effects/useProviderRefreshInterval.js";
13
12
  import { useProviderWalletObserverRef } from "./hooks/useProviderWalletObserverRef.js";
14
13
  import { useWalletObserverState } from "./hooks/useWalletObserverState.js";
@@ -23,10 +22,15 @@ import { useWalletObserverState } from "./hooks/useWalletObserverState.js";
23
22
  const WalletObserverProvider: FC<
24
23
  PropsWithChildren<IWalletObserverProviderProps>
25
24
  > = ({ children, options }) => {
26
- const observerRef = useProviderWalletObserverRef(options?.observerOptions);
25
+ const {
26
+ observerRef,
27
+ connectingWallet,
28
+ syncingWallet,
29
+ ready,
30
+ eventListenersAttached,
31
+ } = useProviderWalletObserverRef(options?.observerOptions);
27
32
  const state = useWalletObserverState(observerRef.current);
28
33
 
29
- useProviderEventListeners(observerRef.current, state);
30
34
  useProviderRefreshInterval(
31
35
  observerRef.current,
32
36
  state.syncWallet,
@@ -46,21 +50,36 @@ const WalletObserverProvider: FC<
46
50
  ...state,
47
51
  ...derivedState,
48
52
  observer: observerRef.current,
53
+ connectingWallet,
54
+ syncingWallet,
55
+ ready,
49
56
  },
50
57
  }),
51
- [options, state, derivedState]
58
+ [
59
+ options,
60
+ state,
61
+ derivedState,
62
+ connectingWallet,
63
+ syncingWallet,
64
+ ready,
65
+ observerRef.current,
66
+ ]
52
67
  );
53
68
 
54
69
  useEffect(() => {
70
+ if (!eventListenersAttached) {
71
+ return;
72
+ }
73
+
55
74
  const wallet: TSupportedWalletExtensions | null =
56
75
  window.localStorage.getItem(
57
76
  WalletObserver.PERSISTENCE_CACHE_KEY
58
77
  ) as TSupportedWalletExtensions;
59
78
 
60
- if (wallet && options?.observerOptions?.persistence) {
79
+ if (wallet && observerRef.current?.getOptions()?.persistence) {
61
80
  state.connectWallet(JSON.parse(wallet).activeWallet);
62
81
  }
63
- }, []);
82
+ }, [eventListenersAttached]);
64
83
 
65
84
  return (
66
85
  <WalletObserverContext.Provider value={contextValue}>
@@ -1,18 +1,21 @@
1
- import { MutableRefObject, useRef } from "react";
1
+ import { MutableRefObject, useEffect, useMemo, useRef, useState } from "react";
2
2
 
3
+ import { EWalletObserverEvents } from "../../../@types/events.js";
3
4
  import { TWalletObserverOptions } from "../../../@types/observer.js";
4
5
  import { WalletObserver } from "../../../classes/WalletObserver.class.js";
6
+ import { TWalletProviderHooks } from "../../contexts/observer/index.js";
5
7
 
6
8
  /**
7
9
  * Internal use only. This hook is responsible for initiating the
8
10
  * WalletObserver instance once, and assigning it to a ref.
9
11
  *
10
12
  * @param {TWalletObserverOptions} [options]
11
- * @returns {MutableRefObject<WalletObserver>}
13
+ * @param {TWalletProviderHooks}
12
14
  */
13
15
  export const useProviderWalletObserverRef = (
14
- options?: TWalletObserverOptions
15
- ): MutableRefObject<WalletObserver> => {
16
+ options?: TWalletObserverOptions,
17
+ hooks?: TWalletProviderHooks
18
+ ) => {
16
19
  // Use ref to store the observer instance, ensuring it's created only once
17
20
  const observerRef = useRef<WalletObserver | null>(null);
18
21
 
@@ -22,5 +25,91 @@ export const useProviderWalletObserverRef = (
22
25
  observerRef.current = observer;
23
26
  }
24
27
 
25
- return observerRef as MutableRefObject<WalletObserver>;
28
+ const [connecting, setConnecting] = useState(false);
29
+ const [syncing, setSyncing] = useState(false);
30
+ const [eventListenersAttached, setEventListenersAttached] = useState(false);
31
+
32
+ const ready = useMemo(() => {
33
+ return Boolean(
34
+ observerRef.current &&
35
+ observerRef.current.api &&
36
+ observerRef.current.activeWallet
37
+ );
38
+ }, [observerRef, observerRef.current.api, observerRef.current.activeWallet]);
39
+
40
+ /**
41
+ * Add user-defined hooks into the event stream.
42
+ */
43
+ useEffect(() => {
44
+ if (!observerRef.current) {
45
+ return;
46
+ }
47
+
48
+ const setConnectingStart = () => {
49
+ setConnecting(() => true);
50
+ hooks?.onConnectWalletStart?.();
51
+ };
52
+ const setConnectingEnd = () => {
53
+ setConnecting(() => false);
54
+ hooks?.onConnectWalletEnd?.();
55
+ };
56
+ const setSyncingStart = () => {
57
+ setSyncing(() => true);
58
+ hooks?.onSyncWalletStart?.();
59
+ };
60
+ const setSyncingEnd = () => {
61
+ hooks?.onSyncWalletEnd?.();
62
+ setSyncing(() => false);
63
+ };
64
+
65
+ observerRef.current.addEventListener(
66
+ EWalletObserverEvents.CONNECT_WALLET_START,
67
+ setConnectingStart
68
+ );
69
+ observerRef.current.addEventListener(
70
+ EWalletObserverEvents.CONNECT_WALLET_END,
71
+ setConnectingEnd
72
+ );
73
+ observerRef.current.addEventListener(
74
+ EWalletObserverEvents.SYNCING_WALLET_START,
75
+ setSyncingStart
76
+ );
77
+ observerRef.current.addEventListener(
78
+ EWalletObserverEvents.SYNCING_WALLET_END,
79
+ setSyncingEnd
80
+ );
81
+
82
+ setEventListenersAttached(() => true);
83
+
84
+ return () => {
85
+ if (!observerRef.current) {
86
+ return;
87
+ }
88
+
89
+ observerRef.current.removeEventListener(
90
+ EWalletObserverEvents.CONNECT_WALLET_START,
91
+ setConnectingStart
92
+ );
93
+ observerRef.current.removeEventListener(
94
+ EWalletObserverEvents.CONNECT_WALLET_END,
95
+ setConnectingEnd
96
+ );
97
+ observerRef.current.removeEventListener(
98
+ EWalletObserverEvents.SYNCING_WALLET_START,
99
+ setSyncingStart
100
+ );
101
+ observerRef.current.removeEventListener(
102
+ EWalletObserverEvents.SYNCING_WALLET_END,
103
+ setSyncingEnd
104
+ );
105
+ };
106
+ }, [observerRef, hooks]);
107
+
108
+ return {
109
+ observerRef: observerRef as MutableRefObject<WalletObserver>,
110
+ connectingWallet: connecting,
111
+ syncingWallet: syncing,
112
+ ready,
113
+ eventListenersAttached,
114
+ };
26
115
  };
@@ -1,6 +1,12 @@
1
1
  import type { TransactionUnspentOutput } from "@cardano-sdk/core/dist/cjs/Serialization/index.js";
2
2
  import { AssetAmount, IAssetAmountMetadata } from "@sundaeswap/asset";
3
- import { useCallback, useState, useTransition } from "react";
3
+ import {
4
+ useCallback,
5
+ useEffect,
6
+ useMemo,
7
+ useState,
8
+ useTransition,
9
+ } from "react";
4
10
 
5
11
  import {
6
12
  TAssetAmountMap,
@@ -43,6 +49,15 @@ export const useWalletObserverState = <
43
49
  const [switching, setSwitching] = useState(false);
44
50
  const [isPending, startTransition] = useTransition();
45
51
 
52
+ const willAutoConnect = useMemo(
53
+ () =>
54
+ Boolean(
55
+ window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY) &&
56
+ observer.getOptions().persistence
57
+ ),
58
+ [observer]
59
+ );
60
+
46
61
  const disconnect = useCallback(() => {
47
62
  // Reset observer state.
48
63
  observer.disconnect();
@@ -148,6 +163,17 @@ export const useWalletObserverState = <
148
163
  [observer, setSwitching]
149
164
  );
150
165
 
166
+ /**
167
+ * Ensure the wallet syncs on connect and disconnect.
168
+ */
169
+ useEffect(() => {
170
+ window.addEventListener("focus", syncWallet);
171
+
172
+ return () => {
173
+ window.addEventListener("focus", syncWallet);
174
+ };
175
+ }, [syncWallet]);
176
+
151
177
  return {
152
178
  activeWallet,
153
179
  setActiveWallet,
@@ -175,5 +201,6 @@ export const useWalletObserverState = <
175
201
  switching,
176
202
  setSwitching,
177
203
  isPending,
204
+ willAutoConnect,
178
205
  };
179
206
  };
@@ -49,6 +49,9 @@ export interface IWalletObserverState<
49
49
  ReturnType<typeof useDerivedState> & {
50
50
  isPending: boolean;
51
51
  observer: WalletObserver<AssetMetadata>;
52
+ connectingWallet: boolean;
53
+ syncingWallet: boolean;
54
+ ready: boolean;
52
55
  };
53
56
  }
54
57
 
@@ -1,77 +1,21 @@
1
1
  import { IAssetAmountMetadata } from "@sundaeswap/asset";
2
- import { useEffect, useMemo, useState } from "react";
2
+ import { useMemo } from "react";
3
3
 
4
- import { EWalletObserverEvents } from "../../@types/events.js";
5
- import { useWalletObserver } from "./useWalletObserver.js";
4
+ import { useWalletObserverContext } from "../contexts/observer/context.js";
6
5
 
7
6
  export const useWalletLoadingState = <
8
7
  AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
9
8
  >() => {
10
- const state = useWalletObserver<AssetMetadata>();
11
- const [connecting, setConnecting] = useState(false);
12
- const [syncing, setSyncing] = useState(false);
13
- const ready = useMemo(() => {
14
- return Boolean(state.observer.api && state.observer.activeWallet);
15
- }, [state.observer.api, state.observer.activeWallet]);
9
+ const { state } = useWalletObserverContext<AssetMetadata>();
16
10
 
17
- useEffect(() => {
18
- if (!state.observer) {
19
- return;
20
- }
11
+ const result = useMemo(
12
+ () => ({
13
+ connectingWallet: state.connectingWallet,
14
+ syncingWallet: state.syncingWallet,
15
+ ready: state.ready,
16
+ }),
17
+ [state.ready, state.syncingWallet, state.connectingWallet]
18
+ );
21
19
 
22
- const setConnectingStart = () => {
23
- setConnecting(() => true);
24
- };
25
- const setConnectingEnd = () => {
26
- setConnecting(() => false);
27
- };
28
- const setSyncingStart = () => {
29
- setSyncing(() => true);
30
- };
31
- const setSyncingEnd = () => {
32
- setSyncing(() => false);
33
- };
34
-
35
- state.observer.addEventListener(
36
- EWalletObserverEvents.CONNECT_WALLET_START,
37
- setConnectingStart
38
- );
39
- state.observer.addEventListener(
40
- EWalletObserverEvents.CONNECT_WALLET_END,
41
- setConnectingEnd
42
- );
43
- state.observer.addEventListener(
44
- EWalletObserverEvents.SYNCING_WALLET_START,
45
- setSyncingStart
46
- );
47
- state.observer.addEventListener(
48
- EWalletObserverEvents.SYNCING_WALLET_END,
49
- setSyncingEnd
50
- );
51
-
52
- return () => {
53
- state.observer.removeEventListener(
54
- EWalletObserverEvents.CONNECT_WALLET_START,
55
- setConnectingStart
56
- );
57
- state.observer.removeEventListener(
58
- EWalletObserverEvents.CONNECT_WALLET_END,
59
- setConnectingEnd
60
- );
61
- state.observer.removeEventListener(
62
- EWalletObserverEvents.SYNCING_WALLET_START,
63
- setSyncingStart
64
- );
65
- state.observer.removeEventListener(
66
- EWalletObserverEvents.SYNCING_WALLET_END,
67
- setSyncingEnd
68
- );
69
- };
70
- }, [state.observer]);
71
-
72
- return {
73
- connectingWallet: connecting,
74
- syncingWallet: syncing,
75
- ready,
76
- };
20
+ return result;
77
21
  };
@@ -1,5 +1,6 @@
1
1
  import { IAssetAmountMetadata } from "@sundaeswap/asset";
2
2
 
3
+ import { useMemo } from "react";
3
4
  import {
4
5
  TUseWalletObserverState,
5
6
  useWalletObserverContext,
@@ -8,33 +9,63 @@ import {
8
9
  /**
9
10
  * Exposes the WalletObserver state.
10
11
  *
11
- * @returns {TUseWalletObserverState<AssetMetadata>}
12
+ * @returns {Omit<TUseWalletObserverState<AssetMetadata>, "ready" | "connectingWallet" | "syncingWallet">}
12
13
  */
13
14
  export const useWalletObserver = <
14
15
  AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
15
- >(): TUseWalletObserverState<AssetMetadata> => {
16
+ >(): Omit<
17
+ TUseWalletObserverState<AssetMetadata>,
18
+ "ready" | "connectingWallet" | "syncingWallet"
19
+ > => {
16
20
  const { state } = useWalletObserverContext<AssetMetadata>();
17
21
 
18
- const result: TUseWalletObserverState<AssetMetadata> = {
19
- isCip45: state.isCip45,
20
- activeWallet: state.activeWallet,
21
- adaBalance: state.adaBalance,
22
- balance: state.balance,
23
- mainAddress: state.mainAddress,
24
- stakeAddress: state.stakeAddress,
25
- network: state.network,
26
- utxos: state.utxos,
27
- collateral: state.collateral,
28
- observer: state.observer,
29
- unusedAddresses: state.unusedAddresses,
30
- usedAddresses: state.usedAddresses,
31
- syncWallet: state.syncWallet,
32
- disconnect: state.disconnect,
33
- connectWallet: state.connectWallet,
34
- switching: state.switching,
35
- isPending: state.isPending,
36
- handles: state.handles,
37
- };
22
+ const result: Omit<
23
+ TUseWalletObserverState<AssetMetadata>,
24
+ "ready" | "connectingWallet" | "syncingWallet"
25
+ > = useMemo(
26
+ () => ({
27
+ isCip45: state.isCip45,
28
+ activeWallet: state.activeWallet,
29
+ adaBalance: state.adaBalance,
30
+ balance: state.balance,
31
+ mainAddress: state.mainAddress,
32
+ stakeAddress: state.stakeAddress,
33
+ network: state.network,
34
+ utxos: state.utxos,
35
+ collateral: state.collateral,
36
+ observer: state.observer,
37
+ unusedAddresses: state.unusedAddresses,
38
+ usedAddresses: state.usedAddresses,
39
+ syncWallet: state.syncWallet,
40
+ disconnect: state.disconnect,
41
+ connectWallet: state.connectWallet,
42
+ switching: state.switching,
43
+ isPending: state.isPending,
44
+ handles: state.handles,
45
+ willAutoConnect: state.willAutoConnect,
46
+ }),
47
+ [
48
+ state.isCip45,
49
+ state.activeWallet,
50
+ state.adaBalance.amount,
51
+ state.balance.size,
52
+ state.mainAddress,
53
+ state.stakeAddress,
54
+ state.network,
55
+ state.utxos,
56
+ state.collateral,
57
+ state.observer,
58
+ state.unusedAddresses,
59
+ state.usedAddresses,
60
+ state.syncWallet,
61
+ state.disconnect,
62
+ state.connectWallet,
63
+ state.switching,
64
+ state.isPending,
65
+ state.handles,
66
+ state.willAutoConnect,
67
+ ]
68
+ );
38
69
 
39
70
  return result;
40
71
  };
@@ -15,6 +15,6 @@ export const getCardanoUtil = async () => {
15
15
 
16
16
  export const getPeerConnect = async () => {
17
17
  return import("@fabianbormann/cardano-peer-connect").then((module) => {
18
- return module.default.DAppPeerConnect;
18
+ return module?.DAppPeerConnect || module.default.DAppPeerConnect;
19
19
  });
20
20
  };
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useProviderEventListeners = void 0;
7
- var _react = require("react");
8
- var _events = require("../../../../@types/events.js");
9
- /**
10
- * Internal use only. This is run in every WalletObserverProvider
11
- * component on initial mount. It adds all relevant event listeners
12
- * to the WalletObserver class.
13
- *
14
- * @param observer
15
- * @param syncWallet
16
- * @param hooks
17
- */
18
- var useProviderEventListeners = exports.useProviderEventListeners = function useProviderEventListeners(observer, state, hooks) {
19
- /**
20
- * Add user-defined hooks into the event stream.
21
- */
22
- (0, _react.useEffect)(function () {
23
- if (!hooks) {
24
- return;
25
- }
26
- var setConnectingStart = function setConnectingStart() {
27
- var _hooks$onConnectWalle;
28
- hooks === null || hooks === void 0 || (_hooks$onConnectWalle = hooks.onConnectWalletStart) === null || _hooks$onConnectWalle === void 0 || _hooks$onConnectWalle.call(hooks);
29
- };
30
- var setConnectingEnd = function setConnectingEnd() {
31
- var _hooks$onConnectWalle2;
32
- hooks === null || hooks === void 0 || (_hooks$onConnectWalle2 = hooks.onConnectWalletEnd) === null || _hooks$onConnectWalle2 === void 0 || _hooks$onConnectWalle2.call(hooks);
33
- };
34
- var setSyncingStart = function setSyncingStart() {
35
- var _hooks$onSyncWalletSt;
36
- hooks === null || hooks === void 0 || (_hooks$onSyncWalletSt = hooks.onSyncWalletStart) === null || _hooks$onSyncWalletSt === void 0 || _hooks$onSyncWalletSt.call(hooks);
37
- };
38
- var setSyncingEnd = function setSyncingEnd() {
39
- var _hooks$onSyncWalletEn;
40
- hooks === null || hooks === void 0 || (_hooks$onSyncWalletEn = hooks.onSyncWalletEnd) === null || _hooks$onSyncWalletEn === void 0 || _hooks$onSyncWalletEn.call(hooks);
41
- };
42
- observer.addEventListener(_events.EWalletObserverEvents.CONNECT_WALLET_START, setConnectingStart);
43
- observer.addEventListener(_events.EWalletObserverEvents.CONNECT_WALLET_END, setConnectingEnd);
44
- observer.addEventListener(_events.EWalletObserverEvents.SYNCING_WALLET_START, setSyncingStart);
45
- observer.addEventListener(_events.EWalletObserverEvents.SYNCING_WALLET_END, setSyncingEnd);
46
- return function () {
47
- observer.removeEventListener(_events.EWalletObserverEvents.CONNECT_WALLET_START, setConnectingStart);
48
- observer.removeEventListener(_events.EWalletObserverEvents.CONNECT_WALLET_END, setConnectingEnd);
49
- observer.removeEventListener(_events.EWalletObserverEvents.SYNCING_WALLET_START, setSyncingStart);
50
- observer.removeEventListener(_events.EWalletObserverEvents.SYNCING_WALLET_END, setSyncingEnd);
51
- };
52
- }, [observer, hooks]);
53
-
54
- /**
55
- * Ensure the wallet syncs on connect and disconnect.
56
- */
57
- (0, _react.useEffect)(function () {
58
- window.addEventListener("focus", state.syncWallet);
59
- return function () {
60
- window.addEventListener("focus", state.syncWallet);
61
- };
62
- }, [state.syncWallet]);
63
- };
64
- //# sourceMappingURL=useProviderEventListeners.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useProviderEventListeners.js","names":["_react","require","_events","useProviderEventListeners","exports","observer","state","hooks","useEffect","setConnectingStart","_hooks$onConnectWalle","onConnectWalletStart","call","setConnectingEnd","_hooks$onConnectWalle2","onConnectWalletEnd","setSyncingStart","_hooks$onSyncWalletSt","onSyncWalletStart","setSyncingEnd","_hooks$onSyncWalletEn","onSyncWalletEnd","addEventListener","EWalletObserverEvents","CONNECT_WALLET_START","CONNECT_WALLET_END","SYNCING_WALLET_START","SYNCING_WALLET_END","removeEventListener","window","syncWallet"],"sources":["../../../../../../src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { EWalletObserverEvents } from \"../../../../@types/events.js\";\nimport { WalletObserver } from \"../../../../classes/WalletObserver.class.js\";\nimport { TWalletProviderHooks } from \"../../../contexts/observer/index.js\";\nimport { useWalletObserverState } from \"../useWalletObserverState.js\";\n\n/**\n * Internal use only. This is run in every WalletObserverProvider\n * component on initial mount. It adds all relevant event listeners\n * to the WalletObserver class.\n *\n * @param observer\n * @param syncWallet\n * @param hooks\n */\nexport const useProviderEventListeners = (\n observer: WalletObserver,\n state: ReturnType<typeof useWalletObserverState>,\n hooks?: TWalletProviderHooks\n) => {\n /**\n * Add user-defined hooks into the event stream.\n */\n useEffect(() => {\n if (!hooks) {\n return;\n }\n\n const setConnectingStart = () => {\n hooks?.onConnectWalletStart?.();\n };\n const setConnectingEnd = () => {\n hooks?.onConnectWalletEnd?.();\n };\n const setSyncingStart = () => {\n hooks?.onSyncWalletStart?.();\n };\n const setSyncingEnd = () => {\n hooks?.onSyncWalletEnd?.();\n };\n\n observer.addEventListener(\n EWalletObserverEvents.CONNECT_WALLET_START,\n setConnectingStart\n );\n observer.addEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n setConnectingEnd\n );\n observer.addEventListener(\n EWalletObserverEvents.SYNCING_WALLET_START,\n setSyncingStart\n );\n observer.addEventListener(\n EWalletObserverEvents.SYNCING_WALLET_END,\n setSyncingEnd\n );\n\n return () => {\n observer.removeEventListener(\n EWalletObserverEvents.CONNECT_WALLET_START,\n setConnectingStart\n );\n observer.removeEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n setConnectingEnd\n );\n observer.removeEventListener(\n EWalletObserverEvents.SYNCING_WALLET_START,\n setSyncingStart\n );\n observer.removeEventListener(\n EWalletObserverEvents.SYNCING_WALLET_END,\n setSyncingEnd\n );\n };\n }, [observer, hooks]);\n\n /**\n * Ensure the wallet syncs on connect and disconnect.\n */\n useEffect(() => {\n window.addEventListener(\"focus\", state.syncWallet);\n\n return () => {\n window.addEventListener(\"focus\", state.syncWallet);\n };\n }, [state.syncWallet]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAME,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,GAAG,SAA5BA,yBAAyBA,CACpCE,QAAwB,EACxBC,KAAgD,EAChDC,KAA4B,EACzB;EACH;AACF;AACA;EACE,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAI,CAACD,KAAK,EAAE;MACV;IACF;IAEA,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA,EAAS;MAAA,IAAAC,qBAAA;MAC/BH,KAAK,aAALA,KAAK,gBAAAG,qBAAA,GAALH,KAAK,CAAEI,oBAAoB,cAAAD,qBAAA,eAA3BA,qBAAA,CAAAE,IAAA,CAAAL,KAA8B,CAAC;IACjC,CAAC;IACD,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;MAAA,IAAAC,sBAAA;MAC7BP,KAAK,aAALA,KAAK,gBAAAO,sBAAA,GAALP,KAAK,CAAEQ,kBAAkB,cAAAD,sBAAA,eAAzBA,sBAAA,CAAAF,IAAA,CAAAL,KAA4B,CAAC;IAC/B,CAAC;IACD,IAAMS,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;MAAA,IAAAC,qBAAA;MAC5BV,KAAK,aAALA,KAAK,gBAAAU,qBAAA,GAALV,KAAK,CAAEW,iBAAiB,cAAAD,qBAAA,eAAxBA,qBAAA,CAAAL,IAAA,CAAAL,KAA2B,CAAC;IAC9B,CAAC;IACD,IAAMY,aAAa,GAAG,SAAhBA,aAAaA,CAAA,EAAS;MAAA,IAAAC,qBAAA;MAC1Bb,KAAK,aAALA,KAAK,gBAAAa,qBAAA,GAALb,KAAK,CAAEc,eAAe,cAAAD,qBAAA,eAAtBA,qBAAA,CAAAR,IAAA,CAAAL,KAAyB,CAAC;IAC5B,CAAC;IAEDF,QAAQ,CAACiB,gBAAgB,CACvBC,6BAAqB,CAACC,oBAAoB,EAC1Cf,kBACF,CAAC;IACDJ,QAAQ,CAACiB,gBAAgB,CACvBC,6BAAqB,CAACE,kBAAkB,EACxCZ,gBACF,CAAC;IACDR,QAAQ,CAACiB,gBAAgB,CACvBC,6BAAqB,CAACG,oBAAoB,EAC1CV,eACF,CAAC;IACDX,QAAQ,CAACiB,gBAAgB,CACvBC,6BAAqB,CAACI,kBAAkB,EACxCR,aACF,CAAC;IAED,OAAO,YAAM;MACXd,QAAQ,CAACuB,mBAAmB,CAC1BL,6BAAqB,CAACC,oBAAoB,EAC1Cf,kBACF,CAAC;MACDJ,QAAQ,CAACuB,mBAAmB,CAC1BL,6BAAqB,CAACE,kBAAkB,EACxCZ,gBACF,CAAC;MACDR,QAAQ,CAACuB,mBAAmB,CAC1BL,6BAAqB,CAACG,oBAAoB,EAC1CV,eACF,CAAC;MACDX,QAAQ,CAACuB,mBAAmB,CAC1BL,6BAAqB,CAACI,kBAAkB,EACxCR,aACF,CAAC;IACH,CAAC;EACH,CAAC,EAAE,CAACd,QAAQ,EAAEE,KAAK,CAAC,CAAC;;EAErB;AACF;AACA;EACE,IAAAC,gBAAS,EAAC,YAAM;IACdqB,MAAM,CAACP,gBAAgB,CAAC,OAAO,EAAEhB,KAAK,CAACwB,UAAU,CAAC;IAElD,OAAO,YAAM;MACXD,MAAM,CAACP,gBAAgB,CAAC,OAAO,EAAEhB,KAAK,CAACwB,UAAU,CAAC;IACpD,CAAC;EACH,CAAC,EAAE,CAACxB,KAAK,CAACwB,UAAU,CAAC,CAAC;AACxB,CAAC","ignoreList":[]}
@@ -1,54 +0,0 @@
1
- import { useEffect } from "react";
2
- import { EWalletObserverEvents } from "../../../../@types/events.js";
3
- /**
4
- * Internal use only. This is run in every WalletObserverProvider
5
- * component on initial mount. It adds all relevant event listeners
6
- * to the WalletObserver class.
7
- *
8
- * @param observer
9
- * @param syncWallet
10
- * @param hooks
11
- */
12
- export const useProviderEventListeners = (observer, state, hooks) => {
13
- /**
14
- * Add user-defined hooks into the event stream.
15
- */
16
- useEffect(() => {
17
- if (!hooks) {
18
- return;
19
- }
20
- const setConnectingStart = () => {
21
- hooks?.onConnectWalletStart?.();
22
- };
23
- const setConnectingEnd = () => {
24
- hooks?.onConnectWalletEnd?.();
25
- };
26
- const setSyncingStart = () => {
27
- hooks?.onSyncWalletStart?.();
28
- };
29
- const setSyncingEnd = () => {
30
- hooks?.onSyncWalletEnd?.();
31
- };
32
- observer.addEventListener(EWalletObserverEvents.CONNECT_WALLET_START, setConnectingStart);
33
- observer.addEventListener(EWalletObserverEvents.CONNECT_WALLET_END, setConnectingEnd);
34
- observer.addEventListener(EWalletObserverEvents.SYNCING_WALLET_START, setSyncingStart);
35
- observer.addEventListener(EWalletObserverEvents.SYNCING_WALLET_END, setSyncingEnd);
36
- return () => {
37
- observer.removeEventListener(EWalletObserverEvents.CONNECT_WALLET_START, setConnectingStart);
38
- observer.removeEventListener(EWalletObserverEvents.CONNECT_WALLET_END, setConnectingEnd);
39
- observer.removeEventListener(EWalletObserverEvents.SYNCING_WALLET_START, setSyncingStart);
40
- observer.removeEventListener(EWalletObserverEvents.SYNCING_WALLET_END, setSyncingEnd);
41
- };
42
- }, [observer, hooks]);
43
-
44
- /**
45
- * Ensure the wallet syncs on connect and disconnect.
46
- */
47
- useEffect(() => {
48
- window.addEventListener("focus", state.syncWallet);
49
- return () => {
50
- window.addEventListener("focus", state.syncWallet);
51
- };
52
- }, [state.syncWallet]);
53
- };
54
- //# sourceMappingURL=useProviderEventListeners.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useProviderEventListeners.js","names":["useEffect","EWalletObserverEvents","useProviderEventListeners","observer","state","hooks","setConnectingStart","onConnectWalletStart","setConnectingEnd","onConnectWalletEnd","setSyncingStart","onSyncWalletStart","setSyncingEnd","onSyncWalletEnd","addEventListener","CONNECT_WALLET_START","CONNECT_WALLET_END","SYNCING_WALLET_START","SYNCING_WALLET_END","removeEventListener","window","syncWallet"],"sources":["../../../../../../src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { EWalletObserverEvents } from \"../../../../@types/events.js\";\nimport { WalletObserver } from \"../../../../classes/WalletObserver.class.js\";\nimport { TWalletProviderHooks } from \"../../../contexts/observer/index.js\";\nimport { useWalletObserverState } from \"../useWalletObserverState.js\";\n\n/**\n * Internal use only. This is run in every WalletObserverProvider\n * component on initial mount. It adds all relevant event listeners\n * to the WalletObserver class.\n *\n * @param observer\n * @param syncWallet\n * @param hooks\n */\nexport const useProviderEventListeners = (\n observer: WalletObserver,\n state: ReturnType<typeof useWalletObserverState>,\n hooks?: TWalletProviderHooks\n) => {\n /**\n * Add user-defined hooks into the event stream.\n */\n useEffect(() => {\n if (!hooks) {\n return;\n }\n\n const setConnectingStart = () => {\n hooks?.onConnectWalletStart?.();\n };\n const setConnectingEnd = () => {\n hooks?.onConnectWalletEnd?.();\n };\n const setSyncingStart = () => {\n hooks?.onSyncWalletStart?.();\n };\n const setSyncingEnd = () => {\n hooks?.onSyncWalletEnd?.();\n };\n\n observer.addEventListener(\n EWalletObserverEvents.CONNECT_WALLET_START,\n setConnectingStart\n );\n observer.addEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n setConnectingEnd\n );\n observer.addEventListener(\n EWalletObserverEvents.SYNCING_WALLET_START,\n setSyncingStart\n );\n observer.addEventListener(\n EWalletObserverEvents.SYNCING_WALLET_END,\n setSyncingEnd\n );\n\n return () => {\n observer.removeEventListener(\n EWalletObserverEvents.CONNECT_WALLET_START,\n setConnectingStart\n );\n observer.removeEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n setConnectingEnd\n );\n observer.removeEventListener(\n EWalletObserverEvents.SYNCING_WALLET_START,\n setSyncingStart\n );\n observer.removeEventListener(\n EWalletObserverEvents.SYNCING_WALLET_END,\n setSyncingEnd\n );\n };\n }, [observer, hooks]);\n\n /**\n * Ensure the wallet syncs on connect and disconnect.\n */\n useEffect(() => {\n window.addEventListener(\"focus\", state.syncWallet);\n\n return () => {\n window.addEventListener(\"focus\", state.syncWallet);\n };\n }, [state.syncWallet]);\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAEjC,SAASC,qBAAqB,QAAQ,8BAA8B;AAKpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAGA,CACvCC,QAAwB,EACxBC,KAAgD,EAChDC,KAA4B,KACzB;EACH;AACF;AACA;EACEL,SAAS,CAAC,MAAM;IACd,IAAI,CAACK,KAAK,EAAE;MACV;IACF;IAEA,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;MAC/BD,KAAK,EAAEE,oBAAoB,GAAG,CAAC;IACjC,CAAC;IACD,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;MAC7BH,KAAK,EAAEI,kBAAkB,GAAG,CAAC;IAC/B,CAAC;IACD,MAAMC,eAAe,GAAGA,CAAA,KAAM;MAC5BL,KAAK,EAAEM,iBAAiB,GAAG,CAAC;IAC9B,CAAC;IACD,MAAMC,aAAa,GAAGA,CAAA,KAAM;MAC1BP,KAAK,EAAEQ,eAAe,GAAG,CAAC;IAC5B,CAAC;IAEDV,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACc,oBAAoB,EAC1CT,kBACF,CAAC;IACDH,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACe,kBAAkB,EACxCR,gBACF,CAAC;IACDL,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACgB,oBAAoB,EAC1CP,eACF,CAAC;IACDP,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACiB,kBAAkB,EACxCN,aACF,CAAC;IAED,OAAO,MAAM;MACXT,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACc,oBAAoB,EAC1CT,kBACF,CAAC;MACDH,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACe,kBAAkB,EACxCR,gBACF,CAAC;MACDL,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACgB,oBAAoB,EAC1CP,eACF,CAAC;MACDP,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACiB,kBAAkB,EACxCN,aACF,CAAC;IACH,CAAC;EACH,CAAC,EAAE,CAACT,QAAQ,EAAEE,KAAK,CAAC,CAAC;;EAErB;AACF;AACA;EACEL,SAAS,CAAC,MAAM;IACdoB,MAAM,CAACN,gBAAgB,CAAC,OAAO,EAAEV,KAAK,CAACiB,UAAU,CAAC;IAElD,OAAO,MAAM;MACXD,MAAM,CAACN,gBAAgB,CAAC,OAAO,EAAEV,KAAK,CAACiB,UAAU,CAAC;IACpD,CAAC;EACH,CAAC,EAAE,CAACjB,KAAK,CAACiB,UAAU,CAAC,CAAC;AACxB,CAAC","ignoreList":[]}
@@ -1,14 +0,0 @@
1
- import { WalletObserver } from "../../../../classes/WalletObserver.class.js";
2
- import { TWalletProviderHooks } from "../../../contexts/observer/index.js";
3
- import { useWalletObserverState } from "../useWalletObserverState.js";
4
- /**
5
- * Internal use only. This is run in every WalletObserverProvider
6
- * component on initial mount. It adds all relevant event listeners
7
- * to the WalletObserver class.
8
- *
9
- * @param observer
10
- * @param syncWallet
11
- * @param hooks
12
- */
13
- export declare const useProviderEventListeners: (observer: WalletObserver, state: ReturnType<typeof useWalletObserverState>, hooks?: TWalletProviderHooks) => void;
14
- //# sourceMappingURL=useProviderEventListeners.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useProviderEventListeners.d.ts","sourceRoot":"","sources":["../../../../../../src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,aAC1B,cAAc,SACjB,WAAW,6BAA6B,CAAC,UACxC,oBAAoB,SAsE7B,CAAC"}