@sundaeswap/wallet-lite 0.0.33 → 0.0.35

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 (86) hide show
  1. package/dist/cjs/classes/WalletObserver.class.js +13 -22
  2. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  3. package/dist/cjs/react-components/RenderWallet.js +18 -3
  4. package/dist/cjs/react-components/RenderWallet.js.map +1 -1
  5. package/dist/cjs/react-components/RenderWalletHandles.js +18 -3
  6. package/dist/cjs/react-components/RenderWalletHandles.js.map +1 -1
  7. package/dist/cjs/react-components/RenderWalletPeerConnect.js +14 -3
  8. package/dist/cjs/react-components/RenderWalletPeerConnect.js.map +1 -1
  9. package/dist/cjs/react-components/RenderWalletState.js +17 -3
  10. package/dist/cjs/react-components/RenderWalletState.js.map +1 -1
  11. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +7 -0
  12. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  13. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +63 -49
  14. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  15. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  16. package/dist/cjs/react-components/hooks/useWalletHandles.js +111 -107
  17. package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
  18. package/dist/cjs/react-components/hooks/useWalletLoadingState.js +13 -5
  19. package/dist/cjs/react-components/hooks/useWalletLoadingState.js.map +1 -1
  20. package/dist/cjs/react-components/hooks/useWalletObserver.js +3 -1
  21. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  22. package/dist/cjs/react-components/hooks/useWalletPeerConnect.js +13 -4
  23. package/dist/cjs/react-components/hooks/useWalletPeerConnect.js.map +1 -1
  24. package/dist/cjs/utils/getLibs.js +18 -35
  25. package/dist/cjs/utils/getLibs.js.map +1 -1
  26. package/dist/esm/classes/WalletObserver.class.js +9 -29
  27. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  28. package/dist/esm/react-components/RenderWallet.js +19 -4
  29. package/dist/esm/react-components/RenderWallet.js.map +1 -1
  30. package/dist/esm/react-components/RenderWalletHandles.js +21 -6
  31. package/dist/esm/react-components/RenderWalletHandles.js.map +1 -1
  32. package/dist/esm/react-components/RenderWalletPeerConnect.js +16 -5
  33. package/dist/esm/react-components/RenderWalletPeerConnect.js.map +1 -1
  34. package/dist/esm/react-components/RenderWalletState.js +19 -6
  35. package/dist/esm/react-components/RenderWalletState.js.map +1 -1
  36. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +8 -1
  37. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  38. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +34 -29
  39. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  40. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  41. package/dist/esm/react-components/hooks/useWalletHandles.js +46 -51
  42. package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
  43. package/dist/esm/react-components/hooks/useWalletLoadingState.js +5 -5
  44. package/dist/esm/react-components/hooks/useWalletLoadingState.js.map +1 -1
  45. package/dist/esm/react-components/hooks/useWalletObserver.js +3 -1
  46. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  47. package/dist/esm/react-components/hooks/useWalletPeerConnect.js +13 -3
  48. package/dist/esm/react-components/hooks/useWalletPeerConnect.js.map +1 -1
  49. package/dist/esm/utils/getLibs.js +12 -20
  50. package/dist/esm/utils/getLibs.js.map +1 -1
  51. package/dist/types/classes/WalletObserver.class.d.ts +2 -2
  52. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  53. package/dist/types/react-components/RenderWallet.d.ts +3 -1
  54. package/dist/types/react-components/RenderWallet.d.ts.map +1 -1
  55. package/dist/types/react-components/RenderWalletHandles.d.ts +3 -1
  56. package/dist/types/react-components/RenderWalletHandles.d.ts.map +1 -1
  57. package/dist/types/react-components/RenderWalletPeerConnect.d.ts +3 -1
  58. package/dist/types/react-components/RenderWalletPeerConnect.d.ts.map +1 -1
  59. package/dist/types/react-components/RenderWalletState.d.ts +3 -1
  60. package/dist/types/react-components/RenderWalletState.d.ts.map +1 -1
  61. package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
  62. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +9 -8
  63. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  64. package/dist/types/react-components/contexts/observer/types.d.ts +9 -31
  65. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  66. package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
  67. package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
  68. package/dist/types/react-components/hooks/useWalletPeerConnect.d.ts +1 -0
  69. package/dist/types/react-components/hooks/useWalletPeerConnect.d.ts.map +1 -1
  70. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  71. package/dist/types/utils/getLibs.d.ts +2 -6
  72. package/dist/types/utils/getLibs.d.ts.map +1 -1
  73. package/package.json +1 -1
  74. package/src/classes/WalletObserver.class.ts +11 -23
  75. package/src/react-components/RenderWallet.tsx +21 -3
  76. package/src/react-components/RenderWalletHandles.tsx +20 -2
  77. package/src/react-components/RenderWalletPeerConnect.tsx +16 -3
  78. package/src/react-components/RenderWalletState.tsx +24 -8
  79. package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +14 -1
  80. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +70 -59
  81. package/src/react-components/contexts/observer/types.ts +13 -38
  82. package/src/react-components/hooks/useWalletHandles.ts +82 -76
  83. package/src/react-components/hooks/useWalletLoadingState.ts +5 -5
  84. package/src/react-components/hooks/useWalletObserver.ts +2 -0
  85. package/src/react-components/hooks/useWalletPeerConnect.tsx +18 -5
  86. package/src/utils/getLibs.ts +12 -11
