@sundaeswap/wallet-lite 0.0.75 → 0.0.77

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 (27) hide show
  1. package/dist/cjs/classes/WalletObserver.class.js +1 -1
  2. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  3. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +47 -47
  4. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  5. package/dist/cjs/react-components/hooks/index.js +11 -0
  6. package/dist/cjs/react-components/hooks/index.js.map +1 -1
  7. package/dist/cjs/react-components/hooks/useWalletData.js +95 -0
  8. package/dist/cjs/react-components/hooks/useWalletData.js.map +1 -0
  9. package/dist/esm/classes/WalletObserver.class.js +1 -1
  10. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  11. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +9 -9
  12. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  13. package/dist/esm/react-components/hooks/index.js +1 -0
  14. package/dist/esm/react-components/hooks/index.js.map +1 -1
  15. package/dist/esm/react-components/hooks/useWalletData.js +45 -0
  16. package/dist/esm/react-components/hooks/useWalletData.js.map +1 -0
  17. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  18. package/dist/types/react-components/hooks/index.d.ts +1 -0
  19. package/dist/types/react-components/hooks/index.d.ts.map +1 -1
  20. package/dist/types/react-components/hooks/useWalletData.d.ts +21 -0
  21. package/dist/types/react-components/hooks/useWalletData.d.ts.map +1 -0
  22. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  23. package/package.json +3 -2
  24. package/src/classes/WalletObserver.class.ts +1 -1
  25. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +14 -14
  26. package/src/react-components/hooks/index.ts +1 -0
  27. package/src/react-components/hooks/useWalletData.ts +89 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletObserverState.js","names":["_asset","require","_react","_WalletBalanceMapClass","_WalletObserverClass","_constants","_comparisons","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","Array","from","test","isArray","useWalletObserverState","exports","observer","_useState","useState","_useState2","activeWallet","setActiveWallet","_useState3","AssetAmount","_useState4","adaBalance","setAdaBalance","_useState5","WalletBalanceMap","_useState6","balance","setBalance","_useState7","_useState8","network","setNetwork","_useState9","_useState10","usedAddresses","setUsedAddresses","_useState11","_useState12","unusedAddresses","setUnusedAddresses","_useState13","_useState14","feeAddress","setFeeAddress","_useState15","_useState16","utxos","setUtxos","_useState17","_useState18","collateral","setCollateral","_useState19","_useState20","isCip45","setIsCip45","_useState21","_useState22","switching","setSwitching","_useState23","_useState24","errorSyncing","setErrorSyncing","_useTransition","useTransition","_useTransition2","isPending","startTransition","_useState25","Boolean","window","localStorage","getItem","WalletObserver","PERSISTENCE_CACHE_KEY","getOptions","persistence","_useState26","willAutoConnect","setWillAutoConnect","disconnect","useCallback","undefined","syncWallet","_callee","newWallet","freshData","_callee$","_context","isSyncing","hasActiveConnection","includes","prevWallet","sync","newBalanceMap","balanceMap","newAdaBalance","get","ADA_ASSET_ID","prevBalance","amount","areAssetMapsEqual","newUsedAddresses","prevValue","JSON","stringify","newUnusedAddresses","newNetwork","newUtxos","prevValueRep","map","toCbor","newValueRep","newCollateral","newFeeAddress","t0","cause","connectWallet","_ref2","_callee2","wallet","_callee2$","_context2","api","_x","useEffect","addEventListener"],"sources":["../../../../../src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/TransactionUnspentOutput.js\";\nimport { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useCallback, useEffect, useState, useTransition } from \"react\";\n\nimport { WalletBalanceMap } from \"../../../classes/WalletBalanceMap.class.js\";\nimport { WalletObserver } from \"../../../classes/WalletObserver.class.js\";\nimport { ADA_ASSET_ID } from \"../../../constants.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] = useState<string>();\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 [feeAddress, setFeeAddress] = useState<string | undefined>();\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 [errorSyncing, setErrorSyncing] = 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 setFeeAddress(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 setIsCip45(newWallet.includes(\"p2p\"));\n setActiveWallet((prevWallet) =>\n newWallet === prevWallet ? prevWallet : newWallet,\n );\n\n try {\n const freshData = await observer.sync();\n\n startTransition(() => {\n const newBalanceMap = freshData.balanceMap;\n if (newBalanceMap instanceof WalletBalanceMap) {\n const newAdaBalance = newBalanceMap.get(ADA_ASSET_ID);\n if (newAdaBalance) {\n setAdaBalance((prevBalance) =>\n prevBalance.amount === newAdaBalance.amount\n ? prevBalance\n : newAdaBalance,\n );\n\n setBalance((prevBalance) =>\n areAssetMapsEqual(prevBalance, newBalanceMap)\n ? prevBalance\n : newBalanceMap,\n );\n }\n }\n\n const newUsedAddresses = freshData.usedAddresses;\n if (newUsedAddresses instanceof Array) {\n setUsedAddresses((prevValue) => {\n return JSON.stringify(prevValue) ===\n JSON.stringify(newUsedAddresses)\n ? prevValue\n : newUsedAddresses;\n });\n }\n\n const newUnusedAddresses = freshData.unusedAddresses;\n if (newUnusedAddresses instanceof Array) {\n setUnusedAddresses((prevValue) =>\n JSON.stringify(prevValue) === JSON.stringify(newUnusedAddresses)\n ? prevValue\n : newUnusedAddresses,\n );\n }\n\n const newNetwork = freshData.network;\n if (typeof newNetwork === \"number\") {\n setNetwork((prevValue) =>\n prevValue === newNetwork ? prevValue : newNetwork,\n );\n }\n\n const newUtxos = freshData.utxos;\n if (newUtxos instanceof Array) {\n setUtxos((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = newUtxos?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return newUtxos;\n }\n\n return prevValue;\n });\n }\n\n const newCollateral = freshData.collateral;\n if (newCollateral instanceof Array) {\n setCollateral((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = newCollateral?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return newCollateral;\n }\n\n return prevValue;\n });\n }\n\n const newFeeAddress = freshData.feeAddress;\n if (typeof newFeeAddress === \"string\") {\n setFeeAddress((prevValue) =>\n prevValue === newFeeAddress ? prevValue : newFeeAddress,\n );\n }\n });\n } catch (e) {\n setErrorSyncing(true);\n (e as Error).cause =\n \"The wallet threw an error while the app was trying to sync with it. Please try again or contact your wallet provider.\";\n throw e;\n }\n }, [observer, disconnect]);\n\n const connectWallet = useCallback(\n async (wallet: string) => {\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 adaBalance,\n balance,\n collateral,\n connectWallet,\n disconnect,\n errorSyncing,\n feeAddress,\n isCip45,\n isPending,\n network,\n setActiveWallet,\n setAdaBalance,\n setBalance,\n setCollateral,\n setFeeAddress,\n setIsCip45,\n setNetwork,\n setSwitching,\n setUnusedAddresses,\n setUsedAddresses,\n setUtxos,\n switching,\n syncWallet,\n unusedAddresses,\n usedAddresses,\n utxos,\n willAutoConnect,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useWalletObserverState.js","names":["_asset","require","_react","_WalletBalanceMapClass","_WalletObserverClass","_constants","_comparisons","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","Array","from","test","isArray","useWalletObserverState","exports","observer","_useState","useState","_useState2","activeWallet","setActiveWallet","_useState3","AssetAmount","_useState4","adaBalance","setAdaBalance","_useState5","WalletBalanceMap","_useState6","balance","setBalance","_useState7","_useState8","network","setNetwork","_useState9","_useState10","usedAddresses","setUsedAddresses","_useState11","_useState12","unusedAddresses","setUnusedAddresses","_useState13","_useState14","feeAddress","setFeeAddress","_useState15","_useState16","utxos","setUtxos","_useState17","_useState18","collateral","setCollateral","_useState19","_useState20","isCip45","setIsCip45","_useState21","_useState22","switching","setSwitching","_useState23","_useState24","errorSyncing","setErrorSyncing","_useTransition","useTransition","_useTransition2","isPending","startTransition","_useState25","Boolean","window","localStorage","getItem","WalletObserver","PERSISTENCE_CACHE_KEY","getOptions","persistence","_useState26","willAutoConnect","setWillAutoConnect","disconnect","useCallback","undefined","connectWallet","_ref","_callee","wallet","_callee$","_context","hasActiveConnection","syncWallet","api","_x","_callee2","newWallet","freshData","_callee2$","_context2","isSyncing","includes","prevWallet","sync","newBalanceMap","balanceMap","newAdaBalance","get","ADA_ASSET_ID","prevBalance","amount","areAssetMapsEqual","newUsedAddresses","prevValue","JSON","stringify","newUnusedAddresses","newNetwork","newUtxos","prevValueRep","map","toCbor","newValueRep","newCollateral","newFeeAddress","t0","cause","useEffect","addEventListener"],"sources":["../../../../../src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/TransactionUnspentOutput.js\";\nimport { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useCallback, useEffect, useState, useTransition } from \"react\";\n\nimport { WalletBalanceMap } from \"../../../classes/WalletBalanceMap.class.js\";\nimport { WalletObserver } from \"../../../classes/WalletObserver.class.js\";\nimport { ADA_ASSET_ID } from \"../../../constants.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] = useState<string>();\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 [feeAddress, setFeeAddress] = useState<string | undefined>();\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 [errorSyncing, setErrorSyncing] = 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 setFeeAddress(undefined);\n setIsCip45(false);\n setWillAutoConnect(false);\n }, [observer]);\n\n const connectWallet = useCallback(\n async (wallet: string) => {\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 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 setIsCip45(newWallet.includes(\"p2p\"));\n setActiveWallet((prevWallet) =>\n newWallet === prevWallet ? prevWallet : newWallet,\n );\n\n try {\n const freshData = await observer.sync();\n\n startTransition(() => {\n const newBalanceMap = freshData.balanceMap;\n if (newBalanceMap instanceof WalletBalanceMap) {\n const newAdaBalance = newBalanceMap.get(ADA_ASSET_ID);\n if (newAdaBalance) {\n setAdaBalance((prevBalance) =>\n prevBalance.amount === newAdaBalance.amount\n ? prevBalance\n : newAdaBalance,\n );\n\n setBalance((prevBalance) =>\n areAssetMapsEqual(prevBalance, newBalanceMap)\n ? prevBalance\n : newBalanceMap,\n );\n }\n }\n\n const newUsedAddresses = freshData.usedAddresses;\n if (newUsedAddresses instanceof Array) {\n setUsedAddresses((prevValue) => {\n return JSON.stringify(prevValue) ===\n JSON.stringify(newUsedAddresses)\n ? prevValue\n : newUsedAddresses;\n });\n }\n\n const newUnusedAddresses = freshData.unusedAddresses;\n if (newUnusedAddresses instanceof Array) {\n setUnusedAddresses((prevValue) =>\n JSON.stringify(prevValue) === JSON.stringify(newUnusedAddresses)\n ? prevValue\n : newUnusedAddresses,\n );\n }\n\n const newNetwork = freshData.network;\n if (typeof newNetwork === \"number\") {\n setNetwork((prevValue) =>\n prevValue === newNetwork ? prevValue : newNetwork,\n );\n }\n\n const newUtxos = freshData.utxos;\n if (newUtxos instanceof Array) {\n setUtxos((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = newUtxos?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return newUtxos;\n }\n\n return prevValue;\n });\n }\n\n const newCollateral = freshData.collateral;\n if (newCollateral instanceof Array) {\n setCollateral((prevValue) => {\n const prevValueRep = prevValue?.map((v) => v.toCbor());\n const newValueRep = newCollateral?.map((v) => v.toCbor());\n if (prevValueRep !== newValueRep) {\n return newCollateral;\n }\n\n return prevValue;\n });\n }\n\n const newFeeAddress = freshData.feeAddress;\n if (typeof newFeeAddress === \"string\") {\n setFeeAddress((prevValue) =>\n prevValue === newFeeAddress ? prevValue : newFeeAddress,\n );\n }\n });\n } catch (e) {\n setErrorSyncing(true);\n (e as Error).cause =\n \"The wallet threw an error while the app was trying to sync with it. Please try again or contact your wallet provider.\";\n throw e;\n }\n }, [observer, disconnect]);\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 adaBalance,\n balance,\n collateral,\n connectWallet,\n disconnect,\n errorSyncing,\n feeAddress,\n isCip45,\n isPending,\n network,\n setActiveWallet,\n setAdaBalance,\n setBalance,\n setCollateral,\n setFeeAddress,\n setIsCip45,\n setNetwork,\n setSwitching,\n setUnusedAddresses,\n setUsedAddresses,\n setUtxos,\n switching,\n syncWallet,\n unusedAddresses,\n usedAddresses,\n utxos,\n willAutoConnect,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,17 @@ Object.keys(_useAvailableExtensions).forEach(function (key) {
14
14
  }
