@sundaeswap/wallet-lite 0.0.25 → 0.0.26

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 (46) hide show
  1. package/dist/cjs/classes/WalletObserver.class.js +11 -0
  2. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  3. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +13 -20
  4. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  5. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +6 -8
  6. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +1 -1
  7. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +106 -71
  8. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  9. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  10. package/dist/cjs/react-components/hooks/useWalletHandles.js +67 -52
  11. package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
  12. package/dist/cjs/react-components/hooks/useWalletObserver.js +6 -3
  13. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  14. package/dist/esm/classes/WalletObserver.class.js +9 -0
  15. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  16. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +7 -11
  17. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  18. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +6 -8
  19. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +1 -1
  20. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +57 -40
  21. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  22. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  23. package/dist/esm/react-components/hooks/useWalletHandles.js +31 -24
  24. package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
  25. package/dist/esm/react-components/hooks/useWalletObserver.js +6 -3
  26. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  27. package/dist/types/classes/WalletObserver.class.d.ts +6 -0
  28. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  29. package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
  30. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.d.ts +2 -1
  31. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.d.ts.map +1 -1
  32. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +4 -0
  33. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  34. package/dist/types/react-components/contexts/observer/types.d.ts +3 -0
  35. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  36. package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
  37. package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
  38. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  39. package/package.json +1 -1
  40. package/src/classes/WalletObserver.class.ts +9 -0
  41. package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +6 -9
  42. package/src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts +7 -13
  43. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +90 -67
  44. package/src/react-components/contexts/observer/types.ts +3 -0
  45. package/src/react-components/hooks/useWalletHandles.ts +69 -62
  46. package/src/react-components/hooks/useWalletObserver.ts +7 -1
@@ -1,6 +1,5 @@
1
1
  import { AssetAmount } from "@sundaeswap/asset";
2
2
  import { useCallback, useState } from "react";
3
- import { unstable_batchedUpdates } from "react-dom";
4
3
  import { WalletAssetMap } from "../../../classes/WalletAssetMap.class.js";
5
4
  import { WalletBalanceMap } from "../../../classes/WalletBalanceMap.class.js";
6
5
  import { WalletObserver } from "../../../classes/WalletObserver.class.js";