@@ -1,4 +1,10 @@
1
- import { useCallback, useEffect, useMemo, useState } from "react";
1
+ import {
2
+ useCallback,
3
+ useEffect,
4
+ useMemo,
5
+ useState,
6
+ useTransition,
7
+ } from "react";
2
8
 
3
9
  import { IHandle } from "@koralabs/adahandle-sdk";
4
10
  import { IAssetAmountMetadata } from "@sundaeswap/asset";
@@ -12,10 +18,11 @@ export const useWalletHandles = <
12
18
  AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
13
19
  >() => {
14
20
  const state = useWalletObserver<THandleMetadata<AssetMetadata>>();
15
- const [loadingHandles, setLoadingHandles] = useState(true);
21
+ const [isPending, startTransition] = useTransition();
16
22
  const [handles, setHandles] = useState<
17
23
  TAssetAmountMap<THandleMetadata<AssetMetadata>>
18
24
  >(new WalletAssetMap());
25
+
19
26
  const memoizedHandleDep = useMemo(
20
27
  () => [...state.balance.getHandles().keys()],
21
28
  [state.balance]
@@ -24,101 +31,100 @@ export const useWalletHandles = <
24
31
  const syncHandles = useCallback<
25
32
  () => Promise<TAssetAmountMap<THandleMetadata<AssetMetadata>>>
26
33
  >(async () => {
27
- // Make a copy of our wallet map.
28
34
  const walletHandles: TAssetAmountMap<THandleMetadata<AssetMetadata>> =
29
- new WalletAssetMap([...state.balance.getHandles()]);
35
+ new WalletAssetMap<THandleMetadata<AssetMetadata>>([
36
+ ...state.balance.getHandles(),
37
+ ]);
30
38
 
31
39
  if (walletHandles.size === 0) {
32
40
  return walletHandles;
33
41
  }
34
42
 
35
43
  try {
36
- await import("@koralabs/adahandle-sdk").then(
37
- async ({
38
- default: HandleClient,
39
- HandleClientContext,
40
- KoraLabsProvider,
41
- }) => {
42
- setLoadingHandles(true);
43
- const context =
44
- state.network === 1
45
- ? HandleClientContext.MAINNET
46
- : HandleClientContext.PREVIEW;
47
-
48
- // @ts-ignore Type isn't exported from default.
49
- const sdk = new HandleClient({
50
- context,
51
- provider: new KoraLabsProvider(context),
52
- });
53
-
54
- // Restore once SDK updated
55
- const walletHandlesWithDataArray = [...walletHandles.entries()];
56
- const walletHandleDataArray: IHandle[] = await sdk
57
- .provider()
58
- .getAllDataBatch(
59
- walletHandlesWithDataArray.map(([key]) => ({
60
- value: key.split(".")[1],
61
- }))
62
- );
63
-
64
- walletHandlesWithDataArray.forEach(([key, asset]) => {
65
- const matchingData = walletHandleDataArray.find(
66
- ({ hex }) => hex === key.split(".")[1]
67
- ) as IHandle;
68
-
69
- walletHandles.set(
70
- normalizeAssetIdWithDot(key),
71
- asset
72
- .withMetadata({
73
- ...matchingData,
74
- ...asset.metadata,
75
- assetId: normalizeAssetIdWithDot(asset.metadata.assetId),
76
- decimals: 0,
77
- })
78
- .withAmount(1n)
79
- );
80
- });
81
- }
82
- );
44
+ const {
45
+ default: HandleClient,
46
+ HandleClientContext,
47
+ KoraLabsProvider,
48
+ } = await import("@koralabs/adahandle-sdk");
49
+
50
+ const context =
51
+ state.network === 1
52
+ ? HandleClientContext.MAINNET
53
+ : HandleClientContext.PREVIEW;
54
+
55
+ const sdk = new HandleClient({
56
+ context,
57
+ provider: new KoraLabsProvider(context),
58
+ });
59
+
60
+ const walletHandlesWithDataArray = [...walletHandles.entries()];
61
+ const walletHandleDataArray: IHandle[] = await sdk
62
+ .provider()
63
+ .getAllDataBatch(
64
+ walletHandlesWithDataArray.map(([key]) => ({
65
+ value: key.split(".")[1],
66
+ }))
67
+ );
68
+
69
+ walletHandlesWithDataArray.forEach(([key, asset]) => {
70
+ const matchingData = walletHandleDataArray.find(
71
+ ({ hex }) => hex === key.split(".")[1]
72
+ ) as IHandle;
73
+
74
+ walletHandles.set(
75
+ normalizeAssetIdWithDot(key),
76
+ asset
77
+ .withMetadata({
78
+ ...matchingData,
79
+ ...asset.metadata,
80
+ assetId: normalizeAssetIdWithDot(asset.metadata.assetId),
81
+ decimals: 0,
82
+ })
83
+ .withAmount(1n)
84
+ );
85
+ });
83
86
 
84
87
  return walletHandles;
85
88
  } catch (e) {
86
- console.log(e);
89
+ console.error(e);
87
90
  return walletHandles;
88
91
  }
89
- // We only want to update the callback if the Handle keys change.
90
- }, [state.balance]);
92
+ }, [state.balance, state.network]);
91
93
 