15
15
  });
16
16
  });
17
+ var _useWalletData = require("./useWalletData.js");
18
+ Object.keys(_useWalletData).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _useWalletData[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _useWalletData[key];
25
+ }
26
+ });
27
+ });
17
28
  var _useWalletHandles = require("./useWalletHandles.js");
18
29
  Object.keys(_useWalletHandles).forEach(function (key) {
19
30
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_useAvailableExtensions","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useWalletHandles","_useWalletLoadingState","_useWalletObserver","_useWalletPeerConnect"],"sources":["../../../../src/react-components/hooks/index.ts"],"sourcesContent":["export * from \"./useAvailableExtensions.js\";\nexport * from \"./useWalletHandles.js\";\nexport * from \"./useWalletLoadingState.js\";\nexport * from \"./useWalletObserver.js\";\nexport * from \"./useWalletPeerConnect.js\";\n"],"mappings":";;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,uBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,uBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,uBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,iBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,iBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,iBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,iBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,sBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,sBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,sBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,sBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,kBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,kBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,kBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,kBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,qBAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,qBAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,qBAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAI,qBAAA,CAAAR,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_useAvailableExtensions","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useWalletData","_useWalletHandles","_useWalletLoadingState","_useWalletObserver","_useWalletPeerConnect"],"sources":["../../../../src/react-components/hooks/index.ts"],"sourcesContent":["export * from \"./useAvailableExtensions.js\";\nexport * from \"./useWalletData.js\";\nexport * from \"./useWalletHandles.js\";\nexport * from \"./useWalletLoadingState.js\";\nexport * from \"./useWalletObserver.js\";\nexport * from \"./useWalletPeerConnect.js\";\n"],"mappings":";;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,uBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,uBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,uBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,cAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,cAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,cAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,cAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,iBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,iBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,iBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,iBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,sBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,sBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,sBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,sBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,kBAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,kBAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,kBAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAI,kBAAA,CAAAR,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,qBAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,qBAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAS,qBAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAK,qBAAA,CAAAT,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useWalletData = void 0;
8
+ var _react = require("react");
9
+ var _useWalletObserver = require("./useWalletObserver");
10
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
13
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
14
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
15
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
18
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
20
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
21
+ var useWalletData = exports.useWalletData = function useWalletData() {
22
+ var state = (0, _useWalletObserver.useWalletObserver)();
23
+ var _useState = (0, _react.useState)(),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ signedData = _useState2[0],
26
+ setSignedData = _useState2[1];
27
+ var signData = (0, _react.useCallback)( /*#__PURE__*/function () {
28
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
29
+ var _keySign$header;
30
+ var signingAddress, payload, _yield$Promise$all, _yield$Promise$all2, Cardano, Ed25519Signature, _yield$Promise$all2$, COSESign1, COSEKey, Int, BigNum, Label, response, coseSign1, keySign, labelInt, data;
31
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
32
+ while (1) switch (_context.prev = _context.next) {
33
+ case 0:
34
+ signingAddress = _ref.signingAddress, payload = _ref.payload;
35
+ if (state.observer.api) {
36
+ _context.next = 3;
37
+ break;
38
+ }
39
+ return _context.abrupt("return");
40
+ case 3:
41
+ _context.next = 5;
42
+ return Promise.all([Promise.resolve().then(function () {
43
+ return _interopRequireWildcard(require("@cardano-sdk/core"));
44
+ }), Promise.resolve().then(function () {
45
+ return _interopRequireWildcard(require("@cardano-sdk/crypto"));
46
+ }), Promise.resolve().then(function () {
47
+ return _interopRequireWildcard(require("@emurgo/cardano-message-signing-nodejs"));
48
+ })]);
49
+ case 5:
50
+ _yield$Promise$all = _context.sent;
51
+ _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 3);
52
+ Cardano = _yield$Promise$all2[0].Cardano;
53
+ Ed25519Signature = _yield$Promise$all2[1].Ed25519Signature;
54
+ _yield$Promise$all2$ = _yield$Promise$all2[2];
55
+ COSESign1 = _yield$Promise$all2$.COSESign1;
56
+ COSEKey = _yield$Promise$all2$.COSEKey;
57
+ Int = _yield$Promise$all2$.Int;
58
+ BigNum = _yield$Promise$all2$.BigNum;
59
+ Label = _yield$Promise$all2$.Label;
60
+ _context.next = 17;
61
+ return state.observer.api.signData(Buffer.from(Cardano.Address.fromBech32(signingAddress).toBytes()).toString("hex"), Buffer.from(typeof payload === "string" ? payload : JSON.stringify(payload, null, 0), "utf-8").toString("hex"));
62
+ case 17:
63
+ response = _context.sent;
64
+ coseSign1 = COSESign1.from_bytes(new Uint8Array(Buffer.from(response.signature, "hex")));
65
+ keySign = COSEKey.from_bytes(new Uint8Array(Buffer.from(response.key, "hex")));
66
+ labelInt = Int.new_negative(BigNum.from_str("2"));
67
+ data = {
68
+ payload: Buffer.from(coseSign1.signed_data().to_bytes()).toString("hex"),
69
+ signature: Ed25519Signature.fromBytes(coseSign1.signature()).hex(),
70
+ key: Buffer.from(((_keySign$header = keySign.header(Label.new_int(labelInt))) === null || _keySign$header === void 0 ? void 0 : _keySign$header.as_bytes()) || []).toString("hex"),
71
+ rawData: {
72
+ cborKey: response.key,
73
+ cborSignature: response.signature
74
+ }
75
+ };
76
+ setSignedData(data);
77
+ return _context.abrupt("return", data);
78
+ case 24:
79
+ case "end":
80
+ return _context.stop();
81
+ }
82
+ }, _callee);
83
+ }));
84
+ return function (_x) {
85
+ return _ref2.apply(this, arguments);
86
+ };
87
+ }(), [state.observer.api]);
88
+ return (0, _react.useMemo)(function () {
89
+ return {
90
+ signData: signData,
91
+ signedData: signedData
92
+ };
93
+ }, [signData, signedData]);
94
+ };
95
+ //# sourceMappingURL=useWalletData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWalletData.js","names":["_react","require","_useWalletObserver","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","_getRequireWildcardCache","WeakMap","_interopRequireWildcard","__esModule","has","get","getOwnPropertyDescriptor","set","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","Array","from","test","isArray","useWalletData","exports","state","useWalletObserver","_useState","useState","_useState2","signedData","setSignedData","signData","useCallback","_ref2","_callee","_ref","_keySign$header","signingAddress","payload","_yield$Promise$all","_yield$Promise$all2","Cardano","Ed25519Signature","_yield$Promise$all2$","COSESign1","COSEKey","Int","BigNum","Label","response","coseSign1","keySign","labelInt","data","_callee$","_context","observer","api","all","Buffer","Address","fromBech32","toBytes","JSON","stringify","from_bytes","Uint8Array","signature","key","new_negative","from_str","signed_data","to_bytes","fromBytes","hex","header","new_int","as_bytes","rawData","cborKey","cborSignature","_x","useMemo"],"sources":["../../../../src/react-components/hooks/useWalletData.ts"],"sourcesContent":["import { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { useCallback, useMemo, useState } from \"react\";\nimport { useWalletObserver } from \"./useWalletObserver\";\n\nexport interface ISignedData {\n payload: string;\n signature: string;\n key: string;\n rawData: {\n cborKey: string;\n cborSignature: string;\n };\n}\n\nexport interface ISignDataParams<T = object | string> {\n payload: T;\n signingAddress: string;\n connectedWallet: Cip30WalletApi;\n}\n\nexport const useWalletData = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>() => {\n const state = useWalletObserver<AssetMetadata>();\n const [signedData, setSignedData] = useState<ISignedData>();\n\n const signData = useCallback(\n async ({ signingAddress, payload }: ISignDataParams) => {\n if (!state.observer.api) {\n return;\n }\n\n const [\n { Cardano },\n { Ed25519Signature },\n { COSESign1, COSEKey, Int, BigNum, Label },\n ] = await Promise.all([\n import(\"@cardano-sdk/core\"),\n import(\"@cardano-sdk/crypto\"),\n import(\"@emurgo/cardano-message-signing-nodejs\"),\n ]);\n\n const response = await state.observer.api.signData(\n Buffer.from(\n Cardano.Address.fromBech32(signingAddress).toBytes(),\n ).toString(\"hex\"),\n Buffer.from(\n typeof payload === \"string\"\n ? payload\n : JSON.stringify(payload, null, 0),\n \"utf-8\",\n ).toString(\"hex\"),\n );\n\n const coseSign1 = COSESign1.from_bytes(\n new Uint8Array(Buffer.from(response.signature, \"hex\")),\n );\n const keySign = COSEKey.from_bytes(\n new Uint8Array(Buffer.from(response.key, \"hex\")),\n );\n const labelInt = Int.new_negative(BigNum.from_str(\"2\"));\n\n const data: ISignedData = {\n payload: Buffer.from(coseSign1.signed_data().to_bytes()).toString(\n \"hex\",\n ),\n signature: Ed25519Signature.fromBytes(coseSign1.signature()).hex(),\n key: Buffer.from(\n keySign.header(Label.new_int(labelInt))?.as_bytes() || [],\n ).toString(\"hex\"),\n rawData: { cborKey: response.key, cborSignature: response.signature },\n };\n\n setSignedData(data);\n return data;\n },\n [state.observer.api],\n );\n\n return useMemo(\n () => ({\n signData,\n signedData,\n }),\n [signData, signedData],\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -387,7 +387,7 @@ export class WalletObserver extends WalletObserverEvent {
387
387
  }
388
388
  const start = performance.now();