@@ -23,55 +22,69 @@ export const useWalletObserverState = observer => {
23
22
  const [collateral, setCollateral] = useState();
24
23
  const [ready, setReady] = useState(false);
25
24
  const [isCip45, setIsCip45] = useState(false);
25
+ const [switching, setSwitching] = useState(false);
26
+ const disconnect = useCallback(() => {
27
+ // Reset observer state.
28
+ observer.disconnect();
29
+
30
+ // Reset state.
31
+ setAdaBalance(new AssetAmount(0n));
32
+ setBalance(new WalletBalanceMap(observer));
33
+ setHandleMetadata(new WalletAssetMap());
34
+ setUsedAddresses([]);
35
+ setUnusedAddresses([]);
36
+ setActiveWallet(undefined);
37
+ setNetwork(undefined);
38
+ setUtxos(undefined);
39
+ setCollateral(undefined);
40
+ setReady(false);
41
+ setIsCip45(false);
42
+ }, [observer]);
43
+ const connectWallet = useCallback(async wallet => {
44
+ if (observer.hasActiveConnection() && wallet !== observer.getActiveWallet()) {
45
+ setSwitching(true);
46
+ }
47
+ await observer.connectWallet(wallet);
48
+ setSwitching(false);
49
+ }, [observer, setSwitching]);
26
50
  const syncWallet = useCallback(async () => {
27
- if (observer.isSyncing()) {
51
+ if (observer.isSyncing() || !observer.hasActiveConnection()) {
28
52
  return;
29
53
  }
30
54
  const newWallet = observer.getActiveWallet();
31
55
  if (!newWallet) {
32
- unstable_batchedUpdates(() => {
33
- setAdaBalance(new AssetAmount(0n));
34
- setBalance(new WalletBalanceMap(observer));
35
- setUsedAddresses([]);
36
- setUnusedAddresses([]);
37
- setActiveWallet(undefined);
38
- setNetwork(undefined);
39
- setUtxos(undefined);
40
- setCollateral(undefined);
41
- });
56
+ disconnect();
42
57
  return;
43
58
  }
44
59
  const freshData = await observer.sync();
45
- unstable_batchedUpdates(() => {
46
- setActiveWallet(prevWallet => newWallet === prevWallet ? prevWallet : newWallet);
47
- const newAdaBalance = freshData.balanceMap.get(WalletObserver.ADA_ASSET_ID);
48
- if (newAdaBalance) {
49
- setAdaBalance(prevBalance => prevBalance.amount === newAdaBalance.amount ? prevBalance : newAdaBalance);
60
+ setActiveWallet(prevWallet => newWallet === prevWallet ? prevWallet : newWallet);
61
+ const newAdaBalance = freshData.balanceMap.get(WalletObserver.ADA_ASSET_ID);
62
+ if (newAdaBalance) {
63
+ setAdaBalance(prevBalance => prevBalance.amount === newAdaBalance.amount ? prevBalance : newAdaBalance);
64
+ }
65
+ setBalance(prevBalance => areAssetMapsEqual(prevBalance, freshData.balanceMap) ? prevBalance : freshData.balanceMap);
66
+ setUsedAddresses(prevValue => JSON.stringify(prevValue) === JSON.stringify(freshData.usedAddresses) ? prevValue : freshData.usedAddresses);
67
+ setUnusedAddresses(prevValue => JSON.stringify(prevValue) === JSON.stringify(freshData.unusedAddresses) ? prevValue : freshData.unusedAddresses);
68
+ setNetwork(prevValue => prevValue === freshData.network ? prevValue : freshData.network);
69
+ setUtxos(prevValue => {
70
+ const prevValueRep = prevValue?.map(v => v.toCbor());
71
+ const newValueRep = freshData.utxos?.map(v => v.toCbor());
72
+ if (prevValueRep !== newValueRep) {
73
+ return freshData.utxos;
50
74
  }
51
- setBalance(prevBalance => areAssetMapsEqual(prevBalance, freshData.balanceMap) ? prevBalance : freshData.balanceMap);
52
- setUsedAddresses(prevValue => JSON.stringify(prevValue) === JSON.stringify(freshData.usedAddresses) ? prevValue : freshData.usedAddresses);
53
- setUnusedAddresses(prevValue => JSON.stringify(prevValue) === JSON.stringify(freshData.unusedAddresses) ? prevValue : freshData.unusedAddresses);
54
- setNetwork(prevValue => prevValue === freshData.network ? prevValue : freshData.network);
55
- setUtxos(prevValue => {
56
- const prevValueRep = prevValue?.map(v => v.toCbor());
57
- const newValueRep = freshData.utxos?.map(v => v.toCbor());
58
- if (prevValueRep !== newValueRep) {
59
- return freshData.utxos;
60
- }
61
- return prevValue;
62
- });
63
- setCollateral(prevValue => {
64
- const prevValueRep = prevValue?.map(v => v.toCbor());
65
- const newValueRep = freshData.utxos?.map(v => v.toCbor());
66
- if (prevValueRep !== newValueRep) {
67
- return freshData.utxos;
68
- }
69
- return prevValue;
70
- });
71
- setReady(true);
72
- setIsCip45(newWallet.includes("p2p"));
75
+ return prevValue;
73
76
  });
74
- }, [observer]);
77
+ setCollateral(prevValue => {
78
+ const prevValueRep = prevValue?.map(v => v.toCbor());
79
+ const newValueRep = freshData.utxos?.map(v => v.toCbor());
80
+ if (prevValueRep !== newValueRep) {
81
+ return freshData.utxos;
82
+ }
83
+ return prevValue;
84
+ });
85
+ setReady(true);
86
+ setIsCip45(newWallet.includes("p2p"));
87
+ }, [observer, disconnect]);
75
88
  return {
76
89
  activeWallet,
77
90
  setActiveWallet,
@@ -94,6 +107,10 @@ export const useWalletObserverState = observer => {
94
107
  collateral,
95
108
  setCollateral,
96
109
  syncWallet,
110
+ disconnect,
111
+ connectWallet,
112
+ switching,
113
+ setSwitching,
97
114
  ready,
98
115
  setReady
99
116
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletObserverState.js","names":["AssetAmount","useCallback","useState","unstable_batchedUpdates","WalletAssetMap","WalletBalanceMap","WalletObserver","areAssetMapsEqual","useWalletObserverState","observer","activeWallet","setActiveWallet","adaBalance","setAdaBalance","handleMetadata","setHandleMetadata","balance","setBalance","network","setNetwork","usedAddresses","setUsedAddresses","unusedAddresses","setUnusedAddresses","utxos","setUtxos","collateral","setCollateral","ready","setReady","isCip45","setIsCip45","syncWallet","isSyncing","newWallet","getActiveWallet","undefined","freshData","sync","prevWallet","newAdaBalance","balanceMap","get","ADA_ASSET_ID","prevBalance","amount","prevValue","JSON","stringify","prevValueRep","map","v","toCbor","newValueRep","includes","handles","setHandles"],"sources":["../../../../../src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport { AssetAmount } from \"@sundaeswap/asset\";\nimport { useCallback, useState } from \"react\";\nimport { unstable_batchedUpdates } from \"react-dom\";\n\nimport {\n TAssetAmountMap,\n TSupportedWalletExtensions,\n} from \"../../../@types/observer.js\";\nimport { WalletAssetMap } from \"../../../classes/WalletAssetMap.class.js\";\nimport { WalletBalanceMap } from \"../../../classes/WalletBalanceMap.class.js\";\nimport { WalletObserver } from \"../../../classes/WalletObserver.class.js\";\nimport { areAssetMapsEqual } from \"../../../utils/comparisons.js\";\nimport { THandleMetadata } from \"../../contexts/observer/index.js\";\n\n/**\n * Internal use only. The main action that sync WalletObserver api responses with\n * the React context of the WalletObserverProvider.\n *\n * @param {WalletObserver} observer\n */\nexport const useWalletObserverState = (observer: WalletObserver) => {\n const [activeWallet, setActiveWallet] =\n useState<TSupportedWalletExtensions>();\n const [adaBalance, setAdaBalance] = useState<AssetAmount>(\n new AssetAmount(0n)\n );\n const [handleMetadata, setHandleMetadata] = useState<\n TAssetAmountMap<THandleMetadata>\n >(new WalletAssetMap());\n const [balance, setBalance] = useState<WalletBalanceMap>(\n new WalletBalanceMap(observer)\n );\n const [network, setNetwork] = useState<number | undefined>();\n const [usedAddresses, setUsedAddresses] = useState<string[]>([]);\n const [unusedAddresses, setUnusedAddresses] = useState<string[]>([]);\n const [utxos, setUtxos] = useState<TransactionUnspentOutput[]>();\n const [collateral, setCollateral] = useState<TransactionUnspentOutput[]>();\n const [ready, setReady] = useState(false);\n const [isCip45, setIsCip45] = useState(false);\n\n const syncWallet = useCallback(async () => {\n if (observer.isSyncing()) {\n return;\n }\n\n const newWallet = observer.getActiveWallet();\n\n if (!newWallet) {\n unstable_batchedUpdates(() => {\n setAdaBalance(new AssetAmount(0n));\n setBalance(new WalletBalanceMap(observer));\n setUsedAddresses([]);\n setUnusedAddresses([]);\n setActiveWallet(undefined);\n setNetwork(undefined);\n setUtxos(undefined);\n setCollateral(undefined);\n });\n return;\n }\n\n const freshData = await observer.sync();\n\n unstable_batchedUpdates(() => {\n setActiveWallet((prevWallet) =>\n newWallet === prevWallet ? prevWallet : newWallet\n );\n\n const newAdaBalance = freshData.balanceMap.get(\n WalletObserver.ADA_ASSET_ID\n );\n if (newAdaBalance) {\n setAdaBalance((prevBalance) =>\n prevBalance.amount === newAdaBalance.amount\n ? prevBalance\n : newAdaBalance\n );\n }\n\n setBalance((prevBalance) =>\n areAssetMapsEqual(prevBalance, freshData.balanceMap)\n ? prevBalance\n : freshData.balanceMap\n );\n\n setUsedAddresses((prevValue) =>\n JSON.stringify(prevValue) === JSON.stringify(freshData.usedAddresses)\n ? prevValue\n : freshData.usedAddresses\n );\n\n setUnusedAddresses((prevValue) =>\n JSON.stringify(prevValue) === JSON.stringify(freshData.unusedAddresses)\n ? prevValue\n : freshData.unusedAddresses\n );\n\n setNetwork((prevValue) =>\n prevValue === freshData.network ? prevValue : freshData.network\n );\n\n setUtxos((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = freshData.utxos?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return freshData.utxos;\n }\n\n return prevValue;\n });\n\n setCollateral((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = freshData.utxos?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return freshData.utxos;\n }\n\n return prevValue;\n });\n\n setReady(true);\n setIsCip45(newWallet.includes(\"p2p\"));\n });\n }, [observer]);\n\n return {\n activeWallet,\n setActiveWallet,\n adaBalance,\n setAdaBalance,\n balance,\n setBalance,\n handles: handleMetadata,\n setHandles: setHandleMetadata,\n isCip45,\n setIsCip45,\n network,\n setNetwork,\n unusedAddresses,\n setUnusedAddresses,\n usedAddresses,\n setUsedAddresses,\n utxos,\n setUtxos,\n collateral,\n setCollateral,\n syncWallet,\n ready,\n setReady,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useWalletObserverState.js","names":["AssetAmount","useCallback","useState","WalletAssetMap","WalletBalanceMap","WalletObserver","areAssetMapsEqual","useWalletObserverState","observer","activeWallet","setActiveWallet","adaBalance","setAdaBalance","handleMetadata","setHandleMetadata","balance","setBalance","network","setNetwork","usedAddresses","setUsedAddresses","unusedAddresses","setUnusedAddresses","utxos","setUtxos","collateral","setCollateral","ready","setReady","isCip45","setIsCip45","switching","setSwitching","disconnect","undefined","connectWallet","wallet","hasActiveConnection","getActiveWallet","syncWallet","isSyncing","newWallet","freshData","sync","prevWallet","newAdaBalance","balanceMap","get","ADA_ASSET_ID","prevBalance","amount","prevValue","JSON","stringify","prevValueRep","map","v","toCbor","newValueRep","includes","handles","setHandles"],"sources":["../../../../../src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport { AssetAmount } from \"@sundaeswap/asset\";\nimport { useCallback, useState } from \"react\";\n\nimport {\n TAssetAmountMap,\n TSupportedWalletExtensions,\n} from \"../../../@types/observer.js\";\nimport { WalletAssetMap } from \"../../../classes/WalletAssetMap.class.js\";\nimport { WalletBalanceMap } from \"../../../classes/WalletBalanceMap.class.js\";\nimport { WalletObserver } from \"../../../classes/WalletObserver.class.js\";\nimport { areAssetMapsEqual } from \"../../../utils/comparisons.js\";\nimport { THandleMetadata } from \"../../contexts/observer/index.js\";\n\n/**\n * Internal use only. The main action that sync WalletObserver api responses with\n * the React context of the WalletObserverProvider.\n *\n * @param {WalletObserver} observer\n */\nexport const useWalletObserverState = (observer: WalletObserver) => {\n const [activeWallet, setActiveWallet] =\n useState<TSupportedWalletExtensions>();\n const [adaBalance, setAdaBalance] = useState<AssetAmount>(\n new AssetAmount(0n)\n );\n const [handleMetadata, setHandleMetadata] = useState<\n TAssetAmountMap<THandleMetadata>\n >(new WalletAssetMap());\n const [balance, setBalance] = useState<WalletBalanceMap>(\n new WalletBalanceMap(observer)\n );\n const [network, setNetwork] = useState<number | undefined>();\n const [usedAddresses, setUsedAddresses] = useState<string[]>([]);\n const [unusedAddresses, setUnusedAddresses] = useState<string[]>([]);\n const [utxos, setUtxos] = useState<TransactionUnspentOutput[]>();\n const [collateral, setCollateral] = useState<TransactionUnspentOutput[]>();\n const [ready, setReady] = useState(false);\n const [isCip45, setIsCip45] = useState(false);\n const [switching, setSwitching] = useState(false);\n\n const disconnect = useCallback(() => {\n // Reset observer state.\n observer.disconnect();\n\n // Reset state.\n setAdaBalance(new AssetAmount(0n));\n setBalance(new WalletBalanceMap(observer));\n setHandleMetadata(new WalletAssetMap());\n setUsedAddresses([]);\n setUnusedAddresses([]);\n setActiveWallet(undefined);\n setNetwork(undefined);\n setUtxos(undefined);\n setCollateral(undefined);\n setReady(false);\n setIsCip45(false);\n }, [observer]);\n\n const connectWallet = useCallback(\n async (wallet: TSupportedWalletExtensions) => {\n if (\n observer.hasActiveConnection() &&\n wallet !== observer.getActiveWallet()\n ) {\n setSwitching(true);\n }\n\n await observer.connectWallet(wallet);\n setSwitching(false);\n },\n [observer, setSwitching]\n );\n\n const syncWallet = useCallback(async () => {\n if (observer.isSyncing() || !observer.hasActiveConnection()) {\n return;\n }\n\n const newWallet = observer.getActiveWallet();\n if (!newWallet) {\n disconnect();\n return;\n }\n\n const freshData = await observer.sync();\n\n setActiveWallet((prevWallet) =>\n newWallet === prevWallet ? prevWallet : newWallet\n );\n\n const newAdaBalance = freshData.balanceMap.get(WalletObserver.ADA_ASSET_ID);\n if (newAdaBalance) {\n setAdaBalance((prevBalance) =>\n prevBalance.amount === newAdaBalance.amount\n ? prevBalance\n : newAdaBalance\n );\n }\n\n setBalance((prevBalance) =>\n areAssetMapsEqual(prevBalance, freshData.balanceMap)\n ? prevBalance\n : freshData.balanceMap\n );\n\n setUsedAddresses((prevValue) =>\n JSON.stringify(prevValue) === JSON.stringify(freshData.usedAddresses)\n ? prevValue\n : freshData.usedAddresses\n );\n\n setUnusedAddresses((prevValue) =>\n JSON.stringify(prevValue) === JSON.stringify(freshData.unusedAddresses)\n ? prevValue\n : freshData.unusedAddresses\n );\n\n setNetwork((prevValue) =>\n prevValue === freshData.network ? prevValue : freshData.network\n );\n\n setUtxos((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = freshData.utxos?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return freshData.utxos;\n }\n\n return prevValue;\n });\n\n setCollateral((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = freshData.utxos?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return freshData.utxos;\n }\n\n return prevValue;\n });\n\n setReady(true);\n setIsCip45(newWallet.includes(\"p2p\"));\n }, [observer, disconnect]);\n\n return {\n activeWallet,\n setActiveWallet,\n adaBalance,\n setAdaBalance,\n balance,\n setBalance,\n handles: handleMetadata,\n setHandles: setHandleMetadata,\n isCip45,\n setIsCip45,\n network,\n setNetwork,\n unusedAddresses,\n setUnusedAddresses,\n usedAddresses,\n setUsedAddresses,\n utxos,\n setUtxos,\n collateral,\n setCollateral,\n syncWallet,\n disconnect,\n connectWallet,\n switching,\n setSwitching,\n ready,\n setReady,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/react-components/contexts/observer/types.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { IHandle } from \"@koralabs/adahandle-sdk\";\nimport type { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport type { Dispatch, MutableRefObject, SetStateAction } from \"react\";\n\nimport type {\n TSupportedWalletExtensions,\n TWalletObserverOptions,\n} from \"../../../@types/observer.js\";\nimport { WalletBalanceMap } from \"../../../classes/WalletBalanceMap.class.js\";\nimport type { WalletObserver } from \"../../../classes/WalletObserver.class.js\";\n\n/**\n * Available hooks to apply at various events.\n */\nexport type TWalletProviderHooks = {\n onSyncWalletStart?: () => void;\n onSyncWalletEnd?: () => void;\n onConnectWalletStart?: () => void;\n onConnectWalletEnd?: () => void;\n};\n\n/**\n * The resolved internal props of the WalletObserverProvider.\n */\nexport interface IWalletObserverProviderState<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n observerOptions: TWalletObserverOptions<AssetMetadata>;\n hooks: TWalletProviderHooks;\n refreshInterval: number;\n}\n\n/**\n * The main WalletObserverProvider props.\n */\nexport interface IWalletObserverProviderProps<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n options?: Partial<IWalletObserverProviderState<AssetMetadata>>;\n}\n\n/**\n * The WalletObserverProvider's internal state.\n */\nexport interface IWalletObserverState<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n observerRef: MutableRefObject<WalletObserver<AssetMetadata>>;\n refreshInterval: number | false;\n state: {\n ready: boolean;\n isCip45: boolean;\n setIsCip45: Dispatch<SetStateAction<boolean>>;\n setReady: Dispatch<SetStateAction<boolean>>;\n activeWallet?: TSupportedWalletExtensions;\n setActiveWallet: Dispatch<\n SetStateAction<TSupportedWalletExtensions | undefined>\n >;\n adaBalance: AssetAmount<AssetMetadata>;\n balance: WalletBalanceMap<AssetMetadata>;\n utxos?: TransactionUnspentOutput[];\n setUtxos: Dispatch<SetStateAction<TransactionUnspentOutput[] | undefined>>;\n collateral?: TransactionUnspentOutput[];\n setCollateral: Dispatch<\n SetStateAction<TransactionUnspentOutput[] | undefined>\n >;\n setBalance: Dispatch<SetStateAction<WalletBalanceMap<AssetMetadata>>>;\n observer: WalletObserver;\n mainAddress?: string;\n stakeAddress?: string;\n network?: number;\n setNetwork: Dispatch<SetStateAction<number | undefined>>;\n unusedAddresses: string[];\n setUnusedAddresses: Dispatch<SetStateAction<string[]>>;\n usedAddresses: string[];\n setUsedAddresses: Dispatch<SetStateAction<string[]>>;\n syncWallet: () => Promise<void>;\n };\n}\n\n/**\n * A generic to extend the default IHandle type that comes\n * back from the Kora Lab's API, and merged with the metadata\n * returned from the metadataResolver.\n */\nexport type THandleMetadata<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> = AssetMetadata & IHandle;\n\n/**\n * The exposed state of the WalletObserverProvider.\n */\nexport type TUseWalletObserverState<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> = Omit<\n IWalletObserverState<AssetMetadata>[\"state\"],\n | \"setActiveWallet\"\n | \"setBalance\"\n | \"setNetwork\"\n | \"setUnusedAddresses\"\n | \"setUsedAddresses\"\n | \"setReady\"\n | \"setIsCip45\"\n | \"setUtxos\"\n | \"setCollateral\"\n>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/react-components/contexts/observer/types.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { IHandle } from \"@koralabs/adahandle-sdk\";\nimport type { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport type { Dispatch, MutableRefObject, SetStateAction } from \"react\";\n\nimport type {\n TSupportedWalletExtensions,\n TWalletObserverOptions,\n} from \"../../../@types/observer.js\";\nimport { WalletBalanceMap } from \"../../../classes/WalletBalanceMap.class.js\";\nimport type { WalletObserver } from \"../../../classes/WalletObserver.class.js\";\n\n/**\n * Available hooks to apply at various events.\n */\nexport type TWalletProviderHooks = {\n onSyncWalletStart?: () => void;\n onSyncWalletEnd?: () => void;\n onConnectWalletStart?: () => void;\n onConnectWalletEnd?: () => void;\n};\n\n/**\n * The resolved internal props of the WalletObserverProvider.\n */\nexport interface IWalletObserverProviderState<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n observerOptions: TWalletObserverOptions<AssetMetadata>;\n hooks: TWalletProviderHooks;\n refreshInterval: number;\n}\n\n/**\n * The main WalletObserverProvider props.\n */\nexport interface IWalletObserverProviderProps<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n options?: Partial<IWalletObserverProviderState<AssetMetadata>>;\n}\n\n/**\n * The WalletObserverProvider's internal state.\n */\nexport interface IWalletObserverState<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n observerRef: MutableRefObject<WalletObserver<AssetMetadata>>;\n refreshInterval: number | false;\n state: {\n ready: boolean;\n isCip45: boolean;\n setIsCip45: Dispatch<SetStateAction<boolean>>;\n setReady: Dispatch<SetStateAction<boolean>>;\n activeWallet?: TSupportedWalletExtensions;\n setActiveWallet: Dispatch<\n SetStateAction<TSupportedWalletExtensions | undefined>\n >;\n adaBalance: AssetAmount<AssetMetadata>;\n balance: WalletBalanceMap<AssetMetadata>;\n utxos?: TransactionUnspentOutput[];\n setUtxos: Dispatch<SetStateAction<TransactionUnspentOutput[] | undefined>>;\n collateral?: TransactionUnspentOutput[];\n setCollateral: Dispatch<\n SetStateAction<TransactionUnspentOutput[] | undefined>\n >;\n setBalance: Dispatch<SetStateAction<WalletBalanceMap<AssetMetadata>>>;\n observer: WalletObserver;\n mainAddress?: string;\n stakeAddress?: string;\n network?: number;\n setNetwork: Dispatch<SetStateAction<number | undefined>>;\n unusedAddresses: string[];\n setUnusedAddresses: Dispatch<SetStateAction<string[]>>;\n usedAddresses: string[];\n setUsedAddresses: Dispatch<SetStateAction<string[]>>;\n switching: boolean;\n syncWallet: () => Promise<void>;\n disconnect: () => void;\n connectWallet: (wallet: TSupportedWalletExtensions) => Promise<void>;\n };\n}\n\n/**\n * A generic to extend the default IHandle type that comes\n * back from the Kora Lab's API, and merged with the metadata\n * returned from the metadataResolver.\n */\nexport type THandleMetadata<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> = AssetMetadata & IHandle;\n\n/**\n * The exposed state of the WalletObserverProvider.\n */\nexport type TUseWalletObserverState<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> = Omit<\n IWalletObserverState<AssetMetadata>[\"state\"],\n | \"setActiveWallet\"\n | \"setBalance\"\n | \"setNetwork\"\n | \"setUnusedAddresses\"\n | \"setUsedAddresses\"\n | \"setReady\"\n | \"setIsCip45\"\n | \"setUtxos\"\n | \"setCollateral\"\n>;\n"],"mappings":"","ignoreList":[]}
@@ -14,30 +14,36 @@ export const useWalletHandles = () => {
14
14
  return walletHandles;
15
15
  }
16
16
  try {
17
- const HandleClient = await import("@koralabs/adahandle-sdk");
18
- const context = state.network === 1 ? HandleClient.HandleClientContext.MAINNET : HandleClient.HandleClientContext.PREVIEW;
17
+ await import("@koralabs/adahandle-sdk").then(async ({
18
+ default: HandleClient,
19
+ HandleClientContext,
20
+ KoraLabsProvider
21
+ }) => {
22
+ setLoadingHandles(true);
23
+ const context = state.network === 1 ? HandleClientContext.MAINNET : HandleClientContext.PREVIEW;
19
24
 
20
- // @ts-ignore Type isn't exported from default.
21
- const sdk = new HandleClient({
22
- context,
23
- provider: new HandleClient.KoraLabsProvider(context)
24
- });
25
+ // @ts-ignore Type isn't exported from default.
26
+ const sdk = new HandleClient({
27
+ context,
28
+ provider: new KoraLabsProvider(context)
29
+ });
25
30
 
26
- // Restore once SDK updated
27
- const walletHandlesWithDataArray = [...walletHandles.entries()];
28
- const walletHandleDataArray = await sdk.provider().getAllDataBatch(walletHandlesWithDataArray.map(([key]) => ({
29
- value: key.split(".")[1]
30
- })));
31
- walletHandlesWithDataArray.forEach(([key, asset]) => {
32
- const matchingData = walletHandleDataArray.find(({
33
- hex
34
- }) => hex === key.split(".")[1]);
35
- walletHandles.set(normalizeAssetIdWithDot(key), asset.withMetadata({
36
- ...matchingData,
37
- ...asset.metadata,
38
- assetId: normalizeAssetIdWithDot(asset.metadata.assetId),
39
- decimals: 0
40
- }).withAmount(1n));
31
+ // Restore once SDK updated
32
+ const walletHandlesWithDataArray = [...walletHandles.entries()];
33
+ const walletHandleDataArray = await sdk.provider().getAllDataBatch(walletHandlesWithDataArray.map(([key]) => ({
34
+ value: key.split(".")[1]
35
+ })));
36
+ walletHandlesWithDataArray.forEach(([key, asset]) => {
37
+ const matchingData = walletHandleDataArray.find(({
38
+ hex
39
+ }) => hex === key.split(".")[1]);
40
+ walletHandles.set(normalizeAssetIdWithDot(key), asset.withMetadata({
41
+ ...matchingData,
42
+ ...asset.metadata,
43
+ assetId: normalizeAssetIdWithDot(asset.metadata.assetId),
44
+ decimals: 0
45
+ }).withAmount(1n));
46
+ });
41
47
  });
42
48
  return walletHandles;
43
49
  } catch (e) {
@@ -45,7 +51,7 @@ export const useWalletHandles = () => {
45
51
  return walletHandles;
46
52
  }
47
53
  // We only want to update the callback if the Handle keys change.
48
- }, [state.balance, setLoadingHandles]);
54
+ }, [state.balance]);
49
55
  useEffect(() => {
50
56
  syncHandles().then(newHandles => {
51
57
  setHandles(prevHandles => {
@@ -64,7 +70,8 @@ export const useWalletHandles = () => {
64
70
  }
65
71
  return newHandles;
66
72
  });
67
- }).then(() => setLoadingHandles(prevValue => !prevValue));
73
+ setLoadingHandles(() => false);
74
+ });
68
75
  }, [memoizedHandleDep, syncHandles, setHandles, setLoadingHandles]);
69
76
  const data = useMemo(() => ({
70
77
  handles,
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletHandles.js","names":["useCallback","useEffect","useMemo","useState","WalletAssetMap","normalizeAssetIdWithDot","useWalletObserver","useWalletHandles","state","loadingHandles","setLoadingHandles","handles","setHandles","memoizedHandleDep","balance","getHandles","keys","syncHandles","walletHandles","size","HandleClient","context","network","HandleClientContext","MAINNET","PREVIEW","sdk","provider","KoraLabsProvider","walletHandlesWithDataArray","entries","walletHandleDataArray","getAllDataBatch","map","key","value","split","forEach","asset","matchingData","find","hex","set","withMetadata","metadata","assetId","decimals","withAmount","e","console","log","then","newHandles","prevHandles","handleMetadataChanged","val","has","get","amount","prevValue","data"],"sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { IHandle } from \"@koralabs/adahandle-sdk\";\nimport { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { TAssetAmountMap } from \"../../@types/observer.js\";\nimport { WalletAssetMap } from \"../../classes/WalletAssetMap.class.js\";\nimport { normalizeAssetIdWithDot } from \"../../utils/assets.js\";\nimport { THandleMetadata } from \"../contexts/observer/types.js\";\nimport { useWalletObserver } from \"./useWalletObserver.js\";\n\nexport const useWalletHandles = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>() => {\n const state = useWalletObserver<THandleMetadata<AssetMetadata>>();\n const [loadingHandles, setLoadingHandles] = useState(true);\n const [handles, setHandles] = useState<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(new WalletAssetMap());\n const memoizedHandleDep = useMemo(\n () => [...state.balance.getHandles().keys()],\n [state.balance]\n );\n\n const syncHandles = useCallback<\n () => Promise<TAssetAmountMap<THandleMetadata<AssetMetadata>>>\n >(async () => {\n // Make a copy of our wallet map.\n const walletHandles: TAssetAmountMap<THandleMetadata<AssetMetadata>> =\n new WalletAssetMap([...state.balance.getHandles()]);\n\n if (walletHandles.size === 0) {\n return walletHandles;\n }\n\n try {\n const HandleClient = await import(\"@koralabs/adahandle-sdk\");\n const context =\n state.network === 1\n ? HandleClient.HandleClientContext.MAINNET\n : HandleClient.HandleClientContext.PREVIEW;\n\n // @ts-ignore Type isn't exported from default.\n const sdk = new HandleClient({\n context,\n provider: new HandleClient.KoraLabsProvider(context),\n });\n\n // Restore once SDK updated\n const walletHandlesWithDataArray = [...walletHandles.entries()];\n const walletHandleDataArray: IHandle[] = await sdk\n .provider()\n .getAllDataBatch(\n walletHandlesWithDataArray.map(([key]) => ({\n value: key.split(\".\")[1],\n }))\n );\n\n walletHandlesWithDataArray.forEach(([key, asset]) => {\n const matchingData = walletHandleDataArray.find(\n ({ hex }) => hex === key.split(\".\")[1]\n ) as IHandle;\n\n walletHandles.set(\n normalizeAssetIdWithDot(key),\n asset\n .withMetadata({\n ...matchingData,\n ...asset.metadata,\n assetId: normalizeAssetIdWithDot(asset.metadata.assetId),\n decimals: 0,\n })\n .withAmount(1n)\n );\n });\n\n return walletHandles;\n } catch (e) {\n console.log(e);\n return walletHandles;\n }\n // We only want to update the callback if the Handle keys change.\n }, [state.balance, setLoadingHandles]);\n\n useEffect(() => {\n syncHandles()\n .then((newHandles) => {\n setHandles((prevHandles) => {\n let handleMetadataChanged = false;\n\n if (newHandles.size !== prevHandles?.size) {\n handleMetadataChanged = true;\n } else {\n for (const [key, val] of newHandles) {\n if (\n !prevHandles.has(key) ||\n prevHandles.get(key)?.amount !== val?.amount\n ) {\n handleMetadataChanged = true;\n }\n }\n }\n\n if (!handleMetadataChanged) {\n return prevHandles;\n }\n\n return newHandles;\n });\n })\n .then(() => setLoadingHandles((prevValue) => !prevValue));\n }, [memoizedHandleDep, syncHandles, setHandles, setLoadingHandles]);\n\n const data = useMemo(\n () => ({\n handles,\n loadingHandles,\n }),\n [handles, loadingHandles]\n );\n\n return data;\n};\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAKjE,SAASC,cAAc,QAAQ,uCAAuC;AACtE,SAASC,uBAAuB,QAAQ,uBAAuB;AAE/D,SAASC,iBAAiB,QAAQ,wBAAwB;AAE1D,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAEzB;EACL,MAAMC,KAAK,GAAGF,iBAAiB,CAAiC,CAAC;EACjE,MAAM,CAACG,cAAc,EAAEC,iBAAiB,CAAC,GAAGP,QAAQ,CAAC,IAAI,CAAC;EAC1D,MAAM,CAACQ,OAAO,EAAEC,UAAU,CAAC,GAAGT,QAAQ,CAEpC,IAAIC,cAAc,CAAC,CAAC,CAAC;EACvB,MAAMS,iBAAiB,GAAGX,OAAO,CAC/B,MAAM,CAAC,GAAGM,KAAK,CAACM,OAAO,CAACC,UAAU,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,EAC5C,CAACR,KAAK,CAACM,OAAO,CAChB,CAAC;EAED,MAAMG,WAAW,GAAGjB,WAAW,CAE7B,YAAY;IACZ;IACA,MAAMkB,aAA8D,GAClE,IAAId,cAAc,CAAC,CAAC,GAAGI,KAAK,CAACM,OAAO,CAACC,UAAU,CAAC,CAAC,CAAC,CAAC;IAErD,IAAIG,aAAa,CAACC,IAAI,KAAK,CAAC,EAAE;MAC5B,OAAOD,aAAa;IACtB;IAEA,IAAI;MACF,MAAME,YAAY,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC;MAC5D,MAAMC,OAAO,GACXb,KAAK,CAACc,OAAO,KAAK,CAAC,GACfF,YAAY,CAACG,mBAAmB,CAACC,OAAO,GACxCJ,YAAY,CAACG,mBAAmB,CAACE,OAAO;;MAE9C;MACA,MAAMC,GAAG,GAAG,IAAIN,YAAY,CAAC;QAC3BC,OAAO;QACPM,QAAQ,EAAE,IAAIP,YAAY,CAACQ,gBAAgB,CAACP,OAAO;MACrD,CAAC,CAAC;;MAEF;MACA,MAAMQ,0BAA0B,GAAG,CAAC,GAAGX,aAAa,CAACY,OAAO,CAAC,CAAC,CAAC;MAC/D,MAAMC,qBAAgC,GAAG,MAAML,GAAG,CAC/CC,QAAQ,CAAC,CAAC,CACVK,eAAe,CACdH,0BAA0B,CAACI,GAAG,CAAC,CAAC,CAACC,GAAG,CAAC,MAAM;QACzCC,KAAK,EAAED,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;MACzB,CAAC,CAAC,CACJ,CAAC;MAEHP,0BAA0B,CAACQ,OAAO,CAAC,CAAC,CAACH,GAAG,EAAEI,KAAK,CAAC,KAAK;QACnD,MAAMC,YAAY,GAAGR,qBAAqB,CAACS,IAAI,CAC7C,CAAC;UAAEC;QAAI,CAAC,KAAKA,GAAG,KAAKP,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CACvC,CAAY;QAEZlB,aAAa,CAACwB,GAAG,CACfrC,uBAAuB,CAAC6B,GAAG,CAAC,EAC5BI,KAAK,CACFK,YAAY,CAAC;UACZ,GAAGJ,YAAY;UACf,GAAGD,KAAK,CAACM,QAAQ;UACjBC,OAAO,EAAExC,uBAAuB,CAACiC,KAAK,CAACM,QAAQ,CAACC,OAAO,CAAC;UACxDC,QAAQ,EAAE;QACZ,CAAC,CAAC,CACDC,UAAU,CAAC,EAAE,CAClB,CAAC;MACH,CAAC,CAAC;MAEF,OAAO7B,aAAa;IACtB,CAAC,CAAC,OAAO8B,CAAC,EAAE;MACVC,OAAO,CAACC,GAAG,CAACF,CAAC,CAAC;MACd,OAAO9B,aAAa;IACtB;IACA;EACF,CAAC,EAAE,CAACV,KAAK,CAACM,OAAO,EAAEJ,iBAAiB,CAAC,CAAC;EAEtCT,SAAS,CAAC,MAAM;IACdgB,WAAW,CAAC,CAAC,CACVkC,IAAI,CAAEC,UAAU,IAAK;MACpBxC,UAAU,CAAEyC,WAAW,IAAK;QAC1B,IAAIC,qBAAqB,GAAG,KAAK;QAEjC,IAAIF,UAAU,CAACjC,IAAI,KAAKkC,WAAW,EAAElC,IAAI,EAAE;UACzCmC,qBAAqB,GAAG,IAAI;QAC9B,CAAC,MAAM;UACL,KAAK,MAAM,CAACpB,GAAG,EAAEqB,GAAG,CAAC,IAAIH,UAAU,EAAE;YACnC,IACE,CAACC,WAAW,CAACG,GAAG,CAACtB,GAAG,CAAC,IACrBmB,WAAW,CAACI,GAAG,CAACvB,GAAG,CAAC,EAAEwB,MAAM,KAAKH,GAAG,EAAEG,MAAM,EAC5C;cACAJ,qBAAqB,GAAG,IAAI;YAC9B;UACF;QACF;QAEA,IAAI,CAACA,qBAAqB,EAAE;UAC1B,OAAOD,WAAW;QACpB;QAEA,OAAOD,UAAU;MACnB,CAAC,CAAC;IACJ,CAAC,CAAC,CACDD,IAAI,CAAC,MAAMzC,iBAAiB,CAAEiD,SAAS,IAAK,CAACA,SAAS,CAAC,CAAC;EAC7D,CAAC,EAAE,CAAC9C,iBAAiB,EAAEI,WAAW,EAAEL,UAAU,EAAEF,iBAAiB,CAAC,CAAC;EAEnE,MAAMkD,IAAI,GAAG1D,OAAO,CAClB,OAAO;IACLS,OAAO;IACPF;EACF,CAAC,CAAC,EACF,CAACE,OAAO,EAAEF,cAAc,CAC1B,CAAC;EAED,OAAOmD,IAAI;AACb,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useWalletHandles.js","names":["useCallback","useEffect","useMemo","useState","WalletAssetMap","normalizeAssetIdWithDot","useWalletObserver","useWalletHandles","state","loadingHandles","setLoadingHandles","handles","setHandles","memoizedHandleDep","balance","getHandles","keys","syncHandles","walletHandles","size","then","default","HandleClient","HandleClientContext","KoraLabsProvider","context","network","MAINNET","PREVIEW","sdk","provider","walletHandlesWithDataArray","entries","walletHandleDataArray","getAllDataBatch","map","key","value","split","forEach","asset","matchingData","find","hex","set","withMetadata","metadata","assetId","decimals","withAmount","e","console","log","newHandles","prevHandles","handleMetadataChanged","val","has","get","amount","data"],"sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { IHandle } from \"@koralabs/adahandle-sdk\";\nimport { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { TAssetAmountMap } from \"../../@types/observer.js\";\nimport { WalletAssetMap } from \"../../classes/WalletAssetMap.class.js\";\nimport { normalizeAssetIdWithDot } from \"../../utils/assets.js\";\nimport { THandleMetadata } from \"../contexts/observer/types.js\";\nimport { useWalletObserver } from \"./useWalletObserver.js\";\n\nexport const useWalletHandles = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>() => {\n const state = useWalletObserver<THandleMetadata<AssetMetadata>>();\n const [loadingHandles, setLoadingHandles] = useState(true);\n const [handles, setHandles] = useState<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(new WalletAssetMap());\n const memoizedHandleDep = useMemo(\n () => [...state.balance.getHandles().keys()],\n [state.balance]\n );\n\n const syncHandles = useCallback<\n () => Promise<TAssetAmountMap<THandleMetadata<AssetMetadata>>>\n >(async () => {\n // Make a copy of our wallet map.\n const walletHandles: TAssetAmountMap<THandleMetadata<AssetMetadata>> =\n new WalletAssetMap([...state.balance.getHandles()]);\n\n if (walletHandles.size === 0) {\n return walletHandles;\n }\n\n try {\n await import(\"@koralabs/adahandle-sdk\").then(\n async ({\n default: HandleClient,\n HandleClientContext,\n KoraLabsProvider,\n }) => {\n setLoadingHandles(true);\n const context =\n state.network === 1\n ? HandleClientContext.MAINNET\n : HandleClientContext.PREVIEW;\n\n // @ts-ignore Type isn't exported from default.\n const sdk = new HandleClient({\n context,\n provider: new KoraLabsProvider(context),\n });\n\n // Restore once SDK updated\n const walletHandlesWithDataArray = [...walletHandles.entries()];\n const walletHandleDataArray: IHandle[] = await sdk\n .provider()\n .getAllDataBatch(\n walletHandlesWithDataArray.map(([key]) => ({\n value: key.split(\".\")[1],\n }))\n );\n\n walletHandlesWithDataArray.forEach(([key, asset]) => {\n const matchingData = walletHandleDataArray.find(\n ({ hex }) => hex === key.split(\".\")[1]\n ) as IHandle;\n\n walletHandles.set(\n normalizeAssetIdWithDot(key),\n asset\n .withMetadata({\n ...matchingData,\n ...asset.metadata,\n assetId: normalizeAssetIdWithDot(asset.metadata.assetId),\n decimals: 0,\n })\n .withAmount(1n)\n );\n });\n }\n );\n\n return walletHandles;\n } catch (e) {\n console.log(e);\n return walletHandles;\n }\n // We only want to update the callback if the Handle keys change.\n }, [state.balance]);\n\n useEffect(() => {\n syncHandles().then((newHandles) => {\n setHandles((prevHandles) => {\n let handleMetadataChanged = false;\n\n if (newHandles.size !== prevHandles?.size) {\n handleMetadataChanged = true;\n } else {\n for (const [key, val] of newHandles) {\n if (\n !prevHandles.has(key) ||\n prevHandles.get(key)?.amount !== val?.amount\n ) {\n handleMetadataChanged = true;\n }\n }\n }\n\n if (!handleMetadataChanged) {\n return prevHandles;\n }\n\n return newHandles;\n });\n setLoadingHandles(() => false);\n });\n }, [memoizedHandleDep, syncHandles, setHandles, setLoadingHandles]);\n\n const data = useMemo(\n () => ({\n handles,\n loadingHandles,\n }),\n [handles, loadingHandles]\n );\n\n return data;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -23,12 +23,15 @@ export const useWalletObserver = () => {
23
23
  utxos: state.utxos,
24
24
  collateral: state.collateral,
25
25
  observer: state.observer,
26
- syncWallet: state.syncWallet,
27
26
  unusedAddresses: state.unusedAddresses,
28
- usedAddresses: state.usedAddresses
27
+ usedAddresses: state.usedAddresses,
28
+ syncWallet: state.syncWallet,
29
+ disconnect: state.disconnect,
30
+ connectWallet: state.connectWallet,
31
+ switching: state.switching
29
32
  };
30
33
  return result;
31
- }, [state.activeWallet, state.adaBalance, state.balance, state.mainAddress, state.stakeAddress, state.network, state.observer, state.syncWallet, state.unusedAddresses, state.usedAddresses, state.utxos, state.collateral, state.ready, state.isCip45]);
34
+ }, [state.activeWallet, state.adaBalance, state.balance, state.mainAddress, state.stakeAddress, state.network, state.observer, state.syncWallet, state.disconnect, state.connectWallet, state.unusedAddresses, state.usedAddresses, state.utxos, state.collateral, state.ready, state.isCip45, state.switching]);
32
35
  return memoizedState;