92
94
  useEffect(() => {
93
- syncHandles().then((newHandles) => {
94
- setHandles((prevHandles) => {
95
- let handleMetadataChanged = false;
96
-
97
- if (newHandles.size !== prevHandles?.size) {
98
- handleMetadataChanged = true;
99
- } else {
100
- for (const [key, val] of newHandles) {
101
- if (
102
- !prevHandles.has(key) ||
103
- prevHandles.get(key)?.amount !== val?.amount
104
- ) {
105
- handleMetadataChanged = true;
95
+ const fetchHandles = async () => {
96
+ const newHandles = await syncHandles();
97
+ startTransition(() => {
98
+ setHandles((prevHandles) => {
99
+ let handleMetadataChanged = false;
100
+
101
+ if (newHandles.size !== prevHandles?.size) {
102
+ handleMetadataChanged = true;
103
+ } else {
104
+ for (const [key, val] of newHandles) {
105
+ if (
106
+ !prevHandles.has(key) ||
107
+ prevHandles.get(key)?.amount !== val?.amount
108
+ ) {
109
+ handleMetadataChanged = true;
110
+ }
106
111
  }
107
112
  }
108
- }
109
113
 
110
- if (!handleMetadataChanged) {
111
- return prevHandles;
112
- }
114
+ if (!handleMetadataChanged) {
115
+ return prevHandles;
116
+ }
113
117
 
114
- return newHandles;
118
+ return newHandles;
119
+ });
115
120
  });
116
- setLoadingHandles(() => false);
117
- });
118
- }, [memoizedHandleDep, syncHandles, setHandles, setLoadingHandles]);
121
+ };
122
+
123
+ fetchHandles();
124
+ }, [memoizedHandleDep, syncHandles]);
119
125
 
120
126
  return {
121
127
  handles,
122
- loadingHandles,
128
+ loadingHandles: isPending,
123
129
  };
124
130
  };
@@ -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
+ }, [state.observer]);
71
71
 
