@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.
Files changed (49) hide show
  1. package/dist/cjs/react-components/RenderWallet.js +1 -3
  2. package/dist/cjs/react-components/RenderWallet.js.map +1 -1
  3. package/dist/cjs/react-components/RenderWalletHandles.js +1 -3
  4. package/dist/cjs/react-components/RenderWalletHandles.js.map +1 -1
  5. package/dist/cjs/react-components/RenderWalletPeerConnect.js.map +1 -1
  6. package/dist/cjs/react-components/RenderWalletState.js +2 -3
  7. package/dist/cjs/react-components/RenderWalletState.js.map +1 -1
  8. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +25 -33
  9. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  10. package/dist/cjs/react-components/hooks/useWalletHandles.js +128 -137
  11. package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
  12. package/dist/cjs/react-components/hooks/useWalletObserver.js +1 -2
  13. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  14. package/dist/esm/react-components/RenderWallet.js +1 -3
  15. package/dist/esm/react-components/RenderWallet.js.map +1 -1
  16. package/dist/esm/react-components/RenderWalletHandles.js +1 -3
  17. package/dist/esm/react-components/RenderWalletHandles.js.map +1 -1
  18. package/dist/esm/react-components/RenderWalletPeerConnect.js.map +1 -1
  19. package/dist/esm/react-components/RenderWalletState.js +2 -2
  20. package/dist/esm/react-components/RenderWalletState.js.map +1 -1
  21. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +1 -5
  22. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  23. package/dist/esm/react-components/hooks/useWalletHandles.js +62 -68
  24. package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
  25. package/dist/esm/react-components/hooks/useWalletObserver.js +1 -2
  26. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  27. package/dist/types/react-components/RenderWallet.d.ts +4 -4
  28. package/dist/types/react-components/RenderWallet.d.ts.map +1 -1
  29. package/dist/types/react-components/RenderWalletHandles.d.ts +5 -5
  30. package/dist/types/react-components/RenderWalletHandles.d.ts.map +1 -1
  31. package/dist/types/react-components/RenderWalletPeerConnect.d.ts +5 -5
  32. package/dist/types/react-components/RenderWalletPeerConnect.d.ts.map +1 -1
  33. package/dist/types/react-components/RenderWalletState.d.ts +5 -5
  34. package/dist/types/react-components/RenderWalletState.d.ts.map +1 -1
  35. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +1 -4
  36. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  37. package/dist/types/react-components/hooks/useWalletHandles.d.ts +3 -3
  38. package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
  39. package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
  40. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  41. package/package.json +7 -6
  42. package/src/react-components/RenderWallet.tsx +11 -7
  43. package/src/react-components/RenderWalletHandles.tsx +15 -11
  44. package/src/react-components/RenderWalletPeerConnect.tsx +14 -10
  45. package/src/react-components/RenderWalletState.tsx +16 -12
  46. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +1 -12
  47. package/src/react-components/__tests__/RenderWalletHandles.test.tsx +7 -3
  48. package/src/react-components/hooks/useWalletHandles.ts +92 -108
  49. 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 { FC, 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 state: TRenderWalletStateFunctionState,\n) => JSX.Element | ReactNode;\n\nexport interface IRenderWalletStateProps {\n render: TRenderWalletStateFunction;\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: FC<IRenderWalletStateProps> = ({\n render,\n loader,\n fallback = null,\n}) => {\n const state = useWalletObserver();\n const loadingState = useWalletLoadingState();\n\n return (\n <ErrorBoundary\n fallback={fallback}\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,SAAsCA,QAAQ,QAAQ,OAAO;AAE7D,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,iBAAiB,QAAQ,8BAA8B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAiBjE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAA8C,GAAGA,CAAC;EAC7DC,MAAM;EACNC,MAAM;EACNC,QAAQ,GAAG;AACb,CAAC,KAAK;EACJ,MAAMC,KAAK,GAAGP,iBAAiB,CAAC,CAAC;EACjC,MAAMQ,YAAY,GAAGT,qBAAqB,CAAC,CAAC;EAE5C,oBACEG,IAAA,CAACJ,aAAa;IACZQ,QAAQ,EAAEA,QAAS;IACnBG,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
+ {"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,
@@ -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":"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","ignoreList":[]}
@@ -1,79 +1,73 @@
1
- import { startTransition, useCallback, useDeferredValue, useEffect, useMemo, useState } from "react";
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 syncHandles = useCallback(async () => {
12
- const walletHandles = new WalletAssetMap([...state.balance.getHandles()]);
13
- if (walletHandles.size === 0) {
14
- return walletHandles;
15
- }
16
- try {
17
- setIsLoading(true);
18
- const {
19
- default: HandleClient,
20
- HandleClientContext,
21
- KoraLabsProvider
22
- } = await import("@koralabs/adahandle-sdk");
23
- const context = state.network === 1 ? HandleClientContext.MAINNET : HandleClientContext.PREVIEW;
24
- const sdk = new HandleClient({
25
- context,
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
- if (!handleMetadataChanged) {
65
- return prevHandles;
66
- }
67
- return newHandles;
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
- setIsLoading(() => false);
70
- });
71
- };
72
- fetchHandles();
73
- }, [memoizedHandleDep, syncHandles]);
74
- return {
75
- handles: deferredHandles,
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":["startTransition","useCallback","useDeferredValue","useEffect","useMemo","useState","WalletAssetMap","normalizeAssetIdWithDot","useWalletObserver","useWalletHandles","state","handles","setHandles","isLoading","setIsLoading","deferredHandles","memoizedHandleDep","balance","getHandles","keys","syncHandles","walletHandles","size","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","error","fetchHandles","newHandles","prevHandles","handleMetadataChanged","val","has","get","amount","loadingHandles"],"sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"sourcesContent":["import {\n startTransition,\n useCallback,\n useDeferredValue,\n useEffect,\n useMemo,\n useState,\n} 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 [handles, setHandles] = useState<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(state.handles);\n const [isLoading, setIsLoading] = useState(true);\n const deferredHandles = useDeferredValue(handles);\n\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 const walletHandles: TAssetAmountMap<THandleMetadata<AssetMetadata>> =\n new WalletAssetMap<THandleMetadata<AssetMetadata>>([\n ...state.balance.getHandles(),\n ]);\n\n if (walletHandles.size === 0) {\n return walletHandles;\n }\n\n try {\n setIsLoading(true);\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 = [...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.error(e);\n return walletHandles;\n }\n }, [state.balance, state.network]);\n\n useEffect(() => {\n const fetchHandles = async () => {\n const newHandles = await syncHandles();\n startTransition(() => {\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 setIsLoading(() => false);\n });\n };\n\n fetchHandles();\n }, [memoizedHandleDep, syncHandles]);\n\n return {\n handles: deferredHandles,\n loadingHandles: isLoading,\n };\n};\n"],"mappings":"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","ignoreList":[]}
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.handles, state.willAutoConnect]);
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","handles","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 handles: state.handles,\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.handles,\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,OAAO,EAAEnB,KAAK,CAACmB,OAAO;IACtBC,eAAe,EAAEpB,KAAK,CAACoB;EACzB,CAAC,CAAC,EACF,CACEpB,KAAK,CAACE,OAAO,EACbF,KAAK,CAACG,YAAY,EAClBH,KAAK,CAACI,UAAU,CAACiB,MAAM,EACvBrB,KAAK,CAACK,OAAO,CAACiB,IAAI,EAClBtB,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,OAAO,EACbnB,KAAK,CAACoB,eAAe,CAEzB,CAAC;EAED,OAAOnB,MAAM;AACf,CAAC","ignoreList":[]}
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 { FC, ReactElement, ReactNode } from "react";
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: FC<IRenderWalletProps>;
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,EAAE,EAAE,YAAY,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAG9D,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;IACjC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAmB/C,CAAC"}
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 { FC, ReactElement, ReactNode } from "react";
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: FC<IRenderWalletHandlesProps>;
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,EAAE,EAAE,YAAY,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAG9D,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,GAAG,CACzC,KAAK,EAAE,iCAAiC,KACrC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;AAE7B,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,4BAA4B,CAAC;IACrC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,yBAAyB,CAsB7D,CAAC"}
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 { FC, ReactElement, ReactNode } from "react";
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: FC<IRenderWalletPeerConnectProps>;
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,EAAE,EAAE,YAAY,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAG9D,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,GAAG,CAC7C,KAAK,EAAE,qCAAqC,KACzC,SAAS,CAAC;AAEf,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,gCAAgC,CAAC;IACzC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,6BAA6B,CA0BrE,CAAC"}
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 { FC, ReactElement, ReactNode } from "react";
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: FC<IRenderWalletStateProps>;
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,EAAE,EAAE,YAAY,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAG9D,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,GAAG,CACvC,KAAK,EAAE,+BAA+B,KACnC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;AAE7B,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,0BAA0B,CAAC;IACnC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,uBAAuB,CAyBzD,CAAC"}
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"}
@@ -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 { TAssetAmountMap, TSupportedWalletExtensions } from "../../../@types/observer.js";
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;
@@ -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,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,gFAGvB,eAAe,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;4BA0HtB,0BAA0B;;;;;CAqD5C,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,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 { TAssetAmountMap } from "../../@types/observer.js";
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: TAssetAmountMap<THandleMetadata<AssetMetadata>>;
6
- loadingHandles: boolean;
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":"AAUA,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;;;CAoH5B,CAAC"}
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,CAqD/C,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,KACH,wBAAwB,aAAa,CAAC,EACtC,OAAO,GAAG,kBAAkB,GAAG,eAAe,CAmD/C,CAAC"}