33
36
  };
34
37
  //# sourceMappingURL=useWalletObserver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletObserver.js","names":["useMemo","useWalletObserverContext","useWalletObserver","state","memoizedState","result","ready","Boolean","activeWallet","observer","api","isCip45","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","syncWallet","unusedAddresses","usedAddresses"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useMemo } from \"react\";\n\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {TUseWalletObserverState<AssetMetadata>}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>(): TUseWalletObserverState<AssetMetadata> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const memoizedState = useMemo(() => {\n const result: TUseWalletObserverState<AssetMetadata> = {\n ready: Boolean(state.activeWallet && state.observer.api),\n isCip45: state.isCip45,\n activeWallet: state.activeWallet,\n adaBalance: state.adaBalance,\n balance: state.balance,\n mainAddress: state.mainAddress,\n stakeAddress: state.stakeAddress,\n network: state.network,\n utxos: state.utxos,\n collateral: state.collateral,\n observer: state.observer,\n syncWallet: state.syncWallet,\n unusedAddresses: state.unusedAddresses,\n usedAddresses: state.usedAddresses,\n };\n\n return result;\n }, [\n state.activeWallet,\n state.adaBalance,\n state.balance,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.observer,\n state.syncWallet,\n state.unusedAddresses,\n state.usedAddresses,\n state.utxos,\n state.collateral,\n state.ready,\n state.isCip45,\n ]);\n\n return memoizedState;\n};\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,OAAO;AAE/B,SAEEC,wBAAwB,QACnB,+BAA+B;;AAEtC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAEc;EAC7C,MAAM;IAAEC;EAAM,CAAC,GAAGF,wBAAwB,CAAgB,CAAC;EAE3D,MAAMG,aAAa,GAAGJ,OAAO,CAAC,MAAM;IAClC,MAAMK,MAA8C,GAAG;MACrDC,KAAK,EAAEC,OAAO,CAACJ,KAAK,CAACK,YAAY,IAAIL,KAAK,CAACM,QAAQ,CAACC,GAAG,CAAC;MACxDC,OAAO,EAAER,KAAK,CAACQ,OAAO;MACtBH,YAAY,EAAEL,KAAK,CAACK,YAAY;MAChCI,UAAU,EAAET,KAAK,CAACS,UAAU;MAC5BC,OAAO,EAAEV,KAAK,CAACU,OAAO;MACtBC,WAAW,EAAEX,KAAK,CAACW,WAAW;MAC9BC,YAAY,EAAEZ,KAAK,CAACY,YAAY;MAChCC,OAAO,EAAEb,KAAK,CAACa,OAAO;MACtBC,KAAK,EAAEd,KAAK,CAACc,KAAK;MAClBC,UAAU,EAAEf,KAAK,CAACe,UAAU;MAC5BT,QAAQ,EAAEN,KAAK,CAACM,QAAQ;MACxBU,UAAU,EAAEhB,KAAK,CAACgB,UAAU;MAC5BC,eAAe,EAAEjB,KAAK,CAACiB,eAAe;MACtCC,aAAa,EAAElB,KAAK,CAACkB;IACvB,CAAC;IAED,OAAOhB,MAAM;EACf,CAAC,EAAE,CACDF,KAAK,CAACK,YAAY,EAClBL,KAAK,CAACS,UAAU,EAChBT,KAAK,CAACU,OAAO,EACbV,KAAK,CAACW,WAAW,EACjBX,KAAK,CAACY,YAAY,EAClBZ,KAAK,CAACa,OAAO,EACbb,KAAK,CAACM,QAAQ,EACdN,KAAK,CAACgB,UAAU,EAChBhB,KAAK,CAACiB,eAAe,EACrBjB,KAAK,CAACkB,aAAa,EACnBlB,KAAK,CAACc,KAAK,EACXd,KAAK,CAACe,UAAU,EAChBf,KAAK,CAACG,KAAK,EACXH,KAAK,CAACQ,OAAO,CACd,CAAC;EAEF,OAAOP,aAAa;AACtB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useWalletObserver.js","names":["useMemo","useWalletObserverContext","useWalletObserver","state","memoizedState","result","ready","Boolean","activeWallet","observer","api","isCip45","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","unusedAddresses","usedAddresses","syncWallet","disconnect","connectWallet","switching"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useMemo } from \"react\";\n\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {TUseWalletObserverState<AssetMetadata>}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>(): TUseWalletObserverState<AssetMetadata> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const memoizedState = useMemo(() => {\n const result: TUseWalletObserverState<AssetMetadata> = {\n ready: Boolean(state.activeWallet && state.observer.api),\n isCip45: state.isCip45,\n activeWallet: state.activeWallet,\n adaBalance: state.adaBalance,\n balance: state.balance,\n mainAddress: state.mainAddress,\n stakeAddress: state.stakeAddress,\n network: state.network,\n utxos: state.utxos,\n collateral: state.collateral,\n observer: state.observer,\n unusedAddresses: state.unusedAddresses,\n usedAddresses: state.usedAddresses,\n syncWallet: state.syncWallet,\n disconnect: state.disconnect,\n connectWallet: state.connectWallet,\n switching: state.switching,\n };\n\n return result;\n }, [\n state.activeWallet,\n state.adaBalance,\n state.balance,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.observer,\n state.syncWallet,\n state.disconnect,\n state.connectWallet,\n state.unusedAddresses,\n state.usedAddresses,\n state.utxos,\n state.collateral,\n state.ready,\n state.isCip45,\n state.switching,\n ]);\n\n return memoizedState;\n};\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,OAAO;AAE/B,SAEEC,wBAAwB,QACnB,+BAA+B;;AAEtC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAEc;EAC7C,MAAM;IAAEC;EAAM,CAAC,GAAGF,wBAAwB,CAAgB,CAAC;EAE3D,MAAMG,aAAa,GAAGJ,OAAO,CAAC,MAAM;IAClC,MAAMK,MAA8C,GAAG;MACrDC,KAAK,EAAEC,OAAO,CAACJ,KAAK,CAACK,YAAY,IAAIL,KAAK,CAACM,QAAQ,CAACC,GAAG,CAAC;MACxDC,OAAO,EAAER,KAAK,CAACQ,OAAO;MACtBH,YAAY,EAAEL,KAAK,CAACK,YAAY;MAChCI,UAAU,EAAET,KAAK,CAACS,UAAU;MAC5BC,OAAO,EAAEV,KAAK,CAACU,OAAO;MACtBC,WAAW,EAAEX,KAAK,CAACW,WAAW;MAC9BC,YAAY,EAAEZ,KAAK,CAACY,YAAY;MAChCC,OAAO,EAAEb,KAAK,CAACa,OAAO;MACtBC,KAAK,EAAEd,KAAK,CAACc,KAAK;MAClBC,UAAU,EAAEf,KAAK,CAACe,UAAU;MAC5BT,QAAQ,EAAEN,KAAK,CAACM,QAAQ;MACxBU,eAAe,EAAEhB,KAAK,CAACgB,eAAe;MACtCC,aAAa,EAAEjB,KAAK,CAACiB,aAAa;MAClCC,UAAU,EAAElB,KAAK,CAACkB,UAAU;MAC5BC,UAAU,EAAEnB,KAAK,CAACmB,UAAU;MAC5BC,aAAa,EAAEpB,KAAK,CAACoB,aAAa;MAClCC,SAAS,EAAErB,KAAK,CAACqB;IACnB,CAAC;IAED,OAAOnB,MAAM;EACf,CAAC,EAAE,CACDF,KAAK,CAACK,YAAY,EAClBL,KAAK,CAACS,UAAU,EAChBT,KAAK,CAACU,OAAO,EACbV,KAAK,CAACW,WAAW,EACjBX,KAAK,CAACY,YAAY,EAClBZ,KAAK,CAACa,OAAO,EACbb,KAAK,CAACM,QAAQ,EACdN,KAAK,CAACkB,UAAU,EAChBlB,KAAK,CAACmB,UAAU,EAChBnB,KAAK,CAACoB,aAAa,EACnBpB,KAAK,CAACgB,eAAe,EACrBhB,KAAK,CAACiB,aAAa,EACnBjB,KAAK,CAACc,KAAK,EACXd,KAAK,CAACe,UAAU,EAChBf,KAAK,CAACG,KAAK,EACXH,KAAK,CAACQ,OAAO,EACbR,KAAK,CAACqB,SAAS,CAChB,CAAC;EAEF,OAAOpB,aAAa;AACtB,CAAC","ignoreList":[]}