72
72
  return {
73
73
  connectingWallet: connecting,
@@ -32,6 +32,8 @@ export const useWalletObserver = <
32
32
  disconnect: state.disconnect,
33
33
  connectWallet: state.connectWallet,
34
34
  switching: state.switching,
35
+ isPending: state.isPending,
36
+ handles: state.handles,
35
37
  };
36
38
 
37
39
  return result;
@@ -1,5 +1,11 @@
1
1
  import { IAssetAmountMetadata } from "@sundaeswap/asset";
2
- import { MutableRefObject, useEffect, useRef, useState } from "react";
2
+ import {
3
+ MutableRefObject,
4
+ useEffect,
5
+ useRef,
6
+ useState,
7
+ useTransition,
8
+ } from "react";
3
9
 
4
10
  import { TGetPeerConnectInstance } from "../../@types/observer.js";
5
11
  import { useWalletObserver } from "./useWalletObserver.js";
@@ -8,6 +14,7 @@ export const useWalletPeerConnect = <
8
14
  AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata
9
15
  >() => {
10
16
  const state = useWalletObserver<AssetMetadata>();
17
+ const [isPending, startTransition] = useTransition();
11
18
  const [peerConnect, setPeerConnect] =
12
19
  useState<ReturnType<TGetPeerConnectInstance>>();
13
20
  const [error, setError] = useState<string>();
@@ -18,10 +25,15 @@ export const useWalletPeerConnect = <
18
25
  return;
19
26
  }
20
27
 
21
- state.observer
22
- .getCip45Instance()
23
- .then((res) => setPeerConnect(res))
24
- .catch((e) => setError((e as Error).message));
28
+ state.observer.getCip45Instance().then((res) => {
29
+ startTransition(() => {
30
+ try {
31
+ setPeerConnect(res);
32
+ } catch (e) {
33
+ setError((e as Error).message);
34
+ }
35
+ });
36
+ });
25
37
  }, [state.observer, setPeerConnect, setError]);
26
38
 
27
39
  useEffect(() => {
@@ -34,5 +46,6 @@ export const useWalletPeerConnect = <
34
46
  peerConnect,
35
47
  QRCodeElement: <div ref={qrCode as MutableRefObject<HTMLDivElement>} />,
36
48
  error,
49
+ isLoading: isPending,
37
50
  };
38
51
  };
@@ -1,19 +1,20 @@
1
1
  export const getCardanoCore = async () => {
2
- const { Serialization, Cardano } = await import("@cardano-sdk/core");
3
- return {
4
- Serialization,
5
- Cardano,
6
- };
2
+ return import("@cardano-sdk/core").then((module) => {
3
+ return {
4
+ Serialization: module.Serialization,
5
+ Cardano: module.Cardano,
6
+ };
7
+ });
7
8
  };
8
9
 
9
10
  export const getCardanoUtil = async () => {
10
- const { typedHex } = await import("@cardano-sdk/util");
11
- return { typedHex };
11
+ return import("@cardano-sdk/util").then((module) => {
12
+ return module.typedHex;
13
+ });
12
14
  };
13
15
 
14
16
  export const getPeerConnect = async () => {
15
- const { DAppPeerConnect } = await import(
16
- "@fabianbormann/cardano-peer-connect"
17
- );
18
- return { DAppPeerConnect };
17
+ return import("@fabianbormann/cardano-peer-connect").then((module) => {
18
+ return module.default.DAppPeerConnect;
19
+ });
19
20
  };