@sundaeswap/wallet-lite 0.0.47 → 0.0.48
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/react-components/RenderWallet.js +1 -3
- package/dist/cjs/react-components/RenderWallet.js.map +1 -1
- package/dist/cjs/react-components/RenderWalletHandles.js +1 -3
- package/dist/cjs/react-components/RenderWalletHandles.js.map +1 -1
- package/dist/cjs/react-components/RenderWalletPeerConnect.js.map +1 -1
- package/dist/cjs/react-components/RenderWalletState.js +2 -3
- package/dist/cjs/react-components/RenderWalletState.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +25 -33
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletHandles.js +128 -137
- package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletObserver.js +1 -2
- package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/esm/react-components/RenderWallet.js +1 -3
- package/dist/esm/react-components/RenderWallet.js.map +1 -1
- package/dist/esm/react-components/RenderWalletHandles.js +1 -3
- package/dist/esm/react-components/RenderWalletHandles.js.map +1 -1
- package/dist/esm/react-components/RenderWalletPeerConnect.js.map +1 -1
- package/dist/esm/react-components/RenderWalletState.js +2 -2
- package/dist/esm/react-components/RenderWalletState.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +1 -5
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletHandles.js +62 -68
- package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletObserver.js +1 -2
- package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/types/react-components/RenderWallet.d.ts +4 -4
- package/dist/types/react-components/RenderWallet.d.ts.map +1 -1
- package/dist/types/react-components/RenderWalletHandles.d.ts +5 -5
- package/dist/types/react-components/RenderWalletHandles.d.ts.map +1 -1
- package/dist/types/react-components/RenderWalletPeerConnect.d.ts +5 -5
- package/dist/types/react-components/RenderWalletPeerConnect.d.ts.map +1 -1
- package/dist/types/react-components/RenderWalletState.d.ts +5 -5
- package/dist/types/react-components/RenderWalletState.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +1 -4
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
- package/dist/types/react-components/hooks/useWalletHandles.d.ts +3 -3
- 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/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +7 -6
- package/src/react-components/RenderWallet.tsx +11 -7
- package/src/react-components/RenderWalletHandles.tsx +15 -11
- package/src/react-components/RenderWalletPeerConnect.tsx +14 -10
- package/src/react-components/RenderWalletState.tsx +16 -12
- package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +1 -12
- package/src/react-components/__tests__/RenderWalletHandles.test.tsx +7 -3
- package/src/react-components/hooks/useWalletHandles.ts +92 -108
- package/src/react-components/hooks/useWalletObserver.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderWalletState.js","names":["Suspense","ErrorBoundary","useWalletLoadingState","useWalletObserver","jsx","_jsx","RenderWalletState","render","loader","fallback","state","loadingState","onError","error","observer","getOptions","debug","console","log","message","stack","children"],"sources":["../../../src/react-components/RenderWalletState.tsx"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport {
|
|
1
|
+
{"version":3,"file":"RenderWalletState.js","names":["Suspense","ErrorBoundary","useWalletLoadingState","useWalletObserver","jsx","_jsx","RenderWalletState","render","loader","fallback","state","loadingState","onError","error","observer","getOptions","debug","console","log","message","stack","children"],"sources":["../../../src/react-components/RenderWalletState.tsx"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { ReactElement, ReactNode, Suspense } from \"react\";\n\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { useWalletLoadingState } from \"./hooks/useWalletLoadingState.js\";\nimport { useWalletObserver } from \"./hooks/useWalletObserver.js\";\n\nexport type TRenderWalletStateFunctionState<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = ReturnType<typeof useWalletObserver<T>> &\n ReturnType<typeof useWalletLoadingState<T>>;\n\nexport type TRenderWalletStateFunction<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = (state: TRenderWalletStateFunctionState<T>) => JSX.Element | ReactNode;\n\nexport interface IRenderWalletStateProps<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> {\n render: TRenderWalletStateFunction<T>;\n loader?: ReactNode;\n fallback?: ReactElement;\n}\n\n/**\n * This component is the same as RenderWallet, but will\n * trigger a re-render every time the WalletObserver performs\n * a sync or connection operation. Useful for displaying\n * internal operation states of the wallet.\n */\nexport const RenderWalletState = <\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n>({\n render,\n loader,\n fallback,\n}: IRenderWalletStateProps<T>) => {\n const state = useWalletObserver<T>();\n const loadingState = useWalletLoadingState<T>();\n\n return (\n <ErrorBoundary\n fallback={fallback || null}\n onError={(error) => {\n if (state.observer.getOptions().debug) {\n console.log(error.message, error.stack);\n }\n }}\n >\n <Suspense fallback={loader}>\n {render({\n ...state,\n ...loadingState,\n })}\n </Suspense>\n </ErrorBoundary>\n );\n};\n"],"mappings":"AACA,SAAkCA,QAAQ,QAAQ,OAAO;AAEzD,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,iBAAiB,QAAQ,8BAA8B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAmBjE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAE/B;EACAC,MAAM;EACNC,MAAM;EACNC;AAC0B,CAAC,KAAK;EAChC,MAAMC,KAAK,GAAGP,iBAAiB,CAAI,CAAC;EACpC,MAAMQ,YAAY,GAAGT,qBAAqB,CAAI,CAAC;EAE/C,oBACEG,IAAA,CAACJ,aAAa;IACZQ,QAAQ,EAAEA,QAAQ,IAAI,IAAK;IAC3BG,OAAO,EAAGC,KAAK,IAAK;MAClB,IAAIH,KAAK,CAACI,QAAQ,CAACC,UAAU,CAAC,CAAC,CAACC,KAAK,EAAE;QACrCC,OAAO,CAACC,GAAG,CAACL,KAAK,CAACM,OAAO,EAAEN,KAAK,CAACO,KAAK,CAAC;MACzC;IACF,CAAE;IAAAC,QAAA,eAEFhB,IAAA,CAACL,QAAQ;MAACS,QAAQ,EAAED,MAAO;MAAAa,QAAA,EACxBd,MAAM,CAAC;QACN,GAAGG,KAAK;QACR,GAAGC;MACL,CAAC;IAAC,CACM;EAAC,CACE,CAAC;AAEpB,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AssetAmount } from "@sundaeswap/asset";
|
|
2
2
|
import { useCallback, useEffect, useState, useTransition } from "react";
|
|
3
|
-
import { WalletAssetMap } from "../../../classes/WalletAssetMap.class.js";
|
|
4
3
|
import { WalletBalanceMap } from "../../../classes/WalletBalanceMap.class.js";
|
|
5
4
|
import { WalletObserver } from "../../../classes/WalletObserver.class.js";
|
|
6
5
|
import { areAssetMapsEqual } from "../../../utils/comparisons.js";
|
|
6
|
+
|
|
7
7
|
/**
|
|
8
8
|
* Internal use only. The main action that sync WalletObserver api responses with
|
|
9
9
|
* the React context of the WalletObserverProvider.
|
|
@@ -13,7 +13,6 @@ import { areAssetMapsEqual } from "../../../utils/comparisons.js";
|
|
|
13
13
|
export const useWalletObserverState = observer => {
|
|
14
14
|
const [activeWallet, setActiveWallet] = useState();
|
|
15
15
|
const [adaBalance, setAdaBalance] = useState(new AssetAmount(0n));
|
|
16
|
-
const [handleMetadata, setHandleMetadata] = useState(new WalletAssetMap());
|
|
17
16
|
const [balance, setBalance] = useState(new WalletBalanceMap(observer));
|
|
18
17
|
const [network, setNetwork] = useState();
|
|
19
18
|
const [usedAddresses, setUsedAddresses] = useState([]);
|
|
@@ -31,7 +30,6 @@ export const useWalletObserverState = observer => {
|
|
|
31
30
|
// Reset state.
|
|
32
31
|
setAdaBalance(new AssetAmount(0n));
|
|
33
32
|
setBalance(new WalletBalanceMap(observer));
|
|
34
|
-
setHandleMetadata(new WalletAssetMap());
|
|
35
33
|
setUsedAddresses([]);
|
|
36
34
|
setUnusedAddresses([]);
|
|
37
35
|
setActiveWallet(undefined);
|
|
@@ -106,8 +104,6 @@ export const useWalletObserverState = observer => {
|
|
|
106
104
|
setAdaBalance,
|
|
107
105
|
balance,
|
|
108
106
|
setBalance,
|
|
109
|
-
handles: handleMetadata,
|
|
110
|
-
setHandles: setHandleMetadata,
|
|
111
107
|
isCip45,
|
|
112
108
|
setIsCip45,
|
|
113
109
|
network,
|
package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletObserverState.js","names":["AssetAmount","useCallback","useEffect","useState","useTransition","WalletAssetMap","WalletBalanceMap","WalletObserver","areAssetMapsEqual","useWalletObserverState","observer","activeWallet","setActiveWallet","adaBalance","setAdaBalance","handleMetadata","setHandleMetadata","balance","setBalance","network","setNetwork","usedAddresses","setUsedAddresses","unusedAddresses","setUnusedAddresses","utxos","setUtxos","collateral","setCollateral","isCip45","setIsCip45","switching","setSwitching","isPending","startTransition","willAutoConnect","setWillAutoConnect","Boolean","window","localStorage","getItem","PERSISTENCE_CACHE_KEY","getOptions","persistence","disconnect","undefined","syncWallet","isSyncing","hasActiveConnection","newWallet","freshData","sync","prevWallet","newAdaBalance","balanceMap","get","ADA_ASSET_ID","prevBalance","amount","prevValue","JSON","stringify","prevValueRep","map","v","toCbor","newValueRep","includes","connectWallet","wallet","api","addEventListener","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, IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useCallback, useEffect, useState, useTransition } 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 = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>(\n observer: WalletObserver<AssetMetadata>,\n) => {\n const [activeWallet, setActiveWallet] =\n useState<TSupportedWalletExtensions>();\n const [adaBalance, setAdaBalance] = useState<AssetAmount<AssetMetadata>>(\n new AssetAmount<AssetMetadata>(0n),\n );\n const [handleMetadata, setHandleMetadata] = useState<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(new WalletAssetMap<THandleMetadata<AssetMetadata>>());\n const [balance, setBalance] = useState<WalletBalanceMap<AssetMetadata>>(\n new WalletBalanceMap<AssetMetadata>(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 [isCip45, setIsCip45] = useState(false);\n const [switching, setSwitching] = useState(false);\n const [isPending, startTransition] = useTransition();\n const [willAutoConnect, setWillAutoConnect] = useState(\n Boolean(\n window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY) &&\n observer.getOptions().persistence,\n ),\n );\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 setIsCip45(false);\n setWillAutoConnect(false);\n }, [observer]);\n\n const syncWallet = useCallback(async () => {\n if (observer.isSyncing() || !observer.hasActiveConnection()) {\n return;\n }\n\n const newWallet = observer.activeWallet;\n if (!newWallet) {\n disconnect();\n return;\n }\n\n const freshData = await observer.sync();\n\n startTransition(() => {\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 setIsCip45(newWallet.includes(\"p2p\"));\n });\n }, [observer, disconnect]);\n\n const connectWallet = useCallback(\n async (wallet: TSupportedWalletExtensions) => {\n if (observer.hasActiveConnection() && wallet !== observer.activeWallet) {\n setSwitching(() => true);\n }\n\n await observer.connectWallet(wallet);\n await syncWallet();\n setSwitching(() => false);\n return observer.api;\n },\n [observer, setSwitching],\n );\n\n /**\n * Ensure the wallet syncs on connect and disconnect.\n */\n useEffect(() => {\n window.addEventListener(\"focus\", syncWallet);\n\n return () => {\n window.addEventListener(\"focus\", syncWallet);\n };\n }, [syncWallet]);\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 isPending,\n willAutoConnect,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useWalletObserverState.js","names":["AssetAmount","useCallback","useEffect","useState","useTransition","WalletBalanceMap","WalletObserver","areAssetMapsEqual","useWalletObserverState","observer","activeWallet","setActiveWallet","adaBalance","setAdaBalance","balance","setBalance","network","setNetwork","usedAddresses","setUsedAddresses","unusedAddresses","setUnusedAddresses","utxos","setUtxos","collateral","setCollateral","isCip45","setIsCip45","switching","setSwitching","isPending","startTransition","willAutoConnect","setWillAutoConnect","Boolean","window","localStorage","getItem","PERSISTENCE_CACHE_KEY","getOptions","persistence","disconnect","undefined","syncWallet","isSyncing","hasActiveConnection","newWallet","freshData","sync","prevWallet","newAdaBalance","balanceMap","get","ADA_ASSET_ID","prevBalance","amount","prevValue","JSON","stringify","prevValueRep","map","v","toCbor","newValueRep","includes","connectWallet","wallet","api","addEventListener"],"sources":["../../../../../src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useCallback, useEffect, useState, useTransition } from \"react\";\n\nimport { TSupportedWalletExtensions } from \"../../../@types/observer.js\";\nimport { WalletBalanceMap } from \"../../../classes/WalletBalanceMap.class.js\";\nimport { WalletObserver } from \"../../../classes/WalletObserver.class.js\";\nimport { areAssetMapsEqual } from \"../../../utils/comparisons.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 = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>(\n observer: WalletObserver<AssetMetadata>,\n) => {\n const [activeWallet, setActiveWallet] =\n useState<TSupportedWalletExtensions>();\n const [adaBalance, setAdaBalance] = useState<AssetAmount<AssetMetadata>>(\n new AssetAmount<AssetMetadata>(0n),\n );\n const [balance, setBalance] = useState<WalletBalanceMap<AssetMetadata>>(\n new WalletBalanceMap<AssetMetadata>(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 [isCip45, setIsCip45] = useState(false);\n const [switching, setSwitching] = useState(false);\n const [isPending, startTransition] = useTransition();\n const [willAutoConnect, setWillAutoConnect] = useState(\n Boolean(\n window.localStorage.getItem(WalletObserver.PERSISTENCE_CACHE_KEY) &&\n observer.getOptions().persistence,\n ),\n );\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 setUsedAddresses([]);\n setUnusedAddresses([]);\n setActiveWallet(undefined);\n setNetwork(undefined);\n setUtxos(undefined);\n setCollateral(undefined);\n setIsCip45(false);\n setWillAutoConnect(false);\n }, [observer]);\n\n const syncWallet = useCallback(async () => {\n if (observer.isSyncing() || !observer.hasActiveConnection()) {\n return;\n }\n\n const newWallet = observer.activeWallet;\n if (!newWallet) {\n disconnect();\n return;\n }\n\n const freshData = await observer.sync();\n\n startTransition(() => {\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 setIsCip45(newWallet.includes(\"p2p\"));\n });\n }, [observer, disconnect]);\n\n const connectWallet = useCallback(\n async (wallet: TSupportedWalletExtensions) => {\n if (observer.hasActiveConnection() && wallet !== observer.activeWallet) {\n setSwitching(() => true);\n }\n\n await observer.connectWallet(wallet);\n await syncWallet();\n setSwitching(() => false);\n return observer.api;\n },\n [observer, setSwitching],\n );\n\n /**\n * Ensure the wallet syncs on connect and disconnect.\n */\n useEffect(() => {\n window.addEventListener(\"focus\", syncWallet);\n\n return () => {\n window.addEventListener(\"focus\", syncWallet);\n };\n }, [syncWallet]);\n\n return {\n activeWallet,\n setActiveWallet,\n adaBalance,\n setAdaBalance,\n balance,\n setBalance,\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 isPending,\n willAutoConnect,\n };\n};\n"],"mappings":"AACA,SAASA,WAAW,QAA8B,mBAAmB;AACrE,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,aAAa,QAAQ,OAAO;AAGvE,SAASC,gBAAgB,QAAQ,4CAA4C;AAC7E,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,iBAAiB,QAAQ,+BAA+B;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAGjCC,QAAuC,IACpC;EACH,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GACnCR,QAAQ,CAA6B,CAAC;EACxC,MAAM,CAACS,UAAU,EAAEC,aAAa,CAAC,GAAGV,QAAQ,CAC1C,IAAIH,WAAW,CAAgB,EAAE,CACnC,CAAC;EACD,MAAM,CAACc,OAAO,EAAEC,UAAU,CAAC,GAAGZ,QAAQ,CACpC,IAAIE,gBAAgB,CAAgBI,QAAQ,CAC9C,CAAC;EACD,MAAM,CAACO,OAAO,EAAEC,UAAU,CAAC,GAAGd,QAAQ,CAAqB,CAAC;EAC5D,MAAM,CAACe,aAAa,EAAEC,gBAAgB,CAAC,GAAGhB,QAAQ,CAAW,EAAE,CAAC;EAChE,MAAM,CAACiB,eAAe,EAAEC,kBAAkB,CAAC,GAAGlB,QAAQ,CAAW,EAAE,CAAC;EACpE,MAAM,CAACmB,KAAK,EAAEC,QAAQ,CAAC,GAAGpB,QAAQ,CAA6B,CAAC;EAChE,MAAM,CAACqB,UAAU,EAAEC,aAAa,CAAC,GAAGtB,QAAQ,CAA6B,CAAC;EAC1E,MAAM,CAACuB,OAAO,EAAEC,UAAU,CAAC,GAAGxB,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACyB,SAAS,EAAEC,YAAY,CAAC,GAAG1B,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAAC2B,SAAS,EAAEC,eAAe,CAAC,GAAG3B,aAAa,CAAC,CAAC;EACpD,MAAM,CAAC4B,eAAe,EAAEC,kBAAkB,CAAC,GAAG9B,QAAQ,CACpD+B,OAAO,CACLC,MAAM,CAACC,YAAY,CAACC,OAAO,CAAC/B,cAAc,CAACgC,qBAAqB,CAAC,IAC/D7B,QAAQ,CAAC8B,UAAU,CAAC,CAAC,CAACC,WAC1B,CACF,CAAC;EAED,MAAMC,UAAU,GAAGxC,WAAW,CAAC,MAAM;IACnC;IACAQ,QAAQ,CAACgC,UAAU,CAAC,CAAC;;IAErB;IACA5B,aAAa,CAAC,IAAIb,WAAW,CAAC,EAAE,CAAC,CAAC;IAClCe,UAAU,CAAC,IAAIV,gBAAgB,CAACI,QAAQ,CAAC,CAAC;IAC1CU,gBAAgB,CAAC,EAAE,CAAC;IACpBE,kBAAkB,CAAC,EAAE,CAAC;IACtBV,eAAe,CAAC+B,SAAS,CAAC;IAC1BzB,UAAU,CAACyB,SAAS,CAAC;IACrBnB,QAAQ,CAACmB,SAAS,CAAC;IACnBjB,aAAa,CAACiB,SAAS,CAAC;IACxBf,UAAU,CAAC,KAAK,CAAC;IACjBM,kBAAkB,CAAC,KAAK,CAAC;EAC3B,CAAC,EAAE,CAACxB,QAAQ,CAAC,CAAC;EAEd,MAAMkC,UAAU,GAAG1C,WAAW,CAAC,YAAY;IACzC,IAAIQ,QAAQ,CAACmC,SAAS,CAAC,CAAC,IAAI,CAACnC,QAAQ,CAACoC,mBAAmB,CAAC,CAAC,EAAE;MAC3D;IACF;IAEA,MAAMC,SAAS,GAAGrC,QAAQ,CAACC,YAAY;IACvC,IAAI,CAACoC,SAAS,EAAE;MACdL,UAAU,CAAC,CAAC;MACZ;IACF;IAEA,MAAMM,SAAS,GAAG,MAAMtC,QAAQ,CAACuC,IAAI,CAAC,CAAC;IAEvCjB,eAAe,CAAC,MAAM;MACpBpB,eAAe,CAAEsC,UAAU,IACzBH,SAAS,KAAKG,UAAU,GAAGA,UAAU,GAAGH,SAC1C,CAAC;MAED,MAAMI,aAAa,GAAGH,SAAS,CAACI,UAAU,CAACC,GAAG,CAC5C9C,cAAc,CAAC+C,YACjB,CAAC;MACD,IAAIH,aAAa,EAAE;QACjBrC,aAAa,CAAEyC,WAAW,IACxBA,WAAW,CAACC,MAAM,KAAKL,aAAa,CAACK,MAAM,GACvCD,WAAW,GACXJ,aACN,CAAC;MACH;MAEAnC,UAAU,CAAEuC,WAAW,IACrB/C,iBAAiB,CAAC+C,WAAW,EAAEP,SAAS,CAACI,UAAU,CAAC,GAChDG,WAAW,GACXP,SAAS,CAACI,UAChB,CAAC;MAEDhC,gBAAgB,CAAEqC,SAAS,IACzBC,IAAI,CAACC,SAAS,CAACF,SAAS,CAAC,KAAKC,IAAI,CAACC,SAAS,CAACX,SAAS,CAAC7B,aAAa,CAAC,GACjEsC,SAAS,GACTT,SAAS,CAAC7B,aAChB,CAAC;MAEDG,kBAAkB,CAAEmC,SAAS,IAC3BC,IAAI,CAACC,SAAS,CAACF,SAAS,CAAC,KAAKC,IAAI,CAACC,SAAS,CAACX,SAAS,CAAC3B,eAAe,CAAC,GACnEoC,SAAS,GACTT,SAAS,CAAC3B,eAChB,CAAC;MAEDH,UAAU,CAAEuC,SAAS,IACnBA,SAAS,KAAKT,SAAS,CAAC/B,OAAO,GAAGwC,SAAS,GAAGT,SAAS,CAAC/B,OAC1D,CAAC;MAEDO,QAAQ,CAAEiC,SAAS,IAAK;QACtB,MAAMG,YAAY,GAAGH,SAAS,EAAEI,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC;QACtD,MAAMC,WAAW,GAAGhB,SAAS,CAACzB,KAAK,EAAEsC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC;QAC3D,IAAIH,YAAY,KAAKI,WAAW,EAAE;UAChC,OAAOhB,SAAS,CAACzB,KAAK;QACxB;QAEA,OAAOkC,SAAS;MAClB,CAAC,CAAC;MAEF/B,aAAa,CAAE+B,SAAS,IAAK;QAC3B,MAAMG,YAAY,GAAGH,SAAS,EAAEI,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC;QACtD,MAAMC,WAAW,GAAGhB,SAAS,CAACzB,KAAK,EAAEsC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC;QAC3D,IAAIH,YAAY,KAAKI,WAAW,EAAE;UAChC,OAAOhB,SAAS,CAACzB,KAAK;QACxB;QAEA,OAAOkC,SAAS;MAClB,CAAC,CAAC;MAEF7B,UAAU,CAACmB,SAAS,CAACkB,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC;EACJ,CAAC,EAAE,CAACvD,QAAQ,EAAEgC,UAAU,CAAC,CAAC;EAE1B,MAAMwB,aAAa,GAAGhE,WAAW,CAC/B,MAAOiE,MAAkC,IAAK;IAC5C,IAAIzD,QAAQ,CAACoC,mBAAmB,CAAC,CAAC,IAAIqB,MAAM,KAAKzD,QAAQ,CAACC,YAAY,EAAE;MACtEmB,YAAY,CAAC,MAAM,IAAI,CAAC;IAC1B;IAEA,MAAMpB,QAAQ,CAACwD,aAAa,CAACC,MAAM,CAAC;IACpC,MAAMvB,UAAU,CAAC,CAAC;IAClBd,YAAY,CAAC,MAAM,KAAK,CAAC;IACzB,OAAOpB,QAAQ,CAAC0D,GAAG;EACrB,CAAC,EACD,CAAC1D,QAAQ,EAAEoB,YAAY,CACzB,CAAC;;EAED;AACF;AACA;EACE3B,SAAS,CAAC,MAAM;IACdiC,MAAM,CAACiC,gBAAgB,CAAC,OAAO,EAAEzB,UAAU,CAAC;IAE5C,OAAO,MAAM;MACXR,MAAM,CAACiC,gBAAgB,CAAC,OAAO,EAAEzB,UAAU,CAAC;IAC9C,CAAC;EACH,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhB,OAAO;IACLjC,YAAY;IACZC,eAAe;IACfC,UAAU;IACVC,aAAa;IACbC,OAAO;IACPC,UAAU;IACVW,OAAO;IACPC,UAAU;IACVX,OAAO;IACPC,UAAU;IACVG,eAAe;IACfC,kBAAkB;IAClBH,aAAa;IACbC,gBAAgB;IAChBG,KAAK;IACLC,QAAQ;IACRC,UAAU;IACVC,aAAa;IACbkB,UAAU;IACVF,UAAU;IACVwB,aAAa;IACbrC,SAAS;IACTC,YAAY;IACZC,SAAS;IACTE;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,79 +1,73 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
2
|
+
import { useMemo } from "react";
|
|
2
3
|
import { WalletAssetMap } from "../../classes/WalletAssetMap.class.js";
|
|
3
4
|
import { normalizeAssetIdWithDot } from "../../utils/assets.js";
|
|
4
5
|
import { useWalletObserver } from "./useWalletObserver.js";
|
|
5
6
|
export const useWalletHandles = () => {
|
|
7
|
+
const queryClient = useQueryClient();
|
|
6
8
|
const state = useWalletObserver();
|
|
7
|
-
const [handles, setHandles] = useState(state.handles);
|
|
8
|
-
const [isLoading, setIsLoading] = useState(true);
|
|
9
|
-
const deferredHandles = useDeferredValue(handles);
|
|
10
9
|
const memoizedHandleDep = useMemo(() => [...state.balance.getHandles().keys()], [state.balance]);
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
provider: new KoraLabsProvider(context)
|
|
27
|
-
});
|
|
28
|
-
const walletHandlesWithDataArray = [...walletHandles.entries()];
|
|
29
|
-
const walletHandleDataArray = await sdk.provider().getAllDataBatch(walletHandlesWithDataArray.map(([key]) => ({
|
|
30
|
-
value: key.split(".")[1]
|
|
31
|
-
})));
|
|
32
|
-
walletHandlesWithDataArray.forEach(([key, asset]) => {
|
|
33
|
-
const matchingData = walletHandleDataArray.find(({
|
|
34
|
-
hex
|
|
35
|
-
}) => hex === key.split(".")[1]);
|
|
36
|
-
walletHandles.set(normalizeAssetIdWithDot(key), asset.withMetadata({
|
|
37
|
-
...matchingData,
|
|
38
|
-
...asset.metadata,
|
|
39
|
-
assetId: normalizeAssetIdWithDot(asset.metadata.assetId),
|
|
40
|
-
decimals: 0
|
|
41
|
-
}).withAmount(1n));
|
|
42
|
-
});
|
|
43
|
-
return walletHandles;
|
|
44
|
-
} catch (e) {
|
|
45
|
-
console.error(e);
|
|
46
|
-
return walletHandles;
|
|
47
|
-
}
|
|
48
|
-
}, [state.balance, state.network]);
|
|
49
|
-
useEffect(() => {
|
|
50
|
-
const fetchHandles = async () => {
|
|
51
|
-
const newHandles = await syncHandles();
|
|
52
|
-
startTransition(() => {
|
|
53
|
-
setHandles(prevHandles => {
|
|
54
|
-
let handleMetadataChanged = false;
|
|
55
|
-
if (newHandles.size !== prevHandles?.size) {
|
|
56
|
-
handleMetadataChanged = true;
|
|
57
|
-
} else {
|
|
58
|
-
for (const [key, val] of newHandles) {
|
|
59
|
-
if (!prevHandles.has(key) || prevHandles.get(key)?.amount !== val?.amount) {
|
|
60
|
-
handleMetadataChanged = true;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
10
|
+
const queryKey = [memoizedHandleDep, state.mainAddress];
|
|
11
|
+
const {
|
|
12
|
+
data: handles,
|
|
13
|
+
isLoading
|
|
14
|
+
} = useQuery({
|
|
15
|
+
queryKey,
|
|
16
|
+
queryFn: async () => {
|
|
17
|
+
const currentWalletHandles = new WalletAssetMap([...state.balance.getHandles()]);
|
|
18
|
+
const cachedMetadata = queryClient.getQueryData(queryKey);
|
|
19
|
+
let updateMetadata = false;
|
|
20
|
+
if (cachedMetadata) {
|
|
21
|
+
for (const [, val] of cachedMetadata) {
|
|
22
|
+
if (!val?.metadata?.rarity) {
|
|
23
|
+
updateMetadata = true;
|
|
24
|
+
break;
|
|
63
25
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (!updateMetadata && cachedMetadata) {
|
|
29
|
+
return cachedMetadata;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const {
|
|
33
|
+
default: HandleClient,
|
|
34
|
+
HandleClientContext,
|
|
35
|
+
KoraLabsProvider
|
|
36
|
+
} = await import("@koralabs/adahandle-sdk");
|
|
37
|
+
const context = state.network === 1 ? HandleClientContext.MAINNET : HandleClientContext.PREVIEW;
|
|
38
|
+
const sdk = new HandleClient({
|
|
39
|
+
context,
|
|
40
|
+
provider: new KoraLabsProvider(context)
|
|
41
|
+
});
|
|
42
|
+
const walletHandlesWithDataArray = [...currentWalletHandles.entries()];
|
|
43
|
+
const walletHandleDataArray = await sdk.provider().getAllDataBatch(walletHandlesWithDataArray.map(([key]) => ({
|
|
44
|
+
value: key.split(".")[1]
|
|
45
|
+
})));
|
|
46
|
+
walletHandlesWithDataArray.forEach(([key, asset]) => {
|
|
47
|
+
const matchingData = walletHandleDataArray.find(({
|
|
48
|
+
hex
|
|
49
|
+
}) => hex === key.split(".")[1]);
|
|
50
|
+
currentWalletHandles.set(normalizeAssetIdWithDot(key), asset.withMetadata({
|
|
51
|
+
...matchingData,
|
|
52
|
+
...asset.metadata,
|
|
53
|
+
assetId: normalizeAssetIdWithDot(asset.metadata.assetId),
|
|
54
|
+
decimals: 0
|
|
55
|
+
}).withAmount(1n));
|
|
68
56
|
});
|
|
69
|
-
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
57
|
+
return currentWalletHandles;
|
|
58
|
+
} catch (e) {
|
|
59
|
+
console.error(e);
|
|
60
|
+
}
|
|
61
|
+
return currentWalletHandles;
|
|
62
|
+
},
|
|
63
|
+
refetchInterval: false,
|
|
64
|
+
notifyOnChangeProps: ["data", "isLoading"],
|
|
65
|
+
initialData: new WalletAssetMap([...state.balance.getHandles()])
|
|
66
|
+
});
|
|
67
|
+
const memoizedResult = useMemo(() => ({
|
|
68
|
+
handles,
|
|
76
69
|
loadingHandles: isLoading
|
|
77
|
-
};
|
|
70
|
+
}), [handles, isLoading]);
|
|
71
|
+
return memoizedResult;
|
|
78
72
|
};
|
|
79
73
|
//# sourceMappingURL=useWalletHandles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletHandles.js","names":["
|
|
1
|
+
{"version":3,"file":"useWalletHandles.js","names":["useQuery","useQueryClient","useMemo","WalletAssetMap","normalizeAssetIdWithDot","useWalletObserver","useWalletHandles","queryClient","state","memoizedHandleDep","balance","getHandles","keys","queryKey","mainAddress","data","handles","isLoading","queryFn","currentWalletHandles","cachedMetadata","getQueryData","updateMetadata","val","metadata","rarity","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","assetId","decimals","withAmount","e","console","error","refetchInterval","notifyOnChangeProps","initialData","memoizedResult","loadingHandles"],"sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"sourcesContent":["import { IHandle } from \"@koralabs/adahandle-sdk\";\nimport { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useMemo } from \"react\";\n\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 queryClient = useQueryClient();\n const state = useWalletObserver<THandleMetadata<AssetMetadata>>();\n const memoizedHandleDep = useMemo(\n () => [...state.balance.getHandles().keys()],\n [state.balance],\n );\n\n const queryKey = [memoizedHandleDep, state.mainAddress];\n const { data: handles, isLoading } = useQuery({\n queryKey,\n queryFn: async () => {\n const currentWalletHandles: TAssetAmountMap<\n THandleMetadata<AssetMetadata>\n > = new WalletAssetMap<THandleMetadata<AssetMetadata>>([\n ...state.balance.getHandles(),\n ]);\n\n const cachedMetadata =\n queryClient.getQueryData<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(queryKey);\n\n let updateMetadata = false;\n if (cachedMetadata) {\n for (const [, val] of cachedMetadata) {\n if (!val?.metadata?.rarity) {\n updateMetadata = true;\n break;\n }\n }\n }\n\n if (!updateMetadata && cachedMetadata) {\n return cachedMetadata;\n }\n\n try {\n const {\n default: HandleClient,\n HandleClientContext,\n KoraLabsProvider,\n } = await import(\"@koralabs/adahandle-sdk\");\n\n const context =\n state.network === 1\n ? HandleClientContext.MAINNET\n : HandleClientContext.PREVIEW;\n\n const sdk = new HandleClient({\n context,\n provider: new KoraLabsProvider(context),\n });\n\n const walletHandlesWithDataArray = [...currentWalletHandles.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 currentWalletHandles.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 currentWalletHandles;\n } catch (e) {\n console.error(e);\n }\n\n return currentWalletHandles;\n },\n refetchInterval: false,\n notifyOnChangeProps: [\"data\", \"isLoading\"],\n initialData: new WalletAssetMap<THandleMetadata<AssetMetadata>>([\n ...state.balance.getHandles(),\n ]),\n });\n\n const memoizedResult = useMemo(\n () => ({\n handles,\n loadingHandles: isLoading,\n }),\n [handles, isLoading],\n );\n\n return memoizedResult;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,9 +28,8 @@ export const useWalletObserver = () => {
|
|
|
28
28
|
connectWallet: state.connectWallet,
|
|
29
29
|
switching: state.switching,
|
|
30
30
|
isPending: state.isPending,
|
|
31
|
-
handles: state.handles,
|
|
32
31
|
willAutoConnect: state.willAutoConnect
|
|
33
|
-
}), [state.isCip45, state.activeWallet, state.adaBalance.amount, state.balance.size, state.mainAddress, state.stakeAddress, state.network, state.utxos, state.collateral, state.observer, state.unusedAddresses, state.usedAddresses, state.syncWallet, state.disconnect, state.connectWallet, state.switching, state.isPending, state.
|
|
32
|
+
}), [state.isCip45, state.activeWallet, state.adaBalance.amount, state.balance.size, state.mainAddress, state.stakeAddress, state.network, state.utxos, state.collateral, state.observer, state.unusedAddresses, state.usedAddresses, state.syncWallet, state.disconnect, state.connectWallet, state.switching, state.isPending, state.willAutoConnect]);
|
|
34
33
|
return result;
|
|
35
34
|
};
|
|
36
35
|
//# sourceMappingURL=useWalletObserver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletObserver.js","names":["useMemo","useWalletObserverContext","useWalletObserver","state","result","isCip45","activeWallet","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","observer","unusedAddresses","usedAddresses","syncWallet","disconnect","connectWallet","switching","isPending","
|
|
1
|
+
{"version":3,"file":"useWalletObserver.js","names":["useMemo","useWalletObserverContext","useWalletObserver","state","result","isCip45","activeWallet","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","observer","unusedAddresses","usedAddresses","syncWallet","disconnect","connectWallet","switching","isPending","willAutoConnect","amount","size"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { useMemo } from \"react\";\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {Omit<TUseWalletObserverState<AssetMetadata>, \"ready\" | \"connectingWallet\" | \"syncingWallet\">}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>(): Omit<\n TUseWalletObserverState<AssetMetadata>,\n \"ready\" | \"connectingWallet\" | \"syncingWallet\"\n> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const result: Omit<\n TUseWalletObserverState<AssetMetadata>,\n \"ready\" | \"connectingWallet\" | \"syncingWallet\"\n > = useMemo(\n () => ({\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 isPending: state.isPending,\n willAutoConnect: state.willAutoConnect,\n }),\n [\n state.isCip45,\n state.activeWallet,\n state.adaBalance.amount,\n state.balance.size,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.utxos,\n state.collateral,\n state.observer,\n state.unusedAddresses,\n state.usedAddresses,\n state.syncWallet,\n state.disconnect,\n state.connectWallet,\n state.switching,\n state.isPending,\n state.willAutoConnect,\n ],\n );\n\n return result;\n};\n"],"mappings":"AAEA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAEEC,wBAAwB,QACnB,+BAA+B;;AAEtC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAK5B;EACH,MAAM;IAAEC;EAAM,CAAC,GAAGF,wBAAwB,CAAgB,CAAC;EAE3D,MAAMG,MAGL,GAAGJ,OAAO,CACT,OAAO;IACLK,OAAO,EAAEF,KAAK,CAACE,OAAO;IACtBC,YAAY,EAAEH,KAAK,CAACG,YAAY;IAChCC,UAAU,EAAEJ,KAAK,CAACI,UAAU;IAC5BC,OAAO,EAAEL,KAAK,CAACK,OAAO;IACtBC,WAAW,EAAEN,KAAK,CAACM,WAAW;IAC9BC,YAAY,EAAEP,KAAK,CAACO,YAAY;IAChCC,OAAO,EAAER,KAAK,CAACQ,OAAO;IACtBC,KAAK,EAAET,KAAK,CAACS,KAAK;IAClBC,UAAU,EAAEV,KAAK,CAACU,UAAU;IAC5BC,QAAQ,EAAEX,KAAK,CAACW,QAAQ;IACxBC,eAAe,EAAEZ,KAAK,CAACY,eAAe;IACtCC,aAAa,EAAEb,KAAK,CAACa,aAAa;IAClCC,UAAU,EAAEd,KAAK,CAACc,UAAU;IAC5BC,UAAU,EAAEf,KAAK,CAACe,UAAU;IAC5BC,aAAa,EAAEhB,KAAK,CAACgB,aAAa;IAClCC,SAAS,EAAEjB,KAAK,CAACiB,SAAS;IAC1BC,SAAS,EAAElB,KAAK,CAACkB,SAAS;IAC1BC,eAAe,EAAEnB,KAAK,CAACmB;EACzB,CAAC,CAAC,EACF,CACEnB,KAAK,CAACE,OAAO,EACbF,KAAK,CAACG,YAAY,EAClBH,KAAK,CAACI,UAAU,CAACgB,MAAM,EACvBpB,KAAK,CAACK,OAAO,CAACgB,IAAI,EAClBrB,KAAK,CAACM,WAAW,EACjBN,KAAK,CAACO,YAAY,EAClBP,KAAK,CAACQ,OAAO,EACbR,KAAK,CAACS,KAAK,EACXT,KAAK,CAACU,UAAU,EAChBV,KAAK,CAACW,QAAQ,EACdX,KAAK,CAACY,eAAe,EACrBZ,KAAK,CAACa,aAAa,EACnBb,KAAK,CAACc,UAAU,EAChBd,KAAK,CAACe,UAAU,EAChBf,KAAK,CAACgB,aAAa,EACnBhB,KAAK,CAACiB,SAAS,EACfjB,KAAK,CAACkB,SAAS,EACflB,KAAK,CAACmB,eAAe,CAEzB,CAAC;EAED,OAAOlB,MAAM;AACf,CAAC","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
2
|
-
import {
|
|
2
|
+
import { ReactElement, ReactNode } from "react";
|
|
3
3
|
import { useWalletObserver } from "./hooks/useWalletObserver.js";
|
|
4
4
|
export type TRenderWalletFunctionState<T extends IAssetAmountMetadata = IAssetAmountMetadata> = ReturnType<typeof useWalletObserver<T>>;
|
|
5
5
|
export type TRenderWalletFunction<T extends IAssetAmountMetadata = IAssetAmountMetadata> = (state: TRenderWalletFunctionState<T>) => JSX.Element | ReactNode;
|
|
6
|
-
export interface IRenderWalletProps {
|
|
7
|
-
render: TRenderWalletFunction
|
|
6
|
+
export interface IRenderWalletProps<T extends IAssetAmountMetadata = IAssetAmountMetadata> {
|
|
7
|
+
render: TRenderWalletFunction<T>;
|
|
8
8
|
loader?: ReactNode;
|
|
9
9
|
fallback?: ReactElement;
|
|
10
10
|
}
|
|
@@ -14,5 +14,5 @@ export interface IRenderWalletProps {
|
|
|
14
14
|
* compose on this and include state for Handles, PeerConnect (CIP-45),
|
|
15
15
|
* and syncing state (RenderWalletState).
|
|
16
16
|
*/
|
|
17
|
-
export declare const RenderWallet:
|
|
17
|
+
export declare const RenderWallet: <T extends IAssetAmountMetadata = IAssetAmountMetadata>({ render, loader, fallback, }: IRenderWalletProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
18
18
|
//# sourceMappingURL=RenderWallet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderWallet.d.ts","sourceRoot":"","sources":["../../../src/react-components/RenderWallet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RenderWallet.d.ts","sourceRoot":"","sources":["../../../src/react-components/RenderWallet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,MAAM,0BAA0B,CACpC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IACnD,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5C,MAAM,MAAM,qBAAqB,CAC/B,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IACnD,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,kBAAkB,CACjC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB;IAErD,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,yFAMtB,mBAAmB,CAAC,CAAC,4CAevB,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
2
|
-
import {
|
|
2
|
+
import { ReactElement, ReactNode } from "react";
|
|
3
3
|
import { useWalletHandles } from "./hooks/useWalletHandles.js";
|
|
4
4
|
import { useWalletObserver } from "./hooks/useWalletObserver.js";
|
|
5
5
|
export type TRenderWalletHandlesFunctionState<T extends IAssetAmountMetadata = IAssetAmountMetadata> = ReturnType<typeof useWalletObserver<T>> & ReturnType<typeof useWalletHandles<T>>;
|
|
6
|
-
export type TRenderWalletHandlesFunction = (state: TRenderWalletHandlesFunctionState) => JSX.Element | ReactNode;
|
|
7
|
-
export interface IRenderWalletHandlesProps {
|
|
8
|
-
render: TRenderWalletHandlesFunction
|
|
6
|
+
export type TRenderWalletHandlesFunction<T extends IAssetAmountMetadata = IAssetAmountMetadata> = (state: TRenderWalletHandlesFunctionState<T>) => JSX.Element | ReactNode;
|
|
7
|
+
export interface IRenderWalletHandlesProps<T extends IAssetAmountMetadata = IAssetAmountMetadata> {
|
|
8
|
+
render: TRenderWalletHandlesFunction<T>;
|
|
9
9
|
loader?: ReactNode;
|
|
10
10
|
fallback?: ReactElement;
|
|
11
11
|
}
|
|
@@ -14,5 +14,5 @@ export interface IRenderWalletHandlesProps {
|
|
|
14
14
|
* fetching and updating wallet Handles with their extra
|
|
15
15
|
* metadata.
|
|
16
16
|
*/
|
|
17
|
-
export declare const RenderWalletHandles:
|
|
17
|
+
export declare const RenderWalletHandles: <T extends IAssetAmountMetadata = IAssetAmountMetadata>({ render, loader, fallback, }: IRenderWalletHandlesProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
18
18
|
//# sourceMappingURL=RenderWalletHandles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderWalletHandles.d.ts","sourceRoot":"","sources":["../../../src/react-components/RenderWalletHandles.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RenderWalletHandles.d.ts","sourceRoot":"","sources":["../../../src/react-components/RenderWalletHandles.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,MAAM,iCAAiC,CAC3C,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IACnD,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,GACzC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzC,MAAM,MAAM,4BAA4B,CACtC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IACnD,CAAC,KAAK,EAAE,iCAAiC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,yBAAyB,CACxC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB;IAErD,MAAM,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,yFAM7B,0BAA0B,CAAC,CAAC,4CAkB9B,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
2
|
-
import {
|
|
2
|
+
import { ReactElement, ReactNode } from "react";
|
|
3
3
|
import { useWalletObserver } from "./hooks/useWalletObserver.js";
|
|
4
4
|
import { useWalletPeerConnect } from "./hooks/useWalletPeerConnect.js";
|
|
5
5
|
export type TRenderWalletPeerConnectFunctionState<T extends IAssetAmountMetadata = IAssetAmountMetadata> = ReturnType<typeof useWalletObserver<T>> & ReturnType<typeof useWalletPeerConnect<T>>;
|
|
6
|
-
export type TRenderWalletPeerConnectFunction = (state: TRenderWalletPeerConnectFunctionState) => ReactNode;
|
|
7
|
-
export interface IRenderWalletPeerConnectProps {
|
|
8
|
-
render: TRenderWalletPeerConnectFunction
|
|
6
|
+
export type TRenderWalletPeerConnectFunction<T extends IAssetAmountMetadata = IAssetAmountMetadata> = (state: TRenderWalletPeerConnectFunctionState<T>) => ReactNode;
|
|
7
|
+
export interface IRenderWalletPeerConnectProps<T extends IAssetAmountMetadata = IAssetAmountMetadata> {
|
|
8
|
+
render: TRenderWalletPeerConnectFunction<T>;
|
|
9
9
|
loader?: ReactNode;
|
|
10
10
|
fallback?: ReactElement;
|
|
11
11
|
}
|
|
@@ -14,5 +14,5 @@ export interface IRenderWalletPeerConnectProps {
|
|
|
14
14
|
* and exposing them to the render function, including a QR Code
|
|
15
15
|
* element that can be placed in the consuming app.
|
|
16
16
|
*/
|
|
17
|
-
export declare const RenderWalletPeerConnect:
|
|
17
|
+
export declare const RenderWalletPeerConnect: <T extends IAssetAmountMetadata = IAssetAmountMetadata>({ render, loader, fallback, }: IRenderWalletPeerConnectProps<T>) => import("react/jsx-runtime").JSX.Element | null;
|
|
18
18
|
//# sourceMappingURL=RenderWalletPeerConnect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderWalletPeerConnect.d.ts","sourceRoot":"","sources":["../../../src/react-components/RenderWalletPeerConnect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RenderWalletPeerConnect.d.ts","sourceRoot":"","sources":["../../../src/react-components/RenderWalletPeerConnect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,MAAM,qCAAqC,CAC/C,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IACnD,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,GACzC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,MAAM,gCAAgC,CAC1C,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IACnD,CAAC,KAAK,EAAE,qCAAqC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;AAEnE,MAAM,WAAW,6BAA6B,CAC5C,CAAC,SAAS,oBAAoB,GAAG,oBAAoB;IAErD,MAAM,EAAE,gCAAgC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,yFAMjC,8BAA8B,CAAC,CAAC,mDAsBlC,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
2
|
-
import {
|
|
2
|
+
import { ReactElement, ReactNode } from "react";
|
|
3
3
|
import { useWalletLoadingState } from "./hooks/useWalletLoadingState.js";
|
|
4
4
|
import { useWalletObserver } from "./hooks/useWalletObserver.js";
|
|
5
5
|
export type TRenderWalletStateFunctionState<T extends IAssetAmountMetadata = IAssetAmountMetadata> = ReturnType<typeof useWalletObserver<T>> & ReturnType<typeof useWalletLoadingState<T>>;
|
|
6
|
-
export type TRenderWalletStateFunction = (state: TRenderWalletStateFunctionState) => JSX.Element | ReactNode;
|
|
7
|
-
export interface IRenderWalletStateProps {
|
|
8
|
-
render: TRenderWalletStateFunction
|
|
6
|
+
export type TRenderWalletStateFunction<T extends IAssetAmountMetadata = IAssetAmountMetadata> = (state: TRenderWalletStateFunctionState<T>) => JSX.Element | ReactNode;
|
|
7
|
+
export interface IRenderWalletStateProps<T extends IAssetAmountMetadata = IAssetAmountMetadata> {
|
|
8
|
+
render: TRenderWalletStateFunction<T>;
|
|
9
9
|
loader?: ReactNode;
|
|
10
10
|
fallback?: ReactElement;
|
|
11
11
|
}
|
|
@@ -15,5 +15,5 @@ export interface IRenderWalletStateProps {
|
|
|
15
15
|
* a sync or connection operation. Useful for displaying
|
|
16
16
|
* internal operation states of the wallet.
|
|
17
17
|
*/
|
|
18
|
-
export declare const RenderWalletState:
|
|
18
|
+
export declare const RenderWalletState: <T extends IAssetAmountMetadata = IAssetAmountMetadata>({ render, loader, fallback, }: IRenderWalletStateProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
19
19
|
//# sourceMappingURL=RenderWalletState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderWalletState.d.ts","sourceRoot":"","sources":["../../../src/react-components/RenderWalletState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RenderWalletState.d.ts","sourceRoot":"","sources":["../../../src/react-components/RenderWalletState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAG1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,MAAM,+BAA+B,CACzC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IACnD,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,GACzC,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9C,MAAM,MAAM,0BAA0B,CACpC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IACnD,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,uBAAuB,CACtC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB;IAErD,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,yFAM3B,wBAAwB,CAAC,CAAC,4CAqB5B,CAAC"}
|
package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { TransactionUnspentOutput } from "@cardano-sdk/core/dist/cjs/Serialization/index.js";
|
|
3
3
|
import { AssetAmount, IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
4
|
-
import {
|
|
4
|
+
import { TSupportedWalletExtensions } from "../../../@types/observer.js";
|
|
5
5
|
import { WalletBalanceMap } from "../../../classes/WalletBalanceMap.class.js";
|
|
6
6
|
import { WalletObserver } from "../../../classes/WalletObserver.class.js";
|
|
7
|
-
import { THandleMetadata } from "../../contexts/observer/index.js";
|
|
8
7
|
/**
|
|
9
8
|
* Internal use only. The main action that sync WalletObserver api responses with
|
|
10
9
|
* the React context of the WalletObserverProvider.
|
|
@@ -18,8 +17,6 @@ export declare const useWalletObserverState: <AssetMetadata extends IAssetAmount
|
|
|
18
17
|
setAdaBalance: import("react").Dispatch<import("react").SetStateAction<AssetAmount<AssetMetadata>>>;
|
|
19
18
|
balance: WalletBalanceMap<AssetMetadata>;
|
|
20
19
|
setBalance: import("react").Dispatch<import("react").SetStateAction<WalletBalanceMap<AssetMetadata>>>;
|
|
21
|
-
handles: TAssetAmountMap<THandleMetadata<AssetMetadata>>;
|
|
22
|
-
setHandles: import("react").Dispatch<import("react").SetStateAction<TAssetAmountMap<THandleMetadata<AssetMetadata>>>>;
|
|
23
20
|
isCip45: boolean;
|
|
24
21
|
setIsCip45: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
25
22
|
network: number | undefined;
|
package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map
CHANGED
|
@@ -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,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,
|
|
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,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAG1E;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,gFAGvB,eAAe,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;4BAsHtB,0BAA0B;;;;;CAmD5C,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IAssetAmountMetadata } from "@sundaeswap/asset";
|
|
2
|
-
import {
|
|
2
|
+
import { WalletAssetMap } from "../../classes/WalletAssetMap.class.js";
|
|
3
3
|
import { THandleMetadata } from "../contexts/observer/types.js";
|
|
4
4
|
export declare const useWalletHandles: <AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata>() => {
|
|
5
|
-
handles:
|
|
6
|
-
loadingHandles:
|
|
5
|
+
handles: WalletAssetMap<THandleMetadata<AssetMetadata>>;
|
|
6
|
+
loadingHandles: false;
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=useWalletHandles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletHandles.d.ts","sourceRoot":"","sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useWalletHandles.d.ts","sourceRoot":"","sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,eAAO,MAAM,gBAAgB;;;CA0G5B,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,KACH,wBAAwB,aAAa,CAAC,EACtC,OAAO,GAAG,kBAAkB,GAAG,eAAe,
|
|
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,KACH,wBAAwB,aAAa,CAAC,EACtC,OAAO,GAAG,kBAAkB,GAAG,eAAe,CAmD/C,CAAC"}
|