@@ -58,6 +58,12 @@ export declare class WalletObserver<AssetMetadata extends IAssetAmountMetadata =
58
58
  * @returns {boolean}
59
59
  */
60
60
  isSyncing(): boolean;
61
+ /**
62
+ * Helper method to check if the instance has an active connection.
63
+ *
64
+ * @returns {boolean}
65
+ */
66
+ hasActiveConnection(): boolean;
61
67
  /**
62
68
  * Synchronizes the API with the wallet. This is useful if the account has changed,
63
69
  * but the underlying intent has not.
@@ -1 +1 @@
1
- {"version":3,"file":"WalletObserver.class.d.ts","sourceRoot":"","sources":["../../../src/classes/WalletObserver.class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAClG,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAe,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAI3E,OAAO,KAAK,EAGV,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc,CACzB,aAAa,SAAS,oBAAoB,GAAG,oBAAoB,CACjE,SAAQ,mBAAmB;IAC3B,MAAM,CAAC,qBAAqB,SAAoB;IAChD,MAAM,CAAC,YAAY,SAAkB;IAC9B,OAAO,EAAE,MAAM,CAAK;IACpB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,qCAAqC,EAAE,eAAe,CAAC;IAE3F,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,aAAa,CAAC,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAgD;IAChE,OAAO,CAAC,oBAAoB,CAO1B;IAGF,OAAO,CAAC,eAAe,CAAyC;IAEhE;;;;OAIG;gBACS,OAAO,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAsDpE;;;;;;;;;;;OAWG;IACH,IAAI,QAAa,QAAQ,mBAAmB,CAAC,CA8D3C;IAEF;;;;;;OAMG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;;;OAMG;IACH,OAAO,kBAAyB,0BAA0B,KAAG,QAAQ,GAAG,CAAC,CAmCvE;IAEF;;;;OAIG;IACH,UAAU,QAAO,sBAAsB,CAErC;IAEF;;;;;;;OAOG;IACH,aAAa,cACA,0BAA0B,KACpC,QAAQ,IAAI,CAAC,CAkDd;IAEF,gBAAgB;;;;OAmBd;IAEF;;;;OAIG;IACH,eAAe,QAAO,0BAA0B,GAAG,SAAS,CAE1D;IAEF;;;;OAIG;IACH,sBAAsB,QAAO,IAAI,MAAM,EAAE,aAAa,CAAC,CAChC;IAEvB;;;;OAIG;IACH,sBAAsB,QAAO,0BAA0B,EAAE,CAEvD;IAEF;;;;OAIG;IACH,UAAU,QAAO,IAAI,CAMnB;IAEF;;;;OAIG;IACH,aAAa,QAAa,QAAQ,iBAAiB,aAAa,CAAC,CAAC,CA+ChE;IAEF;;;;OAIG;IACH,UAAU,QAAa,QAAQ,MAAM,CAAC,CAepC;IAEF;;;;OAIG;IACH,gBAAgB,QAAa,QAAQ,MAAM,EAAE,CAAC,CAwB5C;IAEF;;;;OAIG;IACH,kBAAkB,QAAa,QAAQ,MAAM,EAAE,CAAC,CAwB9C;IAEF;;;;OAIG;IACH,QAAQ,QAAa,QAAQ,wBAAwB,EAAE,GAAG,SAAS,CAAC,CA6BlE;IAEF;;;;OAIG;IACH,aAAa,QAAa,QAAQ,wBAAwB,EAAE,GAAG,SAAS,CAAC,CAsCvE;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B,CAkDjC;IAEF;;;;OAIG;IACI,wBAAwB,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAWjE;IAEJ;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAOtD"}
1
+ {"version":3,"file":"WalletObserver.class.d.ts","sourceRoot":"","sources":["../../../src/classes/WalletObserver.class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAClG,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAe,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAI3E,OAAO,KAAK,EAGV,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc,CACzB,aAAa,SAAS,oBAAoB,GAAG,oBAAoB,CACjE,SAAQ,mBAAmB;IAC3B,MAAM,CAAC,qBAAqB,SAAoB;IAChD,MAAM,CAAC,YAAY,SAAkB;IAC9B,OAAO,EAAE,MAAM,CAAK;IACpB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,qCAAqC,EAAE,eAAe,CAAC;IAE3F,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,aAAa,CAAC,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAgD;IAChE,OAAO,CAAC,oBAAoB,CAO1B;IAGF,OAAO,CAAC,eAAe,CAAyC;IAEhE;;;;OAIG;gBACS,OAAO,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAsDpE;;;;;;;;;;;OAWG;IACH,IAAI,QAAa,QAAQ,mBAAmB,CAAC,CA8D3C;IAEF;;;;;;OAMG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;;;;;OAMG;IACH,OAAO,kBAAyB,0BAA0B,KAAG,QAAQ,GAAG,CAAC,CAmCvE;IAEF;;;;OAIG;IACH,UAAU,QAAO,sBAAsB,CAErC;IAEF;;;;;;;OAOG;IACH,aAAa,cACA,0BAA0B,KACpC,QAAQ,IAAI,CAAC,CAkDd;IAEF,gBAAgB;;;;OAmBd;IAEF;;;;OAIG;IACH,eAAe,QAAO,0BAA0B,GAAG,SAAS,CAE1D;IAEF;;;;OAIG;IACH,sBAAsB,QAAO,IAAI,MAAM,EAAE,aAAa,CAAC,CAChC;IAEvB;;;;OAIG;IACH,sBAAsB,QAAO,0BAA0B,EAAE,CAEvD;IAEF;;;;OAIG;IACH,UAAU,QAAO,IAAI,CAMnB;IAEF;;;;OAIG;IACH,aAAa,QAAa,QAAQ,iBAAiB,aAAa,CAAC,CAAC,CA+ChE;IAEF;;;;OAIG;IACH,UAAU,QAAa,QAAQ,MAAM,CAAC,CAepC;IAEF;;;;OAIG;IACH,gBAAgB,QAAa,QAAQ,MAAM,EAAE,CAAC,CAwB5C;IAEF;;;;OAIG;IACH,kBAAkB,QAAa,QAAQ,MAAM,EAAE,CAAC,CAwB9C;IAEF;;;;OAIG;IACH,QAAQ,QAAa,QAAQ,wBAAwB,EAAE,GAAG,SAAS,CAAC,CA6BlE;IAEF;;;;OAIG;IACH,aAAa,QAAa,QAAQ,wBAAwB,EAAE,GAAG,SAAS,CAAC,CAsCvE;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B,CAkDjC;IAEF;;;;OAIG;IACI,wBAAwB,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAWjE;IAEJ;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAOtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"WalletObserverProvider.d.ts","sourceRoot":"","sources":["../../../../src/react-components/WalletObserverProvider/WalletObserverProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAEvD,OAAO,EACL,4BAA4B,EAG7B,MAAM,+BAA+B,CAAC;AAOvC;;;;;;GAMG;AACH,QAAA,MAAM,sBAAsB,EAAE,EAAE,CAC9B,iBAAiB,CAAC,4BAA4B,CAAC,CAsChD,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"WalletObserverProvider.d.ts","sourceRoot":"","sources":["../../../../src/react-components/WalletObserverProvider/WalletObserverProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAEvD,OAAO,EACL,4BAA4B,EAG7B,MAAM,+BAA+B,CAAC;AAOvC;;;;;;GAMG;AACH,QAAA,MAAM,sBAAsB,EAAE,EAAE,CAC9B,iBAAiB,CAAC,4BAA4B,CAAC,CAmChD,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { WalletObserver } from "../../../../classes/WalletObserver.class.js";
2
2
  import { TWalletProviderHooks } from "../../../contexts/observer/index.js";
3
+ import { useWalletObserverState } from "../useWalletObserverState.js";
3
4
  /**
4
5
  * Internal use only. This is run in every WalletObserverProvider
5
6
  * component on initial mount. It adds all relevant event listeners
@@ -9,5 +10,5 @@ import { TWalletProviderHooks } from "../../../contexts/observer/index.js";
9
10
  * @param syncWallet
10
11
  * @param hooks
11
12
  */
12
- export declare const useProviderEventListeners: (observer: WalletObserver, syncWallet: () => Promise<void>, hooks?: TWalletProviderHooks) => void;
13
+ export declare const useProviderEventListeners: (observer: WalletObserver, state: ReturnType<typeof useWalletObserverState>, hooks?: TWalletProviderHooks) => void;
13
14
  //# sourceMappingURL=useProviderEventListeners.d.ts.map
@@ -1 +1 @@
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;AAE3E;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,aAC1B,cAAc,cACZ,MAAM,QAAQ,IAAI,CAAC,UACvB,oBAAoB,SAsF7B,CAAC"}
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,SA+E7B,CAAC"}
@@ -33,6 +33,10 @@ export declare const useWalletObserverState: (observer: WalletObserver) => {
33
33
  collateral: TransactionUnspentOutput[] | undefined;
34
34
  setCollateral: import("react").Dispatch<import("react").SetStateAction<TransactionUnspentOutput[] | undefined>>;
35
35
  syncWallet: () => Promise<void>;
36
+ disconnect: () => void;
37
+ connectWallet: (wallet: TSupportedWalletExtensions) => Promise<void>;
38
+ switching: boolean;
39
+ setSwitching: import("react").Dispatch<import("react").SetStateAction<boolean>>;
36
40
  ready: boolean;
37
41
  setReady: import("react").Dispatch<import("react").SetStateAction<boolean>>;
38
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletObserverState.d.ts","sourceRoot":"","sources":["../../../../../src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EACL,eAAe,EACf,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,aAAc,cAAc;;;;;;;;;;;;;;;;;;;;;;;;CAmI9D,CAAC"}
1
+ {"version":3,"file":"useWalletObserverState.d.ts","sourceRoot":"","sources":["../../../../../src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EACL,eAAe,EACf,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,aAAc,cAAc;;;;;;;;;;;;;;;;;;;;;;;4BAwC5C,0BAA0B;;;;;CAmH5C,CAAC"}
@@ -57,7 +57,10 @@ export interface IWalletObserverState<AssetMetadata extends IAssetAmountMetadata
57
57
  setUnusedAddresses: Dispatch<SetStateAction<string[]>>;
58
58
  usedAddresses: string[];
59
59
  setUsedAddresses: Dispatch<SetStateAction<string[]>>;
60
+ switching: boolean;
60
61
  syncWallet: () => Promise<void>;
62
+ disconnect: () => void;
63
+ connectWallet: (wallet: TSupportedWalletExtensions) => Promise<void>;
61
64
  };
62
65
  }
63
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/react-components/contexts/observer/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/react-components/contexts/observer/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletHandles.d.ts","sourceRoot":"","sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,eAAO,MAAM,gBAAgB;;;CA+G5B,CAAC"}
1
+ {"version":3,"file":"useWalletHandles.d.ts","sourceRoot":"","sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,eAAO,MAAM,gBAAgB;;;CAsH5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletObserver.d.ts","sourceRoot":"","sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EACL,uBAAuB,EAExB,MAAM,+BAA+B,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,2EAEzB,wBAAwB,aAAa,CAwCzC,CAAC"}
1
+ {"version":3,"file":"useWalletObserver.d.ts","sourceRoot":"","sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EACL,uBAAuB,EAExB,MAAM,+BAA+B,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,2EAEzB,wBAAwB,aAAa,CA8CzC,CAAC"}