@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.
- package/dist/cjs/classes/WalletObserver.class.js +13 -22
- package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
- package/dist/cjs/react-components/RenderWallet.js +18 -3
- package/dist/cjs/react-components/RenderWallet.js.map +1 -1
- package/dist/cjs/react-components/RenderWalletHandles.js +18 -3
- package/dist/cjs/react-components/RenderWalletHandles.js.map +1 -1
- package/dist/cjs/react-components/RenderWalletPeerConnect.js +14 -3
- package/dist/cjs/react-components/RenderWalletPeerConnect.js.map +1 -1
- package/dist/cjs/react-components/RenderWalletState.js +17 -3
- package/dist/cjs/react-components/RenderWalletState.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +7 -0
- package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +63 -49
- 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/useWalletHandles.js +111 -107
- package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletLoadingState.js +13 -5
- package/dist/cjs/react-components/hooks/useWalletLoadingState.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletObserver.js +3 -1
- package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletPeerConnect.js +13 -4
- package/dist/cjs/react-components/hooks/useWalletPeerConnect.js.map +1 -1
- package/dist/cjs/utils/getLibs.js +18 -35
- package/dist/cjs/utils/getLibs.js.map +1 -1
- package/dist/esm/classes/WalletObserver.class.js +9 -29
- package/dist/esm/classes/WalletObserver.class.js.map +1 -1
- package/dist/esm/react-components/RenderWallet.js +19 -4
- package/dist/esm/react-components/RenderWallet.js.map +1 -1
- package/dist/esm/react-components/RenderWalletHandles.js +21 -6
- package/dist/esm/react-components/RenderWalletHandles.js.map +1 -1
- package/dist/esm/react-components/RenderWalletPeerConnect.js +16 -5
- package/dist/esm/react-components/RenderWalletPeerConnect.js.map +1 -1
- package/dist/esm/react-components/RenderWalletState.js +19 -6
- package/dist/esm/react-components/RenderWalletState.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +8 -1
- package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +34 -29
- 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/useWalletHandles.js +46 -51
- package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletLoadingState.js +5 -5
- package/dist/esm/react-components/hooks/useWalletLoadingState.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletObserver.js +3 -1
- package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletPeerConnect.js +13 -3
- package/dist/esm/react-components/hooks/useWalletPeerConnect.js.map +1 -1
- package/dist/esm/utils/getLibs.js +12 -20
- package/dist/esm/utils/getLibs.js.map +1 -1
- package/dist/types/classes/WalletObserver.class.d.ts +2 -2
- package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
- package/dist/types/react-components/RenderWallet.d.ts +3 -1
- package/dist/types/react-components/RenderWallet.d.ts.map +1 -1
- package/dist/types/react-components/RenderWalletHandles.d.ts +3 -1
- package/dist/types/react-components/RenderWalletHandles.d.ts.map +1 -1
- package/dist/types/react-components/RenderWalletPeerConnect.d.ts +3 -1
- package/dist/types/react-components/RenderWalletPeerConnect.d.ts.map +1 -1
- package/dist/types/react-components/RenderWalletState.d.ts +3 -1
- package/dist/types/react-components/RenderWalletState.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +9 -8
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
- package/dist/types/react-components/contexts/observer/types.d.ts +9 -31
- package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
- package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
- package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
- package/dist/types/react-components/hooks/useWalletPeerConnect.d.ts +1 -0
- package/dist/types/react-components/hooks/useWalletPeerConnect.d.ts.map +1 -1
- package/dist/types/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/utils/getLibs.d.ts +2 -6
- package/dist/types/utils/getLibs.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/classes/WalletObserver.class.ts +11 -23
- package/src/react-components/RenderWallet.tsx +21 -3
- package/src/react-components/RenderWalletHandles.tsx +20 -2
- package/src/react-components/RenderWalletPeerConnect.tsx +16 -3
- package/src/react-components/RenderWalletState.tsx +24 -8
- package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +14 -1
- package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +70 -59
- package/src/react-components/contexts/observer/types.ts +13 -38
- package/src/react-components/hooks/useWalletHandles.ts +82 -76
- package/src/react-components/hooks/useWalletLoadingState.ts +5 -5
- package/src/react-components/hooks/useWalletObserver.ts +2 -0
- package/src/react-components/hooks/useWalletPeerConnect.tsx +18 -5
- package/src/utils/getLibs.ts +12 -11
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
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 [
|
|
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([
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
asset
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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.
|
|
89
|
+
console.error(e);
|
|
87
90
|
return walletHandles;
|
|
88
91
|
}
|
|
89
|
-
|
|
90
|
-
}, [state.balance]);
|
|
92
|
+
}, [state.balance, state.network]);
|
|
91
93
|
|
|
92
94
|
useEffect(() => {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
114
|
+
if (!handleMetadataChanged) {
|
|
115
|
+
return prevHandles;
|
|
116
|
+
}
|
|
113
117
|
|
|
114
|
-
|
|
118
|
+
return newHandles;
|
|
119
|
+
});
|
|
115
120
|
});
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
|
70
|
+
}, [state.observer]);
|
|
71
71
|
|
|
72
72
|
return {
|
|
73
73
|
connectingWallet: connecting,
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
2
|
-
import {
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
};
|
package/src/utils/getLibs.ts
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
export const getCardanoCore = async () => {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
11
|
-
|
|
11
|
+
return import("@cardano-sdk/util").then((module) => {
|
|
12
|
+
return module.typedHex;
|
|
13
|
+
});
|
|
12
14
|
};
|
|
13
15
|
|
|
14
16
|
export const getPeerConnect = async () => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
);
|
|
18
|
-
return { DAppPeerConnect };
|
|
17
|
+
return import("@fabianbormann/cardano-peer-connect").then((module) => {
|
|
18
|
+
return module.default.DAppPeerConnect;
|
|
19
|
+
});
|
|
19
20
|
};
|