389
389
  try {
390
- const address = this.api.experimental?.feeAddress();
390
+ const address = this.api.experimental?.feeAddress;
391
391
  const end = performance.now();
392
392
  if (this._options.debug) {
393
393
  console.log(`getFeeAddress: ${end - start}ms`);
@@ -1 +1 @@
1
- {"version":3,"file":"WalletObserver.class.js","names":["APIErrorCode","AssetAmount","merge","EWalletObserverEvents","ADA_ASSET_ID","isAdaAsset","normalizeAssetIdWithDot","getCardanoCore","getCardanoUtil","getPeerConnect","WalletBalanceMap","WalletObserverEvent","WalletObserverUtils","WalletObserver","constructor","options","_defineProperty","Map","api","Error","start","performance","now","_performingSync","dispatch","SYNCING_WALLET_START","newNetwork","getNetwork","syncApi","SYNCING_WALLET_END","CONNECT_WALLET_END","newBalanceMap","newUsedAddresses","newUnusedAddresses","newOutputs","newCollateral","newFeeAddress","Promise","all","getBalanceMap","getUsedAddresses","getUnusedAddresses","getUtxos","getCollateral","getFeeAddress","result","balanceMap","usedAddresses","unusedAddresses","utxos","collateral","network","feeAddress","end","_options","debug","console","log","e","activeWallet","selectedWallet","attempts","shouldContinue","cardano","window","parent","enable","getNetworkId","includes","message","code","Refused","undefined","res","setTimeout","extension","CONNECT_WALLET_START","extensionObject","peerConnectInstance","shutdownServer","connectTimeout","persistence","addresses","cause","seed","mainAddress","localStorage","setItem","PERSISTENCE_CACHE_KEY","JSON","stringify","DAppPeerConnect","peerConnectArgs","name","dAppInfo","icon","getIdenticon","instance","_cachedMetadata","removeItem","DISCONNECT","GET_BALANCE_MAP_START","Serialization","typedHex","cbor","getBalance","data","Value","fromCbor","multiassetKeys","multiasset","keys","metadata","__metadataResolverWithCache","set","coin","get","multiassetEntries","entries","id","amount","GET_BALANCE_MAP_END","val","Cardano","map","Address","fromBytes","toBech32","txOutput","TransactionUnspentOutput","input","bind","output","address","experimental","funcCall","assetIds","cachedKeys","Set","inputKeys","size","every","key","has","newMetadata","metadataResolver","normalizeAssetId","fallbackMetadataResolver","forEach","assetId","decimals","url","location","hostname","onApiEject","disconnect","onApiInject","connectWallet","verifyConnection","walletInfo","callback","requestAutoconnect","useWalletDiscovery","announce","isSyncing","hasActiveConnection","Boolean","getUtils","utils","new"],"sources":["../../../src/classes/WalletObserver.class.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport {\n APIErrorCode,\n type ApiError,\n type Cip30WalletApi,\n type GetCollateral,\n} from \"@cardano-sdk/dapp-connector\";\nimport { AssetAmount, type IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport merge from \"lodash/merge.js\";\n\nimport { EWalletObserverEvents } from \"../@types/events.js\";\nimport type {\n IResolvedWalletObserverOptions,\n IWalletObserverSeed,\n IWalletObserverSync,\n TMetadataResolverFunc,\n TWalletObserverOptions,\n} from \"../@types/observer.js\";\nimport { ADA_ASSET_ID } from \"../constants.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\nimport {\n getCardanoCore,\n getCardanoUtil,\n getPeerConnect,\n} from \"../utils/getLibs.js\";\nimport { WalletBalanceMap } from \"./WalletBalanceMap.class.js\";\nimport { WalletObserverEvent } from \"./WalletObserverEvent.js\";\nimport { WalletObserverUtils } from \"./WalletObserverUtils.class.js\";\n\n/**\n * Class representing the Wallet Observer. This is the main interface\n * for interacting with a wallet extension that is available in the\n * browser window. It handles all the deserialization required when\n * querying raw data from a CIP-30 API, and converts it to readable and\n * usable interfaces.\n *\n * Notably, it extends the WalletObserverEvent class which\n * acts as an internal event handler to hook into actions, such as connecting,\n * syncing, and disconnecting.\n *\n * @template AssetMetadata - Type extending IAssetAmountMetadata.\n * @extends {WalletObserverEvent}\n */\nexport class WalletObserver<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> extends WalletObserverEvent {\n static PERSISTENCE_CACHE_KEY = \"walletObserver\";\n public network: number = 0;\n public api?: Cip30WalletApi;\n public activeWallet?: string;\n public utils?: WalletObserverUtils;\n public peerConnectInstance?: import(\"@fabianbormann/cardano-peer-connect\").DAppPeerConnect;\n\n private _performingSync: boolean = false;\n private _options: IResolvedWalletObserverOptions<AssetMetadata>;\n\n // Caching\n private _cachedMetadata: Map<string, AssetMetadata> = new Map();\n\n /**\n * Creates an instance of WalletObserver.\n *\n * @param {Partial<TWalletObserverOptions<AssetMetadata>>} [options] - Options for the wallet observer.\n */\n constructor(options?: Partial<TWalletObserverOptions<AssetMetadata>>) {\n super();\n\n // Set options.\n this._options = merge<IResolvedWalletObserverOptions, typeof options>(\n {\n metadataResolver: this.fallbackMetadataResolver,\n persistence: false,\n connectTimeout: 10000,\n debug: false,\n peerConnectArgs: {\n dAppInfo: {\n name: \"Placeholder dApp Connecter Name\",\n url: window.location.hostname,\n },\n onApiEject: (name, address) => {\n options?.peerConnectArgs?.onApiEject?.(name, address);\n this.disconnect();\n },\n onApiInject: (name, address) => {\n options?.peerConnectArgs?.onApiInject?.(name, address);\n this.connectWallet(name);\n },\n verifyConnection(walletInfo, callback) {\n return callback(true, walletInfo.requestAutoconnect ?? true);\n },\n useWalletDiscovery: true,\n announce: [\n \"wss://tracker.de-5.eternl.art\",\n \"wss://tracker.de-6.eternl.art\",\n \"wss://tracker.us-5.eternl.art\",\n ],\n },\n },\n options,\n );\n\n if (!this._options.persistence) {\n return;\n }\n }\n\n /**\n * Synchronizes the wallet. This method handles syncing the class\n * against the currently selected active wallet. If the wallet has\n * changed networks, or if the account within the wallet has changed,\n * this method will automatically attempt to reconcile this error before\n * eventually throwing.\n *\n * In the event that a promise will not resolve due to external issues,\n * after 7 seconds, a timeout function will fire that resets the API and tries again.\n *\n * @returns {Promise<IWalletObserverSync<AssetMetadata>>} - A promise that resolves to the wallet sync data.\n */\n sync = async (): Promise<IWalletObserverSync<AssetMetadata>> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to perform a sync operation without a connected wallet.\",\n );\n }\n\n const start = performance.now();\n\n try {\n this._performingSync = true;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_START);\n\n let newNetwork = await this.getNetwork();\n if (newNetwork instanceof Error) {\n await this.syncApi();\n newNetwork = await this.getNetwork();\n\n if (newNetwork instanceof Error) {\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n this._performingSync = false;\n throw newNetwork;\n }\n }\n\n const [\n newBalanceMap,\n newUsedAddresses,\n newUnusedAddresses,\n newOutputs,\n newCollateral,\n newFeeAddress,\n ] = await Promise.all([\n this.getBalanceMap(),\n this.getUsedAddresses(),\n this.getUnusedAddresses(),\n this.getUtxos(),\n this.getCollateral(),\n this.getFeeAddress(),\n ]);\n\n const result: IWalletObserverSync<AssetMetadata> = {\n balanceMap: newBalanceMap,\n usedAddresses: newUsedAddresses,\n unusedAddresses: newUnusedAddresses,\n utxos: newOutputs,\n collateral: newCollateral,\n network: newNetwork,\n feeAddress: newFeeAddress,\n };\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`sync: ${end - start}ms`);\n }\n\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n this._performingSync = false;\n return result;\n } catch (e) {\n this._performingSync = false;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n throw e;\n }\n };\n\n /**\n * Helper method to check if the class is currently performing a sync\n * operation. This is useful to avoid duplicate calls, but does not\n * prevent it within the class.\n *\n * @returns {boolean}\n */\n isSyncing(): boolean {\n return this._performingSync;\n }\n\n /**\n * Helper method to check if the instance has an active connection.\n *\n * @returns {boolean}\n */\n hasActiveConnection(): boolean {\n return Boolean(this.activeWallet && this.api);\n }\n\n /**\n * Synchronizes the API with the wallet. This is useful if the account has changed,\n * but the underlying intent has not.\n *\n * @param {string} [activeWallet] - The wallet to sync with.\n * @returns {Promise<Cip30WalletApi | undefined>} - A promise that resolves to the API instance.\n */\n syncApi = async (\n activeWallet?: string,\n ): Promise<Cip30WalletApi | undefined> => {\n if (!activeWallet && !this.activeWallet) {\n throw new Error(\n \"A wallet is required to be passed as a parameter, or to be defined in the class.\",\n );\n }\n\n const selectedWallet = (activeWallet || this.activeWallet) as string;\n\n let attempts = 0;\n let shouldContinue = true;\n\n while (shouldContinue) {\n if (attempts === 10) {\n throw new Error(\n \"Could not reconnect to the selected wallet. Please check your extension.\",\n );\n }\n\n try {\n const cardano = window?.cardano || window?.parent?.cardano;\n const api = await cardano?.[selectedWallet]?.enable();\n\n if (!api) {\n throw Error;\n }\n\n this.api = api;\n this.network = await api.getNetworkId();\n shouldContinue = false;\n } catch (e) {\n if (\n [\n \"user canceled connection\",\n \"User declined to sign the data.\",\n ].includes((e as Error)?.message) ||\n (e as ApiError)?.code === APIErrorCode.Refused\n ) {\n shouldContinue = false;\n return undefined;\n }\n\n await new Promise((res) => setTimeout(res, 200));\n attempts++;\n }\n }\n\n return this.api;\n };\n\n /**\n * Gets the options for the wallet observer.\n *\n * @returns {TWalletObserverOptions} - The wallet observer options.\n */\n getOptions = (): TWalletObserverOptions => {\n return this._options;\n };\n\n /**\n * Attempts to connect a wallet using the global window\n * reference. If no reference is found, it will retry for\n * 10 seconds before throw an error.\n *\n * @param {string} extension The name of the extension to enable.\n * @return {Promise<void>}\n */\n connectWallet = async (extension: string): Promise<void> => {\n const start = performance.now();\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_START);\n\n let attempts = 0;\n let extensionObject = window.cardano?.[extension];\n\n // Disconnect any CIP45 connections.\n if (!extension?.includes(\"p2p\")) {\n this.peerConnectInstance?.shutdownServer();\n }\n\n while (typeof extensionObject === \"undefined\") {\n if (attempts === 40) {\n break;\n }\n\n await new Promise((res) =>\n setTimeout(res, (this._options.connectTimeout as number) / 40),\n );\n extensionObject = window.cardano?.[extension];\n attempts++;\n }\n\n if (!extensionObject) {\n throw new Error(\"Wallet extension not found in the global context.\");\n }\n\n const api = await this.syncApi(extension);\n\n this.activeWallet = extension;\n if (this._options.persistence && api) {\n const addresses = await this.getUsedAddresses();\n if (addresses instanceof Error) {\n addresses.cause =\n \"Could not get a list of used addresses from the wallet when trying to save the connection.\";\n throw addresses;\n }\n\n const seed: IWalletObserverSeed = {\n activeWallet: extension,\n mainAddress: addresses[0],\n };\n\n window.localStorage.setItem(\n WalletObserver.PERSISTENCE_CACHE_KEY,\n JSON.stringify(seed),\n );\n }\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`connectWallet: ${end - start}ms`);\n }\n };\n\n getCip45Instance = async () => {\n const start = performance.now();\n if (!this.peerConnectInstance) {\n const DAppPeerConnect = await getPeerConnect();\n this.peerConnectInstance = new DAppPeerConnect(\n this._options.peerConnectArgs,\n );\n }\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCip45Instance: ${end - start}ms`);\n }\n\n return {\n name: this._options.peerConnectArgs.dAppInfo.name,\n icon: this.peerConnectInstance.getIdenticon(),\n instance: this.peerConnectInstance,\n };\n };\n\n /**\n * Helper function to retrieve the currently cached metadata.\n *\n * @returns {Map<string, AssetMetadata>}\n */\n getCachedAssetMetadata = (): Map<string, AssetMetadata> =>\n this._cachedMetadata;\n\n /**\n * Helper function to restore the class instance to its initial state.\n *\n * @returns {void}\n */\n disconnect = (): void => {\n this.activeWallet = undefined;\n this.api = undefined;\n window.localStorage.removeItem(WalletObserver.PERSISTENCE_CACHE_KEY);\n this.dispatch(EWalletObserverEvents.DISCONNECT);\n };\n\n /**\n * Retrieves the balance of the wallet, including metadata for each asset.\n *\n * @returns {Promise<WalletBalanceMap<AssetMetadata>>} - A promise that resolves to a map of asset amounts keyed by asset IDs.\n */\n getBalanceMap = async (): Promise<\n WalletBalanceMap<AssetMetadata> | Error\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query balance without an API instance.\");\n }\n\n const start = performance.now();\n\n this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_START);\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string;\n try {\n cbor = await this.api.getBalance();\n } catch (e) {\n return e as Error;\n }\n const data = Serialization.Value.fromCbor(typedHex(cbor));\n const multiassetKeys = data.multiasset()?.keys() ?? [];\n\n const metadata = await this.__metadataResolverWithCache([\n ADA_ASSET_ID,\n ...multiassetKeys,\n ]);\n\n const balanceMap = new WalletBalanceMap<AssetMetadata>(this);\n balanceMap.set(\n ADA_ASSET_ID,\n new AssetAmount(data.coin(), metadata.get(ADA_ASSET_ID)),\n );\n\n const multiassetEntries = data.multiasset()?.entries() ?? [];\n if (multiassetEntries) {\n for (const [id, amount] of multiassetEntries) {\n balanceMap.set(\n normalizeAssetIdWithDot(id),\n new AssetAmount(amount, metadata.get(normalizeAssetIdWithDot(id))),\n );\n }\n }\n\n this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_END, {\n balanceMap,\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getBalanceMap: ${end - start}ms`);\n }\n\n return balanceMap;\n };\n\n /**\n * Gets the current network connection.\n *\n * @returns {Promise<number | Error>} The network ID or an Error from the wallet.\n */\n getNetwork = async (): Promise<number | Error> => {\n if (!this.api) {\n throw new Error(\"Attempted to query network without an API instance.\");\n }\n\n const start = performance.now();\n\n let val: number;\n try {\n val = await this.api.getNetworkId();\n } catch (e) {\n return e as Error;\n }\n\n this.network = val;\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getNetwork: ${end - start}ms`);\n }\n return val;\n };\n\n /**\n * Gets a list of used addresses, encoded as Bech32.\n *\n * @returns {Promise<string[]>} The list of addresses.\n */\n getUsedAddresses = async (): Promise<string[] | Error> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query used addresses without an API instance.\",\n );\n }\n\n const start = performance.now();\n\n const [{ Cardano }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[];\n try {\n cbor = await this.api.getUsedAddresses();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor.map((val) =>\n Cardano.Address.fromBytes(typedHex(val)).toBech32(),\n );\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUsedAddresses: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets a list of unused addresses, encoded as Bech32.\n *\n * @returns {Promise<string[] | Error>} The list of addresses or an Error returned by the wallet.\n */\n getUnusedAddresses = async (): Promise<string[] | Error> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query unused addresses without an API instance.\",\n );\n }\n\n const start = performance.now();\n\n const [{ Cardano }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[];\n try {\n cbor = await this.api.getUnusedAddresses();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor.map((val) =>\n Cardano.Address.fromBytes(typedHex(val)).toBech32(),\n );\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUnusedAddresses: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets a list of wallet UTXOs.\n *\n * @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.\n */\n getUtxos = async (): Promise<\n TransactionUnspentOutput[] | Error | undefined\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query UTXOs without an API instance.\");\n }\n\n const start = performance.now();\n\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[] | null;\n try {\n cbor = await this.api.getUtxos();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor?.map((val) => {\n const txOutput = Serialization.TransactionUnspentOutput.fromCbor(\n typedHex(val),\n );\n\n // These methods must be bound to their initial creation instance.\n txOutput.input = txOutput.input.bind(txOutput);\n txOutput.output = txOutput.output.bind(txOutput);\n return txOutput;\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUtxos: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets the fee address set by the wallet, if available.\n *\n * @returns {Promise<string | Error | undefined>} The fee address or an Error.\n */\n getFeeAddress = async (): Promise<string | Error | undefined> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query fee address without an API instance.\",\n );\n }\n\n const start = performance.now();\n try {\n const address = this.api.experimental?.feeAddress();\n const end = performance.now();\n\n if (this._options.debug) {\n console.log(`getFeeAddress: ${end - start}ms`);\n }\n\n return address;\n } catch (e) {\n return e as Error;\n }\n };\n\n /**\n * Gets a list of wallet UTXOs suitable for collateral.\n *\n * @returns {Promise<TransactionUnspentOutput[] | Error | undefined>} The list of TransactionUnspentOutputs, if there are any, or an Error.\n */\n getCollateral = async (): Promise<\n TransactionUnspentOutput[] | Error | undefined\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query UTXOs without an API instance.\");\n }\n\n const start = performance.now();\n\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[] | null;\n try {\n const funcCall =\n this.api?.getCollateral ||\n (this.api?.experimental.getCollateral as GetCollateral);\n if (typeof funcCall !== \"function\") {\n cbor = [];\n } else {\n cbor = await funcCall();\n }\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor?.map((val) => {\n const txOutput = Serialization.TransactionUnspentOutput.fromCbor(\n typedHex(val),\n );\n\n // These methods must be bound to their initial creation instance.\n txOutput.input = txOutput.input.bind(txOutput);\n txOutput.output = txOutput.output.bind(txOutput);\n return txOutput;\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCollateral: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Resolves metadata for the given asset IDs, using a cached version if available.\n *\n * @private\n * @param {string[]} assetIds - The IDs of the assets to resolve metadata for.\n * @returns {Promise<Map<string, AssetMetadata>>} - A promise that resolves to a map of asset metadata.\n */\n private __metadataResolverWithCache = async (\n assetIds: string[],\n ): Promise<Map<string, AssetMetadata>> => {\n const start = performance.now();\n\n if (this._cachedMetadata) {\n const cachedKeys = new Set(this._cachedMetadata.keys());\n const inputKeys = new Set(assetIds);\n\n if (\n cachedKeys.size === inputKeys.size &&\n [...cachedKeys].every((key) => inputKeys.has(key))\n ) {\n const end = performance.now();\n if (this._options.debug) {\n console.log(`metadataResolver (cached): ${end - start}ms`);\n }\n return this._cachedMetadata;\n }\n }\n\n let attempts = 0;\n let newMetadata: Map<string, AssetMetadata> | undefined;\n while (attempts <= 3 && !newMetadata) {\n try {\n newMetadata = await this._options.metadataResolver({\n assetIds: assetIds.map(normalizeAssetIdWithDot),\n normalizeAssetId: normalizeAssetIdWithDot,\n isAdaAsset,\n });\n } catch (e) {\n attempts++;\n }\n }\n\n if (!newMetadata) {\n newMetadata = await this.fallbackMetadataResolver({\n assetIds: assetIds.map(normalizeAssetIdWithDot),\n normalizeAssetId: normalizeAssetIdWithDot,\n isAdaAsset,\n });\n }\n\n this._cachedMetadata = newMetadata;\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`metadataResolver: ${end - start}ms`);\n }\n return newMetadata;\n };\n\n /**\n * A fallback metadata resolver function that generates default metadata for given asset IDs.\n *\n * @type {TMetadataResolverFunc<AssetMetadata>}\n */\n public fallbackMetadataResolver: TMetadataResolverFunc<AssetMetadata> =\n async ({ assetIds }) => {\n const map = new Map<string, AssetMetadata>();\n assetIds.forEach((id) =>\n map.set(normalizeAssetIdWithDot(id), {\n assetId: normalizeAssetIdWithDot(id),\n decimals: 6,\n } as AssetMetadata),\n );\n\n return map;\n };\n\n /**\n * Helper method to retrieve the cached utils instance.\n *\n * @returns {Promise<WalletObserverUtils>} Resolves to a WalletObserverUtils class.\n */\n public async getUtils(): Promise<WalletObserverUtils> {\n if (!this.utils) {\n this.utils = await WalletObserverUtils.new(this.network);\n }\n\n return this.utils;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WalletObserver.class.js","names":["APIErrorCode","AssetAmount","merge","EWalletObserverEvents","ADA_ASSET_ID","isAdaAsset","normalizeAssetIdWithDot","getCardanoCore","getCardanoUtil","getPeerConnect","WalletBalanceMap","WalletObserverEvent","WalletObserverUtils","WalletObserver","constructor","options","_defineProperty","Map","api","Error","start","performance","now","_performingSync","dispatch","SYNCING_WALLET_START","newNetwork","getNetwork","syncApi","SYNCING_WALLET_END","CONNECT_WALLET_END","newBalanceMap","newUsedAddresses","newUnusedAddresses","newOutputs","newCollateral","newFeeAddress","Promise","all","getBalanceMap","getUsedAddresses","getUnusedAddresses","getUtxos","getCollateral","getFeeAddress","result","balanceMap","usedAddresses","unusedAddresses","utxos","collateral","network","feeAddress","end","_options","debug","console","log","e","activeWallet","selectedWallet","attempts","shouldContinue","cardano","window","parent","enable","getNetworkId","includes","message","code","Refused","undefined","res","setTimeout","extension","CONNECT_WALLET_START","extensionObject","peerConnectInstance","shutdownServer","connectTimeout","persistence","addresses","cause","seed","mainAddress","localStorage","setItem","PERSISTENCE_CACHE_KEY","JSON","stringify","DAppPeerConnect","peerConnectArgs","name","dAppInfo","icon","getIdenticon","instance","_cachedMetadata","removeItem","DISCONNECT","GET_BALANCE_MAP_START","Serialization","typedHex","cbor","getBalance","data","Value","fromCbor","multiassetKeys","multiasset","keys","metadata","__metadataResolverWithCache","set","coin","get","multiassetEntries","entries","id","amount","GET_BALANCE_MAP_END","val","Cardano","map","Address","fromBytes","toBech32","txOutput","TransactionUnspentOutput","input","bind","output","address","experimental","funcCall","assetIds","cachedKeys","Set","inputKeys","size","every","key","has","newMetadata","metadataResolver","normalizeAssetId","fallbackMetadataResolver","forEach","assetId","decimals","url","location","hostname","onApiEject","disconnect","onApiInject","connectWallet","verifyConnection","walletInfo","callback","requestAutoconnect","useWalletDiscovery","announce","isSyncing","hasActiveConnection","Boolean","getUtils","utils","new"],"sources":["../../../src/classes/WalletObserver.class.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport {\n APIErrorCode,\n type ApiError,\n type Cip30WalletApi,\n type GetCollateral,\n} from \"@cardano-sdk/dapp-connector\";\nimport { AssetAmount, type IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport merge from \"lodash/merge.js\";\n\nimport { EWalletObserverEvents } from \"../@types/events.js\";\nimport type {\n IResolvedWalletObserverOptions,\n IWalletObserverSeed,\n IWalletObserverSync,\n TMetadataResolverFunc,\n TWalletObserverOptions,\n} from \"../@types/observer.js\";\nimport { ADA_ASSET_ID } from \"../constants.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\nimport {\n getCardanoCore,\n getCardanoUtil,\n getPeerConnect,\n} from \"../utils/getLibs.js\";\nimport { WalletBalanceMap } from \"./WalletBalanceMap.class.js\";\nimport { WalletObserverEvent } from \"./WalletObserverEvent.js\";\nimport { WalletObserverUtils } from \"./WalletObserverUtils.class.js\";\n\n/**\n * Class representing the Wallet Observer. This is the main interface\n * for interacting with a wallet extension that is available in the\n * browser window. It handles all the deserialization required when\n * querying raw data from a CIP-30 API, and converts it to readable and\n * usable interfaces.\n *\n * Notably, it extends the WalletObserverEvent class which\n * acts as an internal event handler to hook into actions, such as connecting,\n * syncing, and disconnecting.\n *\n * @template AssetMetadata - Type extending IAssetAmountMetadata.\n * @extends {WalletObserverEvent}\n */\nexport class WalletObserver<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> extends WalletObserverEvent {\n static PERSISTENCE_CACHE_KEY = \"walletObserver\";\n public network: number = 0;\n public api?: Cip30WalletApi;\n public activeWallet?: string;\n public utils?: WalletObserverUtils;\n public peerConnectInstance?: import(\"@fabianbormann/cardano-peer-connect\").DAppPeerConnect;\n\n private _performingSync: boolean = false;\n private _options: IResolvedWalletObserverOptions<AssetMetadata>;\n\n // Caching\n private _cachedMetadata: Map<string, AssetMetadata> = new Map();\n\n /**\n * Creates an instance of WalletObserver.\n *\n * @param {Partial<TWalletObserverOptions<AssetMetadata>>} [options] - Options for the wallet observer.\n */\n constructor(options?: Partial<TWalletObserverOptions<AssetMetadata>>) {\n super();\n\n // Set options.\n this._options = merge<IResolvedWalletObserverOptions, typeof options>(\n {\n metadataResolver: this.fallbackMetadataResolver,\n persistence: false,\n connectTimeout: 10000,\n debug: false,\n peerConnectArgs: {\n dAppInfo: {\n name: \"Placeholder dApp Connecter Name\",\n url: window.location.hostname,\n },\n onApiEject: (name, address) => {\n options?.peerConnectArgs?.onApiEject?.(name, address);\n this.disconnect();\n },\n onApiInject: (name, address) => {\n options?.peerConnectArgs?.onApiInject?.(name, address);\n this.connectWallet(name);\n },\n verifyConnection(walletInfo, callback) {\n return callback(true, walletInfo.requestAutoconnect ?? true);\n },\n useWalletDiscovery: true,\n announce: [\n \"wss://tracker.de-5.eternl.art\",\n \"wss://tracker.de-6.eternl.art\",\n \"wss://tracker.us-5.eternl.art\",\n ],\n },\n },\n options,\n );\n\n if (!this._options.persistence) {\n return;\n }\n }\n\n /**\n * Synchronizes the wallet. This method handles syncing the class\n * against the currently selected active wallet. If the wallet has\n * changed networks, or if the account within the wallet has changed,\n * this method will automatically attempt to reconcile this error before\n * eventually throwing.\n *\n * In the event that a promise will not resolve due to external issues,\n * after 7 seconds, a timeout function will fire that resets the API and tries again.\n *\n * @returns {Promise<IWalletObserverSync<AssetMetadata>>} - A promise that resolves to the wallet sync data.\n */\n sync = async (): Promise<IWalletObserverSync<AssetMetadata>> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to perform a sync operation without a connected wallet.\",\n );\n }\n\n const start = performance.now();\n\n try {\n this._performingSync = true;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_START);\n\n let newNetwork = await this.getNetwork();\n if (newNetwork instanceof Error) {\n await this.syncApi();\n newNetwork = await this.getNetwork();\n\n if (newNetwork instanceof Error) {\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n this._performingSync = false;\n throw newNetwork;\n }\n }\n\n const [\n newBalanceMap,\n newUsedAddresses,\n newUnusedAddresses,\n newOutputs,\n newCollateral,\n newFeeAddress,\n ] = await Promise.all([\n this.getBalanceMap(),\n this.getUsedAddresses(),\n this.getUnusedAddresses(),\n this.getUtxos(),\n this.getCollateral(),\n this.getFeeAddress(),\n ]);\n\n const result: IWalletObserverSync<AssetMetadata> = {\n balanceMap: newBalanceMap,\n usedAddresses: newUsedAddresses,\n unusedAddresses: newUnusedAddresses,\n utxos: newOutputs,\n collateral: newCollateral,\n network: newNetwork,\n feeAddress: newFeeAddress,\n };\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`sync: ${end - start}ms`);\n }\n\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n this._performingSync = false;\n return result;\n } catch (e) {\n this._performingSync = false;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n throw e;\n }\n };\n\n /**\n * Helper method to check if the class is currently performing a sync\n * operation. This is useful to avoid duplicate calls, but does not\n * prevent it within the class.\n *\n * @returns {boolean}\n */\n isSyncing(): boolean {\n return this._performingSync;\n }\n\n /**\n * Helper method to check if the instance has an active connection.\n *\n * @returns {boolean}\n */\n hasActiveConnection(): boolean {\n return Boolean(this.activeWallet && this.api);\n }\n\n /**\n * Synchronizes the API with the wallet. This is useful if the account has changed,\n * but the underlying intent has not.\n *\n * @param {string} [activeWallet] - The wallet to sync with.\n * @returns {Promise<Cip30WalletApi | undefined>} - A promise that resolves to the API instance.\n */\n syncApi = async (\n activeWallet?: string,\n ): Promise<Cip30WalletApi | undefined> => {\n if (!activeWallet && !this.activeWallet) {\n throw new Error(\n \"A wallet is required to be passed as a parameter, or to be defined in the class.\",\n );\n }\n\n const selectedWallet = (activeWallet || this.activeWallet) as string;\n\n let attempts = 0;\n let shouldContinue = true;\n\n while (shouldContinue) {\n if (attempts === 10) {\n throw new Error(\n \"Could not reconnect to the selected wallet. Please check your extension.\",\n );\n }\n\n try {\n const cardano = window?.cardano || window?.parent?.cardano;\n const api = await cardano?.[selectedWallet]?.enable();\n\n if (!api) {\n throw Error;\n }\n\n this.api = api;\n this.network = await api.getNetworkId();\n shouldContinue = false;\n } catch (e) {\n if (\n [\n \"user canceled connection\",\n \"User declined to sign the data.\",\n ].includes((e as Error)?.message) ||\n (e as ApiError)?.code === APIErrorCode.Refused\n ) {\n shouldContinue = false;\n return undefined;\n }\n\n await new Promise((res) => setTimeout(res, 200));\n attempts++;\n }\n }\n\n return this.api;\n };\n\n /**\n * Gets the options for the wallet observer.\n *\n * @returns {TWalletObserverOptions} - The wallet observer options.\n */\n getOptions = (): TWalletObserverOptions => {\n return this._options;\n };\n\n /**\n * Attempts to connect a wallet using the global window\n * reference. If no reference is found, it will retry for\n * 10 seconds before throw an error.\n *\n * @param {string} extension The name of the extension to enable.\n * @return {Promise<void>}\n */\n connectWallet = async (extension: string): Promise<void> => {\n const start = performance.now();\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_START);\n\n let attempts = 0;\n let extensionObject = window.cardano?.[extension];\n\n // Disconnect any CIP45 connections.\n if (!extension?.includes(\"p2p\")) {\n this.peerConnectInstance?.shutdownServer();\n }\n\n while (typeof extensionObject === \"undefined\") {\n if (attempts === 40) {\n break;\n }\n\n await new Promise((res) =>\n setTimeout(res, (this._options.connectTimeout as number) / 40),\n );\n extensionObject = window.cardano?.[extension];\n attempts++;\n }\n\n if (!extensionObject) {\n throw new Error(\"Wallet extension not found in the global context.\");\n }\n\n const api = await this.syncApi(extension);\n\n this.activeWallet = extension;\n if (this._options.persistence && api) {\n const addresses = await this.getUsedAddresses();\n if (addresses instanceof Error) {\n addresses.cause =\n \"Could not get a list of used addresses from the wallet when trying to save the connection.\";\n throw addresses;\n }\n\n const seed: IWalletObserverSeed = {\n activeWallet: extension,\n mainAddress: addresses[0],\n };\n\n window.localStorage.setItem(\n WalletObserver.PERSISTENCE_CACHE_KEY,\n JSON.stringify(seed),\n );\n }\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`connectWallet: ${end - start}ms`);\n }\n };\n\n getCip45Instance = async () => {\n const start = performance.now();\n if (!this.peerConnectInstance) {\n const DAppPeerConnect = await getPeerConnect();\n this.peerConnectInstance = new DAppPeerConnect(\n this._options.peerConnectArgs,\n );\n }\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCip45Instance: ${end - start}ms`);\n }\n\n return {\n name: this._options.peerConnectArgs.dAppInfo.name,\n icon: this.peerConnectInstance.getIdenticon(),\n instance: this.peerConnectInstance,\n };\n };\n\n /**\n * Helper function to retrieve the currently cached metadata.\n *\n * @returns {Map<string, AssetMetadata>}\n */\n getCachedAssetMetadata = (): Map<string, AssetMetadata> =>\n this._cachedMetadata;\n\n /**\n * Helper function to restore the class instance to its initial state.\n *\n * @returns {void}\n */\n disconnect = (): void => {\n this.activeWallet = undefined;\n this.api = undefined;\n window.localStorage.removeItem(WalletObserver.PERSISTENCE_CACHE_KEY);\n this.dispatch(EWalletObserverEvents.DISCONNECT);\n };\n\n /**\n * Retrieves the balance of the wallet, including metadata for each asset.\n *\n * @returns {Promise<WalletBalanceMap<AssetMetadata>>} - A promise that resolves to a map of asset amounts keyed by asset IDs.\n */\n getBalanceMap = async (): Promise<\n WalletBalanceMap<AssetMetadata> | Error\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query balance without an API instance.\");\n }\n\n const start = performance.now();\n\n this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_START);\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string;\n try {\n cbor = await this.api.getBalance();\n } catch (e) {\n return e as Error;\n }\n const data = Serialization.Value.fromCbor(typedHex(cbor));\n const multiassetKeys = data.multiasset()?.keys() ?? [];\n\n const metadata = await this.__metadataResolverWithCache([\n ADA_ASSET_ID,\n ...multiassetKeys,\n ]);\n\n const balanceMap = new WalletBalanceMap<AssetMetadata>(this);\n balanceMap.set(\n ADA_ASSET_ID,\n new AssetAmount(data.coin(), metadata.get(ADA_ASSET_ID)),\n );\n\n const multiassetEntries = data.multiasset()?.entries() ?? [];\n if (multiassetEntries) {\n for (const [id, amount] of multiassetEntries) {\n balanceMap.set(\n normalizeAssetIdWithDot(id),\n new AssetAmount(amount, metadata.get(normalizeAssetIdWithDot(id))),\n );\n }\n }\n\n this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_END, {\n balanceMap,\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getBalanceMap: ${end - start}ms`);\n }\n\n return balanceMap;\n };\n\n /**\n * Gets the current network connection.\n *\n * @returns {Promise<number | Error>} The network ID or an Error from the wallet.\n */\n getNetwork = async (): Promise<number | Error> => {\n if (!this.api) {\n throw new Error(\"Attempted to query network without an API instance.\");\n }\n\n const start = performance.now();\n\n let val: number;\n try {\n val = await this.api.getNetworkId();\n } catch (e) {\n return e as Error;\n }\n\n this.network = val;\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getNetwork: ${end - start}ms`);\n }\n return val;\n };\n\n /**\n * Gets a list of used addresses, encoded as Bech32.\n *\n * @returns {Promise<string[]>} The list of addresses.\n */\n getUsedAddresses = async (): Promise<string[] | Error> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query used addresses without an API instance.\",\n );\n }\n\n const start = performance.now();\n\n const [{ Cardano }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[];\n try {\n cbor = await this.api.getUsedAddresses();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor.map((val) =>\n Cardano.Address.fromBytes(typedHex(val)).toBech32(),\n );\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUsedAddresses: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets a list of unused addresses, encoded as Bech32.\n *\n * @returns {Promise<string[] | Error>} The list of addresses or an Error returned by the wallet.\n */\n getUnusedAddresses = async (): Promise<string[] | Error> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query unused addresses without an API instance.\",\n );\n }\n\n const start = performance.now();\n\n const [{ Cardano }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[];\n try {\n cbor = await this.api.getUnusedAddresses();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor.map((val) =>\n Cardano.Address.fromBytes(typedHex(val)).toBech32(),\n );\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUnusedAddresses: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets a list of wallet UTXOs.\n *\n * @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.\n */\n getUtxos = async (): Promise<\n TransactionUnspentOutput[] | Error | undefined\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query UTXOs without an API instance.\");\n }\n\n const start = performance.now();\n\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[] | null;\n try {\n cbor = await this.api.getUtxos();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor?.map((val) => {\n const txOutput = Serialization.TransactionUnspentOutput.fromCbor(\n typedHex(val),\n );\n\n // These methods must be bound to their initial creation instance.\n txOutput.input = txOutput.input.bind(txOutput);\n txOutput.output = txOutput.output.bind(txOutput);\n return txOutput;\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUtxos: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets the fee address set by the wallet, if available.\n *\n * @returns {Promise<string | Error | undefined>} The fee address or an Error.\n */\n getFeeAddress = async (): Promise<string | Error | undefined> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query fee address without an API instance.\",\n );\n }\n\n const start = performance.now();\n try {\n const address = this.api.experimental?.feeAddress;\n const end = performance.now();\n\n if (this._options.debug) {\n console.log(`getFeeAddress: ${end - start}ms`);\n }\n\n return address;\n } catch (e) {\n return e as Error;\n }\n };\n\n /**\n * Gets a list of wallet UTXOs suitable for collateral.\n *\n * @returns {Promise<TransactionUnspentOutput[] | Error | undefined>} The list of TransactionUnspentOutputs, if there are any, or an Error.\n */\n getCollateral = async (): Promise<\n TransactionUnspentOutput[] | Error | undefined\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query UTXOs without an API instance.\");\n }\n\n const start = performance.now();\n\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[] | null;\n try {\n const funcCall =\n this.api?.getCollateral ||\n (this.api?.experimental.getCollateral as GetCollateral);\n if (typeof funcCall !== \"function\") {\n cbor = [];\n } else {\n cbor = await funcCall();\n }\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor?.map((val) => {\n const txOutput = Serialization.TransactionUnspentOutput.fromCbor(\n typedHex(val),\n );\n\n // These methods must be bound to their initial creation instance.\n txOutput.input = txOutput.input.bind(txOutput);\n txOutput.output = txOutput.output.bind(txOutput);\n return txOutput;\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCollateral: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Resolves metadata for the given asset IDs, using a cached version if available.\n *\n * @private\n * @param {string[]} assetIds - The IDs of the assets to resolve metadata for.\n * @returns {Promise<Map<string, AssetMetadata>>} - A promise that resolves to a map of asset metadata.\n */\n private __metadataResolverWithCache = async (\n assetIds: string[],\n ): Promise<Map<string, AssetMetadata>> => {\n const start = performance.now();\n\n if (this._cachedMetadata) {\n const cachedKeys = new Set(this._cachedMetadata.keys());\n const inputKeys = new Set(assetIds);\n\n if (\n cachedKeys.size === inputKeys.size &&\n [...cachedKeys].every((key) => inputKeys.has(key))\n ) {\n const end = performance.now();\n if (this._options.debug) {\n console.log(`metadataResolver (cached): ${end - start}ms`);\n }\n return this._cachedMetadata;\n }\n }\n\n let attempts = 0;\n let newMetadata: Map<string, AssetMetadata> | undefined;\n while (attempts <= 3 && !newMetadata) {\n try {\n newMetadata = await this._options.metadataResolver({\n assetIds: assetIds.map(normalizeAssetIdWithDot),\n normalizeAssetId: normalizeAssetIdWithDot,\n isAdaAsset,\n });\n } catch (e) {\n attempts++;\n }\n }\n\n if (!newMetadata) {\n newMetadata = await this.fallbackMetadataResolver({\n assetIds: assetIds.map(normalizeAssetIdWithDot),\n normalizeAssetId: normalizeAssetIdWithDot,\n isAdaAsset,\n });\n }\n\n this._cachedMetadata = newMetadata;\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`metadataResolver: ${end - start}ms`);\n }\n return newMetadata;\n };\n\n /**\n * A fallback metadata resolver function that generates default metadata for given asset IDs.\n *\n * @type {TMetadataResolverFunc<AssetMetadata>}\n */\n public fallbackMetadataResolver: TMetadataResolverFunc<AssetMetadata> =\n async ({ assetIds }) => {\n const map = new Map<string, AssetMetadata>();\n assetIds.forEach((id) =>\n map.set(normalizeAssetIdWithDot(id), {\n assetId: normalizeAssetIdWithDot(id),\n decimals: 6,\n } as AssetMetadata),\n );\n\n return map;\n };\n\n /**\n * Helper method to retrieve the cached utils instance.\n *\n * @returns {Promise<WalletObserverUtils>} Resolves to a WalletObserverUtils class.\n */\n public async getUtils(): Promise<WalletObserverUtils> {\n if (!this.utils) {\n this.utils = await WalletObserverUtils.new(this.network);\n }\n\n return this.utils;\n }\n}\n"],"mappings":";;;AACA,SACEA,YAAY,QAIP,6BAA6B;AACpC,SAASC,WAAW,QAAmC,mBAAmB;AAC1E,OAAOC,KAAK,MAAM,iBAAiB;AAEnC,SAASC,qBAAqB,QAAQ,qBAAqB;AAQ3D,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,UAAU,EAAEC,uBAAuB,QAAQ,oBAAoB;AACxE,SACEC,cAAc,EACdC,cAAc,EACdC,cAAc,QACT,qBAAqB;AAC5B,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,mBAAmB,QAAQ,gCAAgC;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,SAEjBF,mBAAmB,CAAC;EAc5B;AACF;AACA;AACA;AACA;EACEG,WAAWA,CAACC,OAAwD,EAAE;IACpE,KAAK,CAAC,CAAC;;IAEP;IAAAC,eAAA,kBApBuB,CAAC;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,0BAMS,KAAK;IAAAA,eAAA;IAGxC;IAAAA,eAAA,0BACsD,IAAIC,GAAG,CAAC,CAAC;IAiD/D;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAXED,eAAA,eAYO,YAAyD;MAC9D,IAAI,CAAC,IAAI,CAACE,GAAG,EAAE;QACb,MAAM,IAAIC,KAAK,CACb,mEACF,CAAC;MACH;MAEA,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAE/B,IAAI;QACF,IAAI,CAACC,eAAe,GAAG,IAAI;QAC3B,IAAI,CAACC,QAAQ,CAACrB,qBAAqB,CAACsB,oBAAoB,CAAC;QAEzD,IAAIC,UAAU,GAAG,MAAM,IAAI,CAACC,UAAU,CAAC,CAAC;QACxC,IAAID,UAAU,YAAYP,KAAK,EAAE;UAC/B,MAAM,IAAI,CAACS,OAAO,CAAC,CAAC;UACpBF,UAAU,GAAG,MAAM,IAAI,CAACC,UAAU,CAAC,CAAC;UAEpC,IAAID,UAAU,YAAYP,KAAK,EAAE;YAC/B,IAAI,CAACK,QAAQ,CAACrB,qBAAqB,CAAC0B,kBAAkB,CAAC;YACvD,IAAI,CAACL,QAAQ,CAACrB,qBAAqB,CAAC2B,kBAAkB,CAAC;YACvD,IAAI,CAACP,eAAe,GAAG,KAAK;YAC5B,MAAMG,UAAU;UAClB;QACF;QAEA,MAAM,CACJK,aAAa,EACbC,gBAAgB,EAChBC,kBAAkB,EAClBC,UAAU,EACVC,aAAa,EACbC,aAAa,CACd,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CACpB,IAAI,CAACC,aAAa,CAAC,CAAC,EACpB,IAAI,CAACC,gBAAgB,CAAC,CAAC,EACvB,IAAI,CAACC,kBAAkB,CAAC,CAAC,EACzB,IAAI,CAACC,QAAQ,CAAC,CAAC,EACf,IAAI,CAACC,aAAa,CAAC,CAAC,EACpB,IAAI,CAACC,aAAa,CAAC,CAAC,CACrB,CAAC;QAEF,MAAMC,MAA0C,GAAG;UACjDC,UAAU,EAAEf,aAAa;UACzBgB,aAAa,EAAEf,gBAAgB;UAC/BgB,eAAe,EAAEf,kBAAkB;UACnCgB,KAAK,EAAEf,UAAU;UACjBgB,UAAU,EAAEf,aAAa;UACzBgB,OAAO,EAAEzB,UAAU;UACnB0B,UAAU,EAAEhB;QACd,CAAC;QAED,MAAMiB,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;UACvBC,OAAO,CAACC,GAAG,CAAC,SAASJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;QACvC;QAEA,IAAI,CAACI,QAAQ,CAACrB,qBAAqB,CAAC0B,kBAAkB,EAAEgB,MAAM,CAAC;QAC/D,IAAI,CAACrB,QAAQ,CAACrB,qBAAqB,CAAC2B,kBAAkB,CAAC;QACvD,IAAI,CAACP,eAAe,GAAG,KAAK;QAC5B,OAAOsB,MAAM;MACf,CAAC,CAAC,OAAOa,CAAC,EAAE;QACV,IAAI,CAACnC,eAAe,GAAG,KAAK;QAC5B,IAAI,CAACC,QAAQ,CAACrB,qBAAqB,CAAC0B,kBAAkB,CAAC;QACvD,IAAI,CAACL,QAAQ,CAACrB,qBAAqB,CAAC2B,kBAAkB,CAAC;QACvD,MAAM4B,CAAC;MACT;IACF,CAAC;IAsBD;AACF;AACA;AACA;AACA;AACA;AACA;IANE1C,eAAA,kBAOU,MACR2C,YAAqB,IACmB;MACxC,IAAI,CAACA,YAAY,IAAI,CAAC,IAAI,CAACA,YAAY,EAAE;QACvC,MAAM,IAAIxC,KAAK,CACb,kFACF,CAAC;MACH;MAEA,MAAMyC,cAAc,GAAID,YAAY,IAAI,IAAI,CAACA,YAAuB;MAEpE,IAAIE,QAAQ,GAAG,CAAC;MAChB,IAAIC,cAAc,GAAG,IAAI;MAEzB,OAAOA,cAAc,EAAE;QACrB,IAAID,QAAQ,KAAK,EAAE,EAAE;UACnB,MAAM,IAAI1C,KAAK,CACb,0EACF,CAAC;QACH;QAEA,IAAI;UACF,MAAM4C,OAAO,GAAGC,MAAM,EAAED,OAAO,IAAIC,MAAM,EAAEC,MAAM,EAAEF,OAAO;UAC1D,MAAM7C,GAAG,GAAG,MAAM6C,OAAO,GAAGH,cAAc,CAAC,EAAEM,MAAM,CAAC,CAAC;UAErD,IAAI,CAAChD,GAAG,EAAE;YACR,MAAMC,KAAK;UACb;UAEA,IAAI,CAACD,GAAG,GAAGA,GAAG;UACd,IAAI,CAACiC,OAAO,GAAG,MAAMjC,GAAG,CAACiD,YAAY,CAAC,CAAC;UACvCL,cAAc,GAAG,KAAK;QACxB,CAAC,CAAC,OAAOJ,CAAC,EAAE;UACV,IACE,CACE,0BAA0B,EAC1B,iCAAiC,CAClC,CAACU,QAAQ,CAAEV,CAAC,EAAYW,OAAO,CAAC,IAChCX,CAAC,EAAeY,IAAI,KAAKtE,YAAY,CAACuE,OAAO,EAC9C;YACAT,cAAc,GAAG,KAAK;YACtB,OAAOU,SAAS;UAClB;UAEA,MAAM,IAAInC,OAAO,CAAEoC,GAAG,IAAKC,UAAU,CAACD,GAAG,EAAE,GAAG,CAAC,CAAC;UAChDZ,QAAQ,EAAE;QACZ;MACF;MAEA,OAAO,IAAI,CAAC3C,GAAG;IACjB,CAAC;IAED;AACF;AACA;AACA;AACA;IAJEF,eAAA,qBAKa,MAA8B;MACzC,OAAO,IAAI,CAACsC,QAAQ;IACtB,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;IAPEtC,eAAA,wBAQgB,MAAO2D,SAAiB,IAAoB;MAC1D,MAAMvD,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC/B,IAAI,CAACE,QAAQ,CAACrB,qBAAqB,CAACyE,oBAAoB,CAAC;MAEzD,IAAIf,QAAQ,GAAG,CAAC;MAChB,IAAIgB,eAAe,GAAGb,MAAM,CAACD,OAAO,GAAGY,SAAS,CAAC;;MAEjD;MACA,IAAI,CAACA,SAAS,EAAEP,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC/B,IAAI,CAACU,mBAAmB,EAAEC,cAAc,CAAC,CAAC;MAC5C;MAEA,OAAO,OAAOF,eAAe,KAAK,WAAW,EAAE;QAC7C,IAAIhB,QAAQ,KAAK,EAAE,EAAE;UACnB;QACF;QAEA,MAAM,IAAIxB,OAAO,CAAEoC,GAAG,IACpBC,UAAU,CAACD,GAAG,EAAG,IAAI,CAACnB,QAAQ,CAAC0B,cAAc,GAAc,EAAE,CAC/D,CAAC;QACDH,eAAe,GAAGb,MAAM,CAACD,OAAO,GAAGY,SAAS,CAAC;QAC7Cd,QAAQ,EAAE;MACZ;MAEA,IAAI,CAACgB,eAAe,EAAE;QACpB,MAAM,IAAI1D,KAAK,CAAC,mDAAmD,CAAC;MACtE;MAEA,MAAMD,GAAG,GAAG,MAAM,IAAI,CAACU,OAAO,CAAC+C,SAAS,CAAC;MAEzC,IAAI,CAAChB,YAAY,GAAGgB,SAAS;MAC7B,IAAI,IAAI,CAACrB,QAAQ,CAAC2B,WAAW,IAAI/D,GAAG,EAAE;QACpC,MAAMgE,SAAS,GAAG,MAAM,IAAI,CAAC1C,gBAAgB,CAAC,CAAC;QAC/C,IAAI0C,SAAS,YAAY/D,KAAK,EAAE;UAC9B+D,SAAS,CAACC,KAAK,GACb,4FAA4F;UAC9F,MAAMD,SAAS;QACjB;QAEA,MAAME,IAAyB,GAAG;UAChCzB,YAAY,EAAEgB,SAAS;UACvBU,WAAW,EAAEH,SAAS,CAAC,CAAC;QAC1B,CAAC;QAEDlB,MAAM,CAACsB,YAAY,CAACC,OAAO,CACzB1E,cAAc,CAAC2E,qBAAqB,EACpCC,IAAI,CAACC,SAAS,CAACN,IAAI,CACrB,CAAC;MACH;MAEA,MAAM/B,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;QACvBC,OAAO,CAACC,GAAG,CAAC,kBAAkBJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;MAChD;IACF,CAAC;IAAAJ,eAAA,2BAEkB,YAAY;MAC7B,MAAMI,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC/B,IAAI,CAAC,IAAI,CAACwD,mBAAmB,EAAE;QAC7B,MAAMa,eAAe,GAAG,MAAMlF,cAAc,CAAC,CAAC;QAC9C,IAAI,CAACqE,mBAAmB,GAAG,IAAIa,eAAe,CAC5C,IAAI,CAACrC,QAAQ,CAACsC,eAChB,CAAC;MACH;MAEA,MAAMvC,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;QACvBC,OAAO,CAACC,GAAG,CAAC,qBAAqBJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;MACnD;MAEA,OAAO;QACLyE,IAAI,EAAE,IAAI,CAACvC,QAAQ,CAACsC,eAAe,CAACE,QAAQ,CAACD,IAAI;QACjDE,IAAI,EAAE,IAAI,CAACjB,mBAAmB,CAACkB,YAAY,CAAC,CAAC;QAC7CC,QAAQ,EAAE,IAAI,CAACnB;MACjB,CAAC;IACH,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE9D,eAAA,iCAKyB,MACvB,IAAI,CAACkF,eAAe;IAEtB;AACF;AACA;AACA;AACA;IAJElF,eAAA,qBAKa,MAAY;MACvB,IAAI,CAAC2C,YAAY,GAAGa,SAAS;MAC7B,IAAI,CAACtD,GAAG,GAAGsD,SAAS;MACpBR,MAAM,CAACsB,YAAY,CAACa,UAAU,CAACtF,cAAc,CAAC2E,qBAAqB,CAAC;MACpE,IAAI,CAAChE,QAAQ,CAACrB,qBAAqB,CAACiG,UAAU,CAAC;IACjD,CAAC;IAED;AACF;AACA;AACA;AACA;IAJEpF,eAAA,wBAKgB,YAEX;MACH,IAAI,CAAC,IAAI,CAACE,GAAG,EAAE;QACb,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;MACxE;MAEA,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAE/B,IAAI,CAACE,QAAQ,CAACrB,qBAAqB,CAACkG,qBAAqB,CAAC;MAC1D,MAAM,CAAC;QAAEC;MAAc,CAAC,EAAEC,QAAQ,CAAC,GAAG,MAAMlE,OAAO,CAACC,GAAG,CAAC,CACtD/B,cAAc,CAAC,CAAC,EAChBC,cAAc,CAAC,CAAC,CACjB,CAAC;MAEF,IAAIgG,IAAY;MAChB,IAAI;QACFA,IAAI,GAAG,MAAM,IAAI,CAACtF,GAAG,CAACuF,UAAU,CAAC,CAAC;MACpC,CAAC,CAAC,OAAO/C,CAAC,EAAE;QACV,OAAOA,CAAC;MACV;MACA,MAAMgD,IAAI,GAAGJ,aAAa,CAACK,KAAK,CAACC,QAAQ,CAACL,QAAQ,CAACC,IAAI,CAAC,CAAC;MACzD,MAAMK,cAAc,GAAGH,IAAI,CAACI,UAAU,CAAC,CAAC,EAAEC,IAAI,CAAC,CAAC,IAAI,EAAE;MAEtD,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACC,2BAA2B,CAAC,CACtD7G,YAAY,EACZ,GAAGyG,cAAc,CAClB,CAAC;MAEF,MAAM/D,UAAU,GAAG,IAAIpC,gBAAgB,CAAgB,IAAI,CAAC;MAC5DoC,UAAU,CAACoE,GAAG,CACZ9G,YAAY,EACZ,IAAIH,WAAW,CAACyG,IAAI,CAACS,IAAI,CAAC,CAAC,EAAEH,QAAQ,CAACI,GAAG,CAAChH,YAAY,CAAC,CACzD,CAAC;MAED,MAAMiH,iBAAiB,GAAGX,IAAI,CAACI,UAAU,CAAC,CAAC,EAAEQ,OAAO,CAAC,CAAC,IAAI,EAAE;MAC5D,IAAID,iBAAiB,EAAE;QACrB,KAAK,MAAM,CAACE,EAAE,EAAEC,MAAM,CAAC,IAAIH,iBAAiB,EAAE;UAC5CvE,UAAU,CAACoE,GAAG,CACZ5G,uBAAuB,CAACiH,EAAE,CAAC,EAC3B,IAAItH,WAAW,CAACuH,MAAM,EAAER,QAAQ,CAACI,GAAG,CAAC9G,uBAAuB,CAACiH,EAAE,CAAC,CAAC,CACnE,CAAC;QACH;MACF;MAEA,IAAI,CAAC/F,QAAQ,CAACrB,qBAAqB,CAACsH,mBAAmB,EAAE;QACvD3E;MACF,CAAC,CAAC;MAEF,MAAMO,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;QACvBC,OAAO,CAACC,GAAG,CAAC,kBAAkBJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;MAChD;MAEA,OAAO0B,UAAU;IACnB,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE9B,eAAA,qBAKa,YAAqC;MAChD,IAAI,CAAC,IAAI,CAACE,GAAG,EAAE;QACb,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;MACxE;MAEA,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAE/B,IAAIoG,GAAW;MACf,IAAI;QACFA,GAAG,GAAG,MAAM,IAAI,CAACxG,GAAG,CAACiD,YAAY,CAAC,CAAC;MACrC,CAAC,CAAC,OAAOT,CAAC,EAAE;QACV,OAAOA,CAAC;MACV;MAEA,IAAI,CAACP,OAAO,GAAGuE,GAAG;MAClB,MAAMrE,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;QACvBC,OAAO,CAACC,GAAG,CAAC,eAAeJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;MAC7C;MACA,OAAOsG,GAAG;IACZ,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE1G,eAAA,2BAKmB,YAAuC;MACxD,IAAI,CAAC,IAAI,CAACE,GAAG,EAAE;QACb,MAAM,IAAIC,KAAK,CACb,4DACF,CAAC;MACH;MAEA,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAE/B,MAAM,CAAC;QAAEqG;MAAQ,CAAC,EAAEpB,QAAQ,CAAC,GAAG,MAAMlE,OAAO,CAACC,GAAG,CAAC,CAChD/B,cAAc,CAAC,CAAC,EAChBC,cAAc,CAAC,CAAC,CACjB,CAAC;MAEF,IAAIgG,IAAc;MAClB,IAAI;QACFA,IAAI,GAAG,MAAM,IAAI,CAACtF,GAAG,CAACsB,gBAAgB,CAAC,CAAC;MAC1C,CAAC,CAAC,OAAOkB,CAAC,EAAE;QACV,OAAOA,CAAC;MACV;MAEA,MAAMgD,IAAI,GAAGF,IAAI,CAACoB,GAAG,CAAEF,GAAG,IACxBC,OAAO,CAACE,OAAO,CAACC,SAAS,CAACvB,QAAQ,CAACmB,GAAG,CAAC,CAAC,CAACK,QAAQ,CAAC,CACpD,CAAC;MAED,MAAM1E,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;QACvBC,OAAO,CAACC,GAAG,CAAC,qBAAqBJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;MACnD;MACA,OAAOsF,IAAI;IACb,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE1F,eAAA,6BAKqB,YAAuC;MAC1D,IAAI,CAAC,IAAI,CAACE,GAAG,EAAE;QACb,MAAM,IAAIC,KAAK,CACb,8DACF,CAAC;MACH;MAEA,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAE/B,MAAM,CAAC;QAAEqG;MAAQ,CAAC,EAAEpB,QAAQ,CAAC,GAAG,MAAMlE,OAAO,CAACC,GAAG,CAAC,CAChD/B,cAAc,CAAC,CAAC,EAChBC,cAAc,CAAC,CAAC,CACjB,CAAC;MAEF,IAAIgG,IAAc;MAClB,IAAI;QACFA,IAAI,GAAG,MAAM,IAAI,CAACtF,GAAG,CAACuB,kBAAkB,CAAC,CAAC;MAC5C,CAAC,CAAC,OAAOiB,CAAC,EAAE;QACV,OAAOA,CAAC;MACV;MAEA,MAAMgD,IAAI,GAAGF,IAAI,CAACoB,GAAG,CAAEF,GAAG,IACxBC,OAAO,CAACE,OAAO,CAACC,SAAS,CAACvB,QAAQ,CAACmB,GAAG,CAAC,CAAC,CAACK,QAAQ,CAAC,CACpD,CAAC;MAED,MAAM1E,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;QACvBC,OAAO,CAACC,GAAG,CAAC,uBAAuBJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;MACrD;MACA,OAAOsF,IAAI;IACb,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE1F,eAAA,mBAKW,YAEN;MACH,IAAI,CAAC,IAAI,CAACE,GAAG,EAAE;QACb,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;MACtE;MAEA,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAE/B,MAAM,CAAC;QAAEgF;MAAc,CAAC,EAAEC,QAAQ,CAAC,GAAG,MAAMlE,OAAO,CAACC,GAAG,CAAC,CACtD/B,cAAc,CAAC,CAAC,EAChBC,cAAc,CAAC,CAAC,CACjB,CAAC;MAEF,IAAIgG,IAAqB;MACzB,IAAI;QACFA,IAAI,GAAG,MAAM,IAAI,CAACtF,GAAG,CAACwB,QAAQ,CAAC,CAAC;MAClC,CAAC,CAAC,OAAOgB,CAAC,EAAE;QACV,OAAOA,CAAC;MACV;MAEA,MAAMgD,IAAI,GAAGF,IAAI,EAAEoB,GAAG,CAAEF,GAAG,IAAK;QAC9B,MAAMM,QAAQ,GAAG1B,aAAa,CAAC2B,wBAAwB,CAACrB,QAAQ,CAC9DL,QAAQ,CAACmB,GAAG,CACd,CAAC;;QAED;QACAM,QAAQ,CAACE,KAAK,GAAGF,QAAQ,CAACE,KAAK,CAACC,IAAI,CAACH,QAAQ,CAAC;QAC9CA,QAAQ,CAACI,MAAM,GAAGJ,QAAQ,CAACI,MAAM,CAACD,IAAI,CAACH,QAAQ,CAAC;QAChD,OAAOA,QAAQ;MACjB,CAAC,CAAC;MAEF,MAAM3E,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;QACvBC,OAAO,CAACC,GAAG,CAAC,aAAaJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;MAC3C;MACA,OAAOsF,IAAI;IACb,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE1F,eAAA,wBAKgB,YAAiD;MAC/D,IAAI,CAAC,IAAI,CAACE,GAAG,EAAE;QACb,MAAM,IAAIC,KAAK,CACb,yDACF,CAAC;MACH;MAEA,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC/B,IAAI;QACF,MAAM+G,OAAO,GAAG,IAAI,CAACnH,GAAG,CAACoH,YAAY,EAAElF,UAAU;QACjD,MAAMC,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;QAE7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;UACvBC,OAAO,CAACC,GAAG,CAAC,kBAAkBJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;QAChD;QAEA,OAAOiH,OAAO;MAChB,CAAC,CAAC,OAAO3E,CAAC,EAAE;QACV,OAAOA,CAAC;MACV;IACF,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE1C,eAAA,wBAKgB,YAEX;MACH,IAAI,CAAC,IAAI,CAACE,GAAG,EAAE;QACb,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;MACtE;MAEA,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAE/B,MAAM,CAAC;QAAEgF;MAAc,CAAC,EAAEC,QAAQ,CAAC,GAAG,MAAMlE,OAAO,CAACC,GAAG,CAAC,CACtD/B,cAAc,CAAC,CAAC,EAChBC,cAAc,CAAC,CAAC,CACjB,CAAC;MAEF,IAAIgG,IAAqB;MACzB,IAAI;QACF,MAAM+B,QAAQ,GACZ,IAAI,CAACrH,GAAG,EAAEyB,aAAa,IACtB,IAAI,CAACzB,GAAG,EAAEoH,YAAY,CAAC3F,aAA+B;QACzD,IAAI,OAAO4F,QAAQ,KAAK,UAAU,EAAE;UAClC/B,IAAI,GAAG,EAAE;QACX,CAAC,MAAM;UACLA,IAAI,GAAG,MAAM+B,QAAQ,CAAC,CAAC;QACzB;MACF,CAAC,CAAC,OAAO7E,CAAC,EAAE;QACV,OAAOA,CAAC;MACV;MAEA,MAAMgD,IAAI,GAAGF,IAAI,EAAEoB,GAAG,CAAEF,GAAG,IAAK;QAC9B,MAAMM,QAAQ,GAAG1B,aAAa,CAAC2B,wBAAwB,CAACrB,QAAQ,CAC9DL,QAAQ,CAACmB,GAAG,CACd,CAAC;;QAED;QACAM,QAAQ,CAACE,KAAK,GAAGF,QAAQ,CAACE,KAAK,CAACC,IAAI,CAACH,QAAQ,CAAC;QAC9CA,QAAQ,CAACI,MAAM,GAAGJ,QAAQ,CAACI,MAAM,CAACD,IAAI,CAACH,QAAQ,CAAC;QAChD,OAAOA,QAAQ;MACjB,CAAC,CAAC;MAEF,MAAM3E,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;QACvBC,OAAO,CAACC,GAAG,CAAC,kBAAkBJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;MAChD;MACA,OAAOsF,IAAI;IACb,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;AACA;IANE1F,eAAA,sCAOsC,MACpCwH,QAAkB,IACsB;MACxC,MAAMpH,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAE/B,IAAI,IAAI,CAAC4E,eAAe,EAAE;QACxB,MAAMuC,UAAU,GAAG,IAAIC,GAAG,CAAC,IAAI,CAACxC,eAAe,CAACa,IAAI,CAAC,CAAC,CAAC;QACvD,MAAM4B,SAAS,GAAG,IAAID,GAAG,CAACF,QAAQ,CAAC;QAEnC,IACEC,UAAU,CAACG,IAAI,KAAKD,SAAS,CAACC,IAAI,IAClC,CAAC,GAAGH,UAAU,CAAC,CAACI,KAAK,CAAEC,GAAG,IAAKH,SAAS,CAACI,GAAG,CAACD,GAAG,CAAC,CAAC,EAClD;UACA,MAAMzF,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;UAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;YACvBC,OAAO,CAACC,GAAG,CAAC,8BAA8BJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;UAC5D;UACA,OAAO,IAAI,CAAC8E,eAAe;QAC7B;MACF;MAEA,IAAIrC,QAAQ,GAAG,CAAC;MAChB,IAAImF,WAAmD;MACvD,OAAOnF,QAAQ,IAAI,CAAC,IAAI,CAACmF,WAAW,EAAE;QACpC,IAAI;UACFA,WAAW,GAAG,MAAM,IAAI,CAAC1F,QAAQ,CAAC2F,gBAAgB,CAAC;YACjDT,QAAQ,EAAEA,QAAQ,CAACZ,GAAG,CAACtH,uBAAuB,CAAC;YAC/C4I,gBAAgB,EAAE5I,uBAAuB;YACzCD;UACF,CAAC,CAAC;QACJ,CAAC,CAAC,OAAOqD,CAAC,EAAE;UACVG,QAAQ,EAAE;QACZ;MACF;MAEA,IAAI,CAACmF,WAAW,EAAE;QAChBA,WAAW,GAAG,MAAM,IAAI,CAACG,wBAAwB,CAAC;UAChDX,QAAQ,EAAEA,QAAQ,CAACZ,GAAG,CAACtH,uBAAuB,CAAC;UAC/C4I,gBAAgB,EAAE5I,uBAAuB;UACzCD;QACF,CAAC,CAAC;MACJ;MAEA,IAAI,CAAC6F,eAAe,GAAG8C,WAAW;MAElC,MAAM3F,GAAG,GAAGhC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAI,IAAI,CAACgC,QAAQ,CAACC,KAAK,EAAE;QACvBC,OAAO,CAACC,GAAG,CAAC,qBAAqBJ,GAAG,GAAGjC,KAAK,IAAI,CAAC;MACnD;MACA,OAAO4H,WAAW;IACpB,CAAC;IAED;AACF;AACA;AACA;AACA;IAJEhI,eAAA,mCAME,OAAO;MAAEwH;IAAS,CAAC,KAAK;MACtB,MAAMZ,GAAG,GAAG,IAAI3G,GAAG,CAAwB,CAAC;MAC5CuH,QAAQ,CAACY,OAAO,CAAE7B,EAAE,IAClBK,GAAG,CAACV,GAAG,CAAC5G,uBAAuB,CAACiH,EAAE,CAAC,EAAE;QACnC8B,OAAO,EAAE/I,uBAAuB,CAACiH,EAAE,CAAC;QACpC+B,QAAQ,EAAE;MACZ,CAAkB,CACpB,CAAC;MAED,OAAO1B,GAAG;IACZ,CAAC;IAhqBD,IAAI,CAACtE,QAAQ,GAAGpD,KAAK,CACnB;MACE+I,gBAAgB,EAAE,IAAI,CAACE,wBAAwB;MAC/ClE,WAAW,EAAE,KAAK;MAClBD,cAAc,EAAE,KAAK;MACrBzB,KAAK,EAAE,KAAK;MACZqC,eAAe,EAAE;QACfE,QAAQ,EAAE;UACRD,IAAI,EAAE,iCAAiC;UACvC0D,GAAG,EAAEvF,MAAM,CAACwF,QAAQ,CAACC;QACvB,CAAC;QACDC,UAAU,EAAEA,CAAC7D,IAAI,EAAEwC,OAAO,KAAK;UAC7BtH,OAAO,EAAE6E,eAAe,EAAE8D,UAAU,GAAG7D,IAAI,EAAEwC,OAAO,CAAC;UACrD,IAAI,CAACsB,UAAU,CAAC,CAAC;QACnB,CAAC;QACDC,WAAW,EAAEA,CAAC/D,IAAI,EAAEwC,OAAO,KAAK;UAC9BtH,OAAO,EAAE6E,eAAe,EAAEgE,WAAW,GAAG/D,IAAI,EAAEwC,OAAO,CAAC;UACtD,IAAI,CAACwB,aAAa,CAAChE,IAAI,CAAC;QAC1B,CAAC;QACDiE,gBAAgBA,CAACC,UAAU,EAAEC,QAAQ,EAAE;UACrC,OAAOA,QAAQ,CAAC,IAAI,EAAED,UAAU,CAACE,kBAAkB,IAAI,IAAI,CAAC;QAC9D,CAAC;QACDC,kBAAkB,EAAE,IAAI;QACxBC,QAAQ,EAAE,CACR,+BAA+B,EAC/B,+BAA+B,EAC/B,+BAA+B;MAEnC;IACF,CAAC,EACDpJ,OACF,CAAC;IAED,IAAI,CAAC,IAAI,CAACuC,QAAQ,CAAC2B,WAAW,EAAE;MAC9B;IACF;EACF;EAmFA;AACF;AACA;AACA;AACA;AACA;AACA;EACEmF,SAASA,CAAA,EAAY;IACnB,OAAO,IAAI,CAAC7I,eAAe;EAC7B;;EAEA;AACF;AACA;AACA;AACA;EACE8I,mBAAmBA,CAAA,EAAY;IAC7B,OAAOC,OAAO,CAAC,IAAI,CAAC3G,YAAY,IAAI,IAAI,CAACzC,GAAG,CAAC;EAC/C;EAyhBA;AACF;AACA;AACA;AACA;EACE,MAAaqJ,QAAQA,CAAA,EAAiC;IACpD,IAAI,CAAC,IAAI,CAACC,KAAK,EAAE;MACf,IAAI,CAACA,KAAK,GAAG,MAAM5J,mBAAmB,CAAC6J,GAAG,CAAC,IAAI,CAACtH,OAAO,CAAC;IAC1D;IAEA,OAAO,IAAI,CAACqH,KAAK;EACnB;AACF;AAACxJ,eAAA,CAvsBYH,cAAc,2BAGM,gBAAgB","ignoreList":[]}