@sundaeswap/wallet-lite 0.0.25 → 0.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/cjs/classes/WalletObserver.class.js +11 -0
  2. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  3. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +13 -20
  4. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  5. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +6 -8
  6. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +1 -1
  7. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +106 -71
  8. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  9. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  10. package/dist/cjs/react-components/hooks/useWalletHandles.js +67 -52
  11. package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
  12. package/dist/cjs/react-components/hooks/useWalletObserver.js +6 -3
  13. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  14. package/dist/esm/classes/WalletObserver.class.js +9 -0
  15. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  16. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +7 -11
  17. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  18. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js +6 -8
  19. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.js.map +1 -1
  20. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +57 -40
  21. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  22. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  23. package/dist/esm/react-components/hooks/useWalletHandles.js +31 -24
  24. package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
  25. package/dist/esm/react-components/hooks/useWalletObserver.js +6 -3
  26. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  27. package/dist/types/classes/WalletObserver.class.d.ts +6 -0
  28. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  29. package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
  30. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.d.ts +2 -1
  31. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.d.ts.map +1 -1
  32. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +4 -0
  33. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  34. package/dist/types/react-components/contexts/observer/types.d.ts +3 -0
  35. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  36. package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
  37. package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
  38. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  39. package/package.json +1 -1
  40. package/src/classes/WalletObserver.class.ts +9 -0
  41. package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +6 -9
  42. package/src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts +7 -13
  43. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +90 -67
  44. package/src/react-components/contexts/observer/types.ts +3 -0
  45. package/src/react-components/hooks/useWalletHandles.ts +69 -62
  46. package/src/react-components/hooks/useWalletObserver.ts +7 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletHandles.js","names":["_react","require","_WalletAssetMapClass","_assets","_useWalletObserver","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_regeneratorRuntime","Object","prototype","hasOwnProperty","defineProperty","i","c","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","_getRequireWildcardCache","WeakMap","_interopRequireWildcard","__esModule","has","get","set","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","test","useWalletHandles","exports","state","useWalletObserver","_useState","useState","_useState2","loadingHandles","setLoadingHandles","_useState3","WalletAssetMap","_useState4","handles","setHandles","memoizedHandleDep","useMemo","balance","getHandles","syncHandles","useCallback","_callee","walletHandles","HandleClient","context","sdk","walletHandlesWithDataArray","walletHandleDataArray","_callee$","_context","size","network","HandleClientContext","MAINNET","PREVIEW","provider","KoraLabsProvider","entries","getAllDataBatch","map","_ref2","_ref3","key","split","_ref4","_ref5","asset","matchingData","find","_ref6","hex","normalizeAssetIdWithDot","withMetadata","metadata","assetId","decimals","withAmount","t0","console","log","useEffect","newHandles","prevHandles","handleMetadataChanged","_iterator","_step","_prevHandles$get","_step$value","val","amount","err","prevValue","data"],"sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { IHandle } from \"@koralabs/adahandle-sdk\";\nimport { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { TAssetAmountMap } from \"../../@types/observer.js\";\nimport { WalletAssetMap } from \"../../classes/WalletAssetMap.class.js\";\nimport { normalizeAssetIdWithDot } from \"../../utils/assets.js\";\nimport { THandleMetadata } from \"../contexts/observer/types.js\";\nimport { useWalletObserver } from \"./useWalletObserver.js\";\n\nexport const useWalletHandles = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>() => {\n const state = useWalletObserver<THandleMetadata<AssetMetadata>>();\n const [loadingHandles, setLoadingHandles] = useState(true);\n const [handles, setHandles] = useState<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(new WalletAssetMap());\n const memoizedHandleDep = useMemo(\n () => [...state.balance.getHandles().keys()],\n [state.balance]\n );\n\n const syncHandles = useCallback<\n () => Promise<TAssetAmountMap<THandleMetadata<AssetMetadata>>>\n >(async () => {\n // Make a copy of our wallet map.\n const walletHandles: TAssetAmountMap<THandleMetadata<AssetMetadata>> =\n new WalletAssetMap([...state.balance.getHandles()]);\n\n if (walletHandles.size === 0) {\n return walletHandles;\n }\n\n try {\n const HandleClient = await import(\"@koralabs/adahandle-sdk\");\n const context =\n state.network === 1\n ? HandleClient.HandleClientContext.MAINNET\n : HandleClient.HandleClientContext.PREVIEW;\n\n // @ts-ignore Type isn't exported from default.\n const sdk = new HandleClient({\n context,\n provider: new HandleClient.KoraLabsProvider(context),\n });\n\n // Restore once SDK updated\n const walletHandlesWithDataArray = [...walletHandles.entries()];\n const walletHandleDataArray: IHandle[] = await sdk\n .provider()\n .getAllDataBatch(\n walletHandlesWithDataArray.map(([key]) => ({\n value: key.split(\".\")[1],\n }))\n );\n\n walletHandlesWithDataArray.forEach(([key, asset]) => {\n const matchingData = walletHandleDataArray.find(\n ({ hex }) => hex === key.split(\".\")[1]\n ) as IHandle;\n\n walletHandles.set(\n normalizeAssetIdWithDot(key),\n asset\n .withMetadata({\n ...matchingData,\n ...asset.metadata,\n assetId: normalizeAssetIdWithDot(asset.metadata.assetId),\n decimals: 0,\n })\n .withAmount(1n)\n );\n });\n\n return walletHandles;\n } catch (e) {\n console.log(e);\n return walletHandles;\n }\n // We only want to update the callback if the Handle keys change.\n }, [state.balance, setLoadingHandles]);\n\n useEffect(() => {\n syncHandles()\n .then((newHandles) => {\n setHandles((prevHandles) => {\n let handleMetadataChanged = false;\n\n if (newHandles.size !== prevHandles?.size) {\n handleMetadataChanged = true;\n } else {\n for (const [key, val] of newHandles) {\n if (\n !prevHandles.has(key) ||\n prevHandles.get(key)?.amount !== val?.amount\n ) {\n handleMetadataChanged = true;\n }\n }\n }\n\n if (!handleMetadataChanged) {\n return prevHandles;\n }\n\n return newHandles;\n });\n })\n .then(() => setLoadingHandles((prevValue) => !prevValue));\n }, [memoizedHandleDep, syncHandles, setHandles, setLoadingHandles]);\n\n const data = useMemo(\n () => ({\n handles,\n loadingHandles,\n }),\n [handles, loadingHandles]\n );\n\n return data;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useWalletHandles.js","names":["_react","require","_WalletAssetMapClass","_assets","_useWalletObserver","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_regeneratorRuntime","Object","prototype","hasOwnProperty","defineProperty","i","c","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","_getRequireWildcardCache","WeakMap","_interopRequireWildcard","__esModule","has","get","set","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","test","useWalletHandles","exports","state","useWalletObserver","_useState","useState","_useState2","loadingHandles","setLoadingHandles","_useState3","WalletAssetMap","_useState4","handles","setHandles","memoizedHandleDep","useMemo","balance","getHandles","syncHandles","useCallback","_callee2","walletHandles","_callee2$","_context2","size","_ref3","_callee","_ref2","HandleClient","HandleClientContext","KoraLabsProvider","context","sdk","walletHandlesWithDataArray","walletHandleDataArray","_callee$","_context","network","MAINNET","PREVIEW","provider","entries","getAllDataBatch","map","_ref4","_ref5","key","split","_ref6","_ref7","asset","matchingData","find","_ref8","hex","normalizeAssetIdWithDot","withMetadata","metadata","assetId","decimals","withAmount","_x","t0","console","log","useEffect","newHandles","prevHandles","handleMetadataChanged","_iterator","_step","_prevHandles$get","_step$value","val","amount","err","data"],"sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { IHandle } from \"@koralabs/adahandle-sdk\";\nimport { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { TAssetAmountMap } from \"../../@types/observer.js\";\nimport { WalletAssetMap } from \"../../classes/WalletAssetMap.class.js\";\nimport { normalizeAssetIdWithDot } from \"../../utils/assets.js\";\nimport { THandleMetadata } from \"../contexts/observer/types.js\";\nimport { useWalletObserver } from \"./useWalletObserver.js\";\n\nexport const useWalletHandles = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>() => {\n const state = useWalletObserver<THandleMetadata<AssetMetadata>>();\n const [loadingHandles, setLoadingHandles] = useState(true);\n const [handles, setHandles] = useState<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(new WalletAssetMap());\n const memoizedHandleDep = useMemo(\n () => [...state.balance.getHandles().keys()],\n [state.balance]\n );\n\n const syncHandles = useCallback<\n () => Promise<TAssetAmountMap<THandleMetadata<AssetMetadata>>>\n >(async () => {\n // Make a copy of our wallet map.\n const walletHandles: TAssetAmountMap<THandleMetadata<AssetMetadata>> =\n new WalletAssetMap([...state.balance.getHandles()]);\n\n if (walletHandles.size === 0) {\n return walletHandles;\n }\n\n try {\n await import(\"@koralabs/adahandle-sdk\").then(\n async ({\n default: HandleClient,\n HandleClientContext,\n KoraLabsProvider,\n }) => {\n setLoadingHandles(true);\n const context =\n state.network === 1\n ? HandleClientContext.MAINNET\n : HandleClientContext.PREVIEW;\n\n // @ts-ignore Type isn't exported from default.\n const sdk = new HandleClient({\n context,\n provider: new KoraLabsProvider(context),\n });\n\n // Restore once SDK updated\n const walletHandlesWithDataArray = [...walletHandles.entries()];\n const walletHandleDataArray: IHandle[] = await sdk\n .provider()\n .getAllDataBatch(\n walletHandlesWithDataArray.map(([key]) => ({\n value: key.split(\".\")[1],\n }))\n );\n\n walletHandlesWithDataArray.forEach(([key, asset]) => {\n const matchingData = walletHandleDataArray.find(\n ({ hex }) => hex === key.split(\".\")[1]\n ) as IHandle;\n\n walletHandles.set(\n normalizeAssetIdWithDot(key),\n asset\n .withMetadata({\n ...matchingData,\n ...asset.metadata,\n assetId: normalizeAssetIdWithDot(asset.metadata.assetId),\n decimals: 0,\n })\n .withAmount(1n)\n );\n });\n }\n );\n\n return walletHandles;\n } catch (e) {\n console.log(e);\n return walletHandles;\n }\n // We only want to update the callback if the Handle keys change.\n }, [state.balance]);\n\n useEffect(() => {\n syncHandles().then((newHandles) => {\n setHandles((prevHandles) => {\n let handleMetadataChanged = false;\n\n if (newHandles.size !== prevHandles?.size) {\n handleMetadataChanged = true;\n } else {\n for (const [key, val] of newHandles) {\n if (\n !prevHandles.has(key) ||\n prevHandles.get(key)?.amount !== val?.amount\n ) {\n handleMetadataChanged = true;\n }\n }\n }\n\n if (!handleMetadataChanged) {\n return prevHandles;\n }\n\n return newHandles;\n });\n setLoadingHandles(() => false);\n });\n }, [memoizedHandleDep, syncHandles, setHandles, setLoadingHandles]);\n\n const data = useMemo(\n () => ({\n handles,\n loadingHandles,\n }),\n [handles, loadingHandles]\n );\n\n return data;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,kBAAA,GAAAH,OAAA;AAA2D,SAAAI,2BAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,yBAAAC,MAAA,IAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,CAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,CAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,CAAA,IAAAD,CAAA,uBAAAA,CAAA,CAAAQ,MAAA,IAAAN,CAAA,KAAAF,CAAA,GAAAE,CAAA,OAAAO,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,WAAAH,EAAA,IAAAT,CAAA,CAAAQ,MAAA,KAAAK,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAAd,CAAA,CAAAS,EAAA,UAAAR,CAAA,WAAAA,EAAAD,CAAA,UAAAA,CAAA,KAAAe,CAAA,EAAAL,CAAA,gBAAAM,SAAA,iJAAAC,CAAA,EAAAC,CAAA,OAAAC,CAAA,gBAAAR,CAAA,WAAAA,EAAA,IAAAT,CAAA,GAAAA,CAAA,CAAAkB,IAAA,CAAApB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAZ,CAAA,GAAAE,CAAA,CAAAmB,IAAA,WAAAH,CAAA,GAAAlB,CAAA,CAAAa,IAAA,EAAAb,CAAA,KAAAC,CAAA,WAAAA,EAAAD,CAAA,IAAAmB,CAAA,OAAAF,CAAA,GAAAjB,CAAA,KAAAe,CAAA,WAAAA,EAAA,UAAAG,CAAA,YAAAhB,CAAA,cAAAA,CAAA,8BAAAiB,CAAA,QAAAF,CAAA;AAAA,SAAAK,oBAAA,kBAP3D,qJAAAA,mBAAA,YAAAA,oBAAA,WAAArB,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAD,CAAA,GAAAuB,MAAA,CAAAC,SAAA,EAAAZ,CAAA,GAAAZ,CAAA,CAAAyB,cAAA,EAAAR,CAAA,GAAAM,MAAA,CAAAG,cAAA,cAAAxB,CAAA,EAAAD,CAAA,EAAAD,CAAA,IAAAE,CAAA,CAAAD,CAAA,IAAAD,CAAA,CAAAc,KAAA,KAAAa,CAAA,wBAAAxB,MAAA,GAAAA,MAAA,OAAAe,CAAA,GAAAS,CAAA,CAAAvB,QAAA,kBAAAwB,CAAA,GAAAD,CAAA,CAAAE,aAAA,uBAAAV,CAAA,GAAAQ,CAAA,CAAAG,WAAA,8BAAAC,OAAA7B,CAAA,EAAAD,CAAA,EAAAD,CAAA,WAAAuB,MAAA,CAAAG,cAAA,CAAAxB,CAAA,EAAAD,CAAA,IAAAa,KAAA,EAAAd,CAAA,EAAAgC,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAAhC,CAAA,CAAAD,CAAA,WAAA8B,MAAA,mBAAA7B,CAAA,IAAA6B,MAAA,YAAAA,OAAA7B,CAAA,EAAAD,CAAA,EAAAD,CAAA,WAAAE,CAAA,CAAAD,CAAA,IAAAD,CAAA,gBAAAmC,KAAAjC,CAAA,EAAAD,CAAA,EAAAD,CAAA,EAAAY,CAAA,QAAAe,CAAA,GAAA1B,CAAA,IAAAA,CAAA,CAAAuB,SAAA,YAAAY,SAAA,GAAAnC,CAAA,GAAAmC,SAAA,EAAAlB,CAAA,GAAAK,MAAA,CAAAc,MAAA,CAAAV,CAAA,CAAAH,SAAA,GAAAI,CAAA,OAAAU,OAAA,CAAA1B,CAAA,gBAAAK,CAAA,CAAAC,CAAA,eAAAJ,KAAA,EAAAyB,gBAAA,CAAArC,CAAA,EAAAF,CAAA,EAAA4B,CAAA,MAAAV,CAAA,aAAAsB,SAAAtC,CAAA,EAAAD,CAAA,EAAAD,CAAA,mBAAAyC,IAAA,YAAAC,GAAA,EAAAxC,CAAA,CAAAkB,IAAA,CAAAnB,CAAA,EAAAD,CAAA,cAAAE,CAAA,aAAAuC,IAAA,WAAAC,GAAA,EAAAxC,CAAA,QAAAD,CAAA,CAAAkC,IAAA,GAAAA,IAAA,MAAAQ,CAAA,qBAAAC,CAAA,qBAAA7B,CAAA,gBAAAJ,CAAA,gBAAAkC,CAAA,gBAAAT,UAAA,cAAAU,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAAjB,MAAA,CAAAiB,CAAA,EAAA9B,CAAA,qCAAA+B,CAAA,GAAA1B,MAAA,CAAA2B,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAnD,CAAA,IAAAY,CAAA,CAAAQ,IAAA,CAAA+B,CAAA,EAAAjC,CAAA,MAAA8B,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAAvB,SAAA,GAAAY,SAAA,CAAAZ,SAAA,GAAAD,MAAA,CAAAc,MAAA,CAAAW,CAAA,YAAAM,sBAAApD,CAAA,gCAAAqD,OAAA,WAAAtD,CAAA,IAAA8B,MAAA,CAAA7B,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAAsD,OAAA,CAAAvD,CAAA,EAAAC,CAAA,sBAAAuD,cAAAvD,CAAA,EAAAD,CAAA,aAAAyD,OAAA1D,CAAA,EAAAiB,CAAA,EAAAU,CAAA,EAAAT,CAAA,QAAAU,CAAA,GAAAY,QAAA,CAAAtC,CAAA,CAAAF,CAAA,GAAAE,CAAA,EAAAe,CAAA,mBAAAW,CAAA,CAAAa,IAAA,QAAAtB,CAAA,GAAAS,CAAA,CAAAc,GAAA,EAAAC,CAAA,GAAAxB,CAAA,CAAAL,KAAA,SAAA6B,CAAA,gBAAAgB,OAAA,CAAAhB,CAAA,KAAA/B,CAAA,CAAAQ,IAAA,CAAAuB,CAAA,eAAA1C,CAAA,CAAA2D,OAAA,CAAAjB,CAAA,CAAAkB,OAAA,EAAAC,IAAA,WAAA5D,CAAA,IAAAwD,MAAA,SAAAxD,CAAA,EAAAyB,CAAA,EAAAT,CAAA,gBAAAhB,CAAA,IAAAwD,MAAA,UAAAxD,CAAA,EAAAyB,CAAA,EAAAT,CAAA,QAAAjB,CAAA,CAAA2D,OAAA,CAAAjB,CAAA,EAAAmB,IAAA,WAAA5D,CAAA,IAAAiB,CAAA,CAAAL,KAAA,GAAAZ,CAAA,EAAAyB,CAAA,CAAAR,CAAA,gBAAAjB,CAAA,WAAAwD,MAAA,UAAAxD,CAAA,EAAAyB,CAAA,EAAAT,CAAA,SAAAA,CAAA,CAAAU,CAAA,CAAAc,GAAA,SAAA1C,CAAA,EAAAiB,CAAA,oBAAAH,KAAA,WAAAA,MAAAZ,CAAA,EAAAU,CAAA,aAAAmD,2BAAA,eAAA9D,CAAA,WAAAA,CAAA,EAAAD,CAAA,IAAA0D,MAAA,CAAAxD,CAAA,EAAAU,CAAA,EAAAX,CAAA,EAAAD,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAA8D,IAAA,CAAAC,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAAxB,iBAAAtC,CAAA,EAAAD,CAAA,EAAAY,CAAA,QAAAK,CAAA,GAAA0B,CAAA,mBAAAhB,CAAA,EAAAT,CAAA,QAAAD,CAAA,KAAAF,CAAA,QAAAiD,KAAA,sCAAA/C,CAAA,KAAAN,CAAA,oBAAAgB,CAAA,QAAAT,CAAA,WAAAJ,KAAA,EAAAZ,CAAA,EAAAW,IAAA,eAAAD,CAAA,CAAAqD,MAAA,GAAAtC,CAAA,EAAAf,CAAA,CAAA8B,GAAA,GAAAxB,CAAA,UAAAU,CAAA,GAAAhB,CAAA,CAAAsD,QAAA,MAAAtC,CAAA,QAAAT,CAAA,GAAAgD,mBAAA,CAAAvC,CAAA,EAAAhB,CAAA,OAAAO,CAAA,QAAAA,CAAA,KAAA0B,CAAA,mBAAA1B,CAAA,qBAAAP,CAAA,CAAAqD,MAAA,EAAArD,CAAA,CAAAwD,IAAA,GAAAxD,CAAA,CAAAyD,KAAA,GAAAzD,CAAA,CAAA8B,GAAA,sBAAA9B,CAAA,CAAAqD,MAAA,QAAAhD,CAAA,KAAA0B,CAAA,QAAA1B,CAAA,GAAAN,CAAA,EAAAC,CAAA,CAAA8B,GAAA,EAAA9B,CAAA,CAAA0D,iBAAA,CAAA1D,CAAA,CAAA8B,GAAA,uBAAA9B,CAAA,CAAAqD,MAAA,IAAArD,CAAA,CAAA2D,MAAA,WAAA3D,CAAA,CAAA8B,GAAA,GAAAzB,CAAA,GAAAF,CAAA,MAAAiC,CAAA,GAAAR,QAAA,CAAAvC,CAAA,EAAAD,CAAA,EAAAY,CAAA,oBAAAoC,CAAA,CAAAP,IAAA,QAAAxB,CAAA,GAAAL,CAAA,CAAAC,IAAA,GAAAF,CAAA,GAAAiC,CAAA,EAAAI,CAAA,CAAAN,GAAA,KAAAG,CAAA,qBAAA/B,KAAA,EAAAkC,CAAA,CAAAN,GAAA,EAAA7B,IAAA,EAAAD,CAAA,CAAAC,IAAA,kBAAAmC,CAAA,CAAAP,IAAA,KAAAxB,CAAA,GAAAN,CAAA,EAAAC,CAAA,CAAAqD,MAAA,YAAArD,CAAA,CAAA8B,GAAA,GAAAM,CAAA,CAAAN,GAAA,mBAAAyB,oBAAAlE,CAAA,EAAAD,CAAA,QAAAY,CAAA,GAAAZ,CAAA,CAAAiE,MAAA,EAAAhD,CAAA,GAAAhB,CAAA,CAAAG,QAAA,CAAAQ,CAAA,OAAAK,CAAA,KAAAf,CAAA,SAAAF,CAAA,CAAAkE,QAAA,qBAAAtD,CAAA,IAAAX,CAAA,CAAAG,QAAA,eAAAJ,CAAA,CAAAiE,MAAA,aAAAjE,CAAA,CAAA0C,GAAA,GAAAxC,CAAA,EAAAiE,mBAAA,CAAAlE,CAAA,EAAAD,CAAA,eAAAA,CAAA,CAAAiE,MAAA,kBAAArD,CAAA,KAAAZ,CAAA,CAAAiE,MAAA,YAAAjE,CAAA,CAAA0C,GAAA,OAAA1B,SAAA,uCAAAJ,CAAA,iBAAAiC,CAAA,MAAAlB,CAAA,GAAAa,QAAA,CAAAvB,CAAA,EAAAhB,CAAA,CAAAG,QAAA,EAAAJ,CAAA,CAAA0C,GAAA,mBAAAf,CAAA,CAAAc,IAAA,SAAAzC,CAAA,CAAAiE,MAAA,YAAAjE,CAAA,CAAA0C,GAAA,GAAAf,CAAA,CAAAe,GAAA,EAAA1C,CAAA,CAAAkE,QAAA,SAAArB,CAAA,MAAA3B,CAAA,GAAAS,CAAA,CAAAe,GAAA,SAAAxB,CAAA,GAAAA,CAAA,CAAAL,IAAA,IAAAb,CAAA,CAAAC,CAAA,CAAAuE,UAAA,IAAAtD,CAAA,CAAAJ,KAAA,EAAAd,CAAA,CAAAqB,IAAA,GAAApB,CAAA,CAAAwE,OAAA,eAAAzE,CAAA,CAAAiE,MAAA,KAAAjE,CAAA,CAAAiE,MAAA,WAAAjE,CAAA,CAAA0C,GAAA,GAAAxC,CAAA,GAAAF,CAAA,CAAAkE,QAAA,SAAArB,CAAA,IAAA3B,CAAA,IAAAlB,CAAA,CAAAiE,MAAA,YAAAjE,CAAA,CAAA0C,GAAA,OAAA1B,SAAA,sCAAAhB,CAAA,CAAAkE,QAAA,SAAArB,CAAA,cAAA6B,aAAAxE,CAAA,QAAAD,CAAA,KAAA0E,MAAA,EAAAzE,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAA2E,QAAA,GAAA1E,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAA4E,UAAA,GAAA3E,CAAA,KAAAD,CAAA,CAAA6E,QAAA,GAAA5E,CAAA,WAAA6E,UAAA,CAAAC,IAAA,CAAA/E,CAAA,cAAAgF,cAAA/E,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAAgF,UAAA,QAAAjF,CAAA,CAAAwC,IAAA,oBAAAxC,CAAA,CAAAyC,GAAA,EAAAxC,CAAA,CAAAgF,UAAA,GAAAjF,CAAA,aAAAqC,QAAApC,CAAA,SAAA6E,UAAA,MAAAJ,MAAA,aAAAzE,CAAA,CAAAqD,OAAA,CAAAmB,YAAA,cAAAS,KAAA,iBAAA/B,OAAAnD,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAAiB,CAAA,OAAAlB,CAAA,SAAAA,CAAA,CAAAoB,IAAA,CAAAnB,CAAA,4BAAAA,CAAA,CAAAoB,IAAA,SAAApB,CAAA,OAAAmF,KAAA,CAAAnF,CAAA,CAAAO,MAAA,SAAAS,CAAA,OAAAU,CAAA,YAAAN,KAAA,aAAAJ,CAAA,GAAAhB,CAAA,CAAAO,MAAA,OAAAI,CAAA,CAAAQ,IAAA,CAAAnB,CAAA,EAAAgB,CAAA,UAAAI,IAAA,CAAAP,KAAA,GAAAb,CAAA,CAAAgB,CAAA,GAAAI,IAAA,CAAAR,IAAA,OAAAQ,IAAA,SAAAA,IAAA,CAAAP,KAAA,GAAAZ,CAAA,EAAAmB,IAAA,CAAAR,IAAA,OAAAQ,IAAA,YAAAM,CAAA,CAAAN,IAAA,GAAAM,CAAA,gBAAAX,SAAA,CAAA2C,OAAA,CAAA1D,CAAA,kCAAA6C,iBAAA,CAAAtB,SAAA,GAAAuB,0BAAA,EAAA9B,CAAA,CAAAoC,CAAA,mBAAAvC,KAAA,EAAAiC,0BAAA,EAAAd,YAAA,SAAAhB,CAAA,CAAA8B,0BAAA,mBAAAjC,KAAA,EAAAgC,iBAAA,EAAAb,YAAA,SAAAa,iBAAA,CAAAuC,WAAA,GAAAtD,MAAA,CAAAgB,0BAAA,EAAA5B,CAAA,wBAAAlB,CAAA,CAAAqF,mBAAA,aAAApF,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAqF,WAAA,WAAAtF,CAAA,KAAAA,CAAA,KAAA6C,iBAAA,6BAAA7C,CAAA,CAAAoF,WAAA,IAAApF,CAAA,CAAAuF,IAAA,OAAAvF,CAAA,CAAAwF,IAAA,aAAAvF,CAAA,WAAAqB,MAAA,CAAAmE,cAAA,GAAAnE,MAAA,CAAAmE,cAAA,CAAAxF,CAAA,EAAA6C,0BAAA,KAAA7C,CAAA,CAAAyF,SAAA,GAAA5C,0BAAA,EAAAhB,MAAA,CAAA7B,CAAA,EAAAiB,CAAA,yBAAAjB,CAAA,CAAAsB,SAAA,GAAAD,MAAA,CAAAc,MAAA,CAAAgB,CAAA,GAAAnD,CAAA,KAAAD,CAAA,CAAA2F,KAAA,aAAA1F,CAAA,aAAA2D,OAAA,EAAA3D,CAAA,OAAAoD,qBAAA,CAAAG,aAAA,CAAAjC,SAAA,GAAAO,MAAA,CAAA0B,aAAA,CAAAjC,SAAA,EAAAI,CAAA,iCAAA3B,CAAA,CAAAwD,aAAA,GAAAA,aAAA,EAAAxD,CAAA,CAAA4F,KAAA,aAAA3F,CAAA,EAAAF,CAAA,EAAAY,CAAA,EAAAK,CAAA,EAAAU,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAAmE,OAAA,OAAA5E,CAAA,OAAAuC,aAAA,CAAAtB,IAAA,CAAAjC,CAAA,EAAAF,CAAA,EAAAY,CAAA,EAAAK,CAAA,GAAAU,CAAA,UAAA1B,CAAA,CAAAqF,mBAAA,CAAAtF,CAAA,IAAAkB,CAAA,GAAAA,CAAA,CAAAG,IAAA,GAAAyC,IAAA,WAAA5D,CAAA,WAAAA,CAAA,CAAAW,IAAA,GAAAX,CAAA,CAAAY,KAAA,GAAAI,CAAA,CAAAG,IAAA,WAAAiC,qBAAA,CAAAD,CAAA,GAAAtB,MAAA,CAAAsB,CAAA,EAAAlC,CAAA,gBAAAY,MAAA,CAAAsB,CAAA,EAAAnC,CAAA,iCAAAa,MAAA,CAAAsB,CAAA,6DAAApD,CAAA,CAAA8F,IAAA,aAAA7F,CAAA,QAAAD,CAAA,GAAAsB,MAAA,CAAArB,CAAA,GAAAF,CAAA,gBAAAY,CAAA,IAAAX,CAAA,EAAAD,CAAA,CAAAgF,IAAA,CAAApE,CAAA,UAAAZ,CAAA,CAAAgG,OAAA,aAAA3E,KAAA,WAAArB,CAAA,CAAAQ,MAAA,SAAAN,CAAA,GAAAF,CAAA,CAAAiG,GAAA,QAAA/F,CAAA,IAAAD,CAAA,SAAAoB,IAAA,CAAAP,KAAA,GAAAZ,CAAA,EAAAmB,IAAA,CAAAR,IAAA,OAAAQ,IAAA,WAAAA,IAAA,CAAAR,IAAA,OAAAQ,IAAA,QAAApB,CAAA,CAAAmD,MAAA,GAAAA,MAAA,EAAAd,OAAA,CAAAd,SAAA,KAAA+D,WAAA,EAAAjD,OAAA,EAAA6C,KAAA,WAAAA,MAAAlF,CAAA,aAAAiG,IAAA,WAAA7E,IAAA,WAAA+C,IAAA,QAAAC,KAAA,GAAAnE,CAAA,OAAAW,IAAA,YAAAqD,QAAA,cAAAD,MAAA,gBAAAvB,GAAA,GAAAxC,CAAA,OAAA6E,UAAA,CAAAxB,OAAA,CAAA0B,aAAA,IAAAhF,CAAA,WAAAD,CAAA,kBAAAA,CAAA,CAAAmG,MAAA,OAAAvF,CAAA,CAAAQ,IAAA,OAAApB,CAAA,MAAAoF,KAAA,EAAApF,CAAA,CAAAoG,KAAA,cAAApG,CAAA,IAAAE,CAAA,MAAAmG,IAAA,WAAAA,KAAA,SAAAxF,IAAA,WAAAX,CAAA,QAAA6E,UAAA,IAAAG,UAAA,kBAAAhF,CAAA,CAAAuC,IAAA,QAAAvC,CAAA,CAAAwC,GAAA,cAAA4D,IAAA,KAAAhC,iBAAA,WAAAA,kBAAArE,CAAA,aAAAY,IAAA,QAAAZ,CAAA,MAAAD,CAAA,kBAAAuG,OAAA3F,CAAA,EAAAK,CAAA,WAAAC,CAAA,CAAAuB,IAAA,YAAAvB,CAAA,CAAAwB,GAAA,GAAAzC,CAAA,EAAAD,CAAA,CAAAqB,IAAA,GAAAT,CAAA,EAAAK,CAAA,KAAAjB,CAAA,CAAAiE,MAAA,WAAAjE,CAAA,CAAA0C,GAAA,GAAAxC,CAAA,KAAAe,CAAA,aAAAA,CAAA,QAAA8D,UAAA,CAAAvE,MAAA,MAAAS,CAAA,SAAAA,CAAA,QAAAU,CAAA,QAAAoD,UAAA,CAAA9D,CAAA,GAAAC,CAAA,GAAAS,CAAA,CAAAuD,UAAA,iBAAAvD,CAAA,CAAAgD,MAAA,SAAA4B,MAAA,aAAA5E,CAAA,CAAAgD,MAAA,SAAAuB,IAAA,QAAAtE,CAAA,GAAAhB,CAAA,CAAAQ,IAAA,CAAAO,CAAA,eAAAR,CAAA,GAAAP,CAAA,CAAAQ,IAAA,CAAAO,CAAA,qBAAAC,CAAA,IAAAT,CAAA,aAAA+E,IAAA,GAAAvE,CAAA,CAAAiD,QAAA,SAAA2B,MAAA,CAAA5E,CAAA,CAAAiD,QAAA,gBAAAsB,IAAA,GAAAvE,CAAA,CAAAkD,UAAA,SAAA0B,MAAA,CAAA5E,CAAA,CAAAkD,UAAA,cAAAjD,CAAA,aAAAsE,IAAA,GAAAvE,CAAA,CAAAiD,QAAA,SAAA2B,MAAA,CAAA5E,CAAA,CAAAiD,QAAA,qBAAAzD,CAAA,QAAA6C,KAAA,qDAAAkC,IAAA,GAAAvE,CAAA,CAAAkD,UAAA,SAAA0B,MAAA,CAAA5E,CAAA,CAAAkD,UAAA,YAAAN,MAAA,WAAAA,OAAArE,CAAA,EAAAD,CAAA,aAAAD,CAAA,QAAA+E,UAAA,CAAAvE,MAAA,MAAAR,CAAA,SAAAA,CAAA,QAAAiB,CAAA,QAAA8D,UAAA,CAAA/E,CAAA,OAAAiB,CAAA,CAAA0D,MAAA,SAAAuB,IAAA,IAAAtF,CAAA,CAAAQ,IAAA,CAAAH,CAAA,wBAAAiF,IAAA,GAAAjF,CAAA,CAAA4D,UAAA,QAAAlD,CAAA,GAAAV,CAAA,aAAAU,CAAA,iBAAAzB,CAAA,mBAAAA,CAAA,KAAAyB,CAAA,CAAAgD,MAAA,IAAA1E,CAAA,IAAAA,CAAA,IAAA0B,CAAA,CAAAkD,UAAA,KAAAlD,CAAA,cAAAT,CAAA,GAAAS,CAAA,GAAAA,CAAA,CAAAuD,UAAA,cAAAhE,CAAA,CAAAuB,IAAA,GAAAvC,CAAA,EAAAgB,CAAA,CAAAwB,GAAA,GAAAzC,CAAA,EAAA0B,CAAA,SAAAsC,MAAA,gBAAA5C,IAAA,GAAAM,CAAA,CAAAkD,UAAA,EAAAhC,CAAA,SAAA2D,QAAA,CAAAtF,CAAA,MAAAsF,QAAA,WAAAA,SAAAtG,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAAuC,IAAA,QAAAvC,CAAA,CAAAwC,GAAA,qBAAAxC,CAAA,CAAAuC,IAAA,mBAAAvC,CAAA,CAAAuC,IAAA,QAAApB,IAAA,GAAAnB,CAAA,CAAAwC,GAAA,gBAAAxC,CAAA,CAAAuC,IAAA,SAAA6D,IAAA,QAAA5D,GAAA,GAAAxC,CAAA,CAAAwC,GAAA,OAAAuB,MAAA,kBAAA5C,IAAA,yBAAAnB,CAAA,CAAAuC,IAAA,IAAAxC,CAAA,UAAAoB,IAAA,GAAApB,CAAA,GAAA4C,CAAA,KAAA4D,MAAA,WAAAA,OAAAvG,CAAA,aAAAD,CAAA,QAAA8E,UAAA,CAAAvE,MAAA,MAAAP,CAAA,SAAAA,CAAA,QAAAD,CAAA,QAAA+E,UAAA,CAAA9E,CAAA,OAAAD,CAAA,CAAA6E,UAAA,KAAA3E,CAAA,cAAAsG,QAAA,CAAAxG,CAAA,CAAAkF,UAAA,EAAAlF,CAAA,CAAA8E,QAAA,GAAAG,aAAA,CAAAjF,CAAA,GAAA6C,CAAA,yBAAA6D,OAAAxG,CAAA,aAAAD,CAAA,QAAA8E,UAAA,CAAAvE,MAAA,MAAAP,CAAA,SAAAA,CAAA,QAAAD,CAAA,QAAA+E,UAAA,CAAA9E,CAAA,OAAAD,CAAA,CAAA2E,MAAA,KAAAzE,CAAA,QAAAU,CAAA,GAAAZ,CAAA,CAAAkF,UAAA,kBAAAtE,CAAA,CAAA6B,IAAA,QAAAxB,CAAA,GAAAL,CAAA,CAAA8B,GAAA,EAAAuC,aAAA,CAAAjF,CAAA,YAAAiB,CAAA,YAAA+C,KAAA,8BAAA2C,aAAA,WAAAA,cAAA1G,CAAA,EAAAD,CAAA,EAAAY,CAAA,gBAAAsD,QAAA,KAAA9D,QAAA,EAAAgD,MAAA,CAAAnD,CAAA,GAAAuE,UAAA,EAAAxE,CAAA,EAAAyE,OAAA,EAAA7D,CAAA,oBAAAqD,MAAA,UAAAvB,GAAA,GAAAxC,CAAA,GAAA2C,CAAA,OAAA5C,CAAA;AAAA,SAAA2G,QAAA3G,CAAA,EAAAD,CAAA,QAAAE,CAAA,GAAAqB,MAAA,CAAAwE,IAAA,CAAA9F,CAAA,OAAAsB,MAAA,CAAAsF,qBAAA,QAAA5F,CAAA,GAAAM,MAAA,CAAAsF,qBAAA,CAAA5G,CAAA,GAAAD,CAAA,KAAAiB,CAAA,GAAAA,CAAA,CAAA6F,MAAA,WAAA9G,CAAA,WAAAuB,MAAA,CAAAwF,wBAAA,CAAA9G,CAAA,EAAAD,CAAA,EAAAgC,UAAA,OAAA9B,CAAA,CAAA8E,IAAA,CAAAgC,KAAA,CAAA9G,CAAA,EAAAe,CAAA,YAAAf,CAAA;AAAA,SAAA+G,cAAAhH,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAkH,SAAA,CAAA1G,MAAA,EAAAR,CAAA,UAAAE,CAAA,WAAAgH,SAAA,CAAAlH,CAAA,IAAAkH,SAAA,CAAAlH,CAAA,QAAAA,CAAA,OAAA4G,OAAA,CAAArF,MAAA,CAAArB,CAAA,OAAAqD,OAAA,WAAAvD,CAAA,IAAAmH,eAAA,CAAAlH,CAAA,EAAAD,CAAA,EAAAE,CAAA,CAAAF,CAAA,SAAAuB,MAAA,CAAA6F,yBAAA,GAAA7F,MAAA,CAAA8F,gBAAA,CAAApH,CAAA,EAAAsB,MAAA,CAAA6F,yBAAA,CAAAlH,CAAA,KAAA0G,OAAA,CAAArF,MAAA,CAAArB,CAAA,GAAAqD,OAAA,WAAAvD,CAAA,IAAAuB,MAAA,CAAAG,cAAA,CAAAzB,CAAA,EAAAD,CAAA,EAAAuB,MAAA,CAAAwF,wBAAA,CAAA7G,CAAA,EAAAF,CAAA,iBAAAC,CAAA;AAAA,SAAAkH,gBAAAlH,CAAA,EAAAD,CAAA,EAAAE,CAAA,YAAAF,CAAA,GAAAsH,cAAA,CAAAtH,CAAA,MAAAC,CAAA,GAAAsB,MAAA,CAAAG,cAAA,CAAAzB,CAAA,EAAAD,CAAA,IAAAc,KAAA,EAAAZ,CAAA,EAAA8B,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAjC,CAAA,CAAAD,CAAA,IAAAE,CAAA,EAAAD,CAAA;AAAA,SAAAqH,eAAApH,CAAA,QAAAyB,CAAA,GAAA4F,YAAA,CAAArH,CAAA,gCAAAyD,OAAA,CAAAhC,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAA4F,aAAArH,CAAA,EAAAF,CAAA,oBAAA2D,OAAA,CAAAzD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAC,MAAA,CAAAqH,WAAA,kBAAAvH,CAAA,QAAA0B,CAAA,GAAA1B,CAAA,CAAAmB,IAAA,CAAAlB,CAAA,EAAAF,CAAA,gCAAA2D,OAAA,CAAAhC,CAAA,UAAAA,CAAA,YAAAX,SAAA,yEAAAhB,CAAA,GAAAyH,MAAA,GAAAC,MAAA,EAAAxH,CAAA;AAAA,SAAAyH,yBAAA1H,CAAA,6BAAA2H,OAAA,mBAAA5H,CAAA,OAAA4H,OAAA,IAAA1H,CAAA,OAAA0H,OAAA,YAAAD,wBAAA,YAAAA,yBAAA1H,CAAA,WAAAA,CAAA,GAAAC,CAAA,GAAAF,CAAA,KAAAC,CAAA;AAAA,SAAA4H,wBAAA5H,CAAA,EAAAD,CAAA,SAAAA,CAAA,IAAAC,CAAA,IAAAA,CAAA,CAAA6H,UAAA,SAAA7H,CAAA,eAAAA,CAAA,gBAAA0D,OAAA,CAAA1D,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAC,CAAA,GAAAyH,wBAAA,CAAA3H,CAAA,OAAAE,CAAA,IAAAA,CAAA,CAAA6H,GAAA,CAAA9H,CAAA,UAAAC,CAAA,CAAA8H,GAAA,CAAA/H,CAAA,OAAAW,CAAA,KAAA+E,SAAA,UAAAzE,CAAA,GAAAK,MAAA,CAAAG,cAAA,IAAAH,MAAA,CAAAwF,wBAAA,WAAA5F,CAAA,IAAAlB,CAAA,oBAAAkB,CAAA,OAAAM,cAAA,CAAAL,IAAA,CAAAnB,CAAA,EAAAkB,CAAA,SAAAQ,CAAA,GAAAT,CAAA,GAAAK,MAAA,CAAAwF,wBAAA,CAAA9G,CAAA,EAAAkB,CAAA,UAAAQ,CAAA,KAAAA,CAAA,CAAAqG,GAAA,IAAArG,CAAA,CAAAsG,GAAA,IAAA1G,MAAA,CAAAG,cAAA,CAAAd,CAAA,EAAAO,CAAA,EAAAQ,CAAA,IAAAf,CAAA,CAAAO,CAAA,IAAAlB,CAAA,CAAAkB,CAAA,YAAAP,CAAA,cAAAX,CAAA,EAAAC,CAAA,IAAAA,CAAA,CAAA+H,GAAA,CAAAhI,CAAA,EAAAW,CAAA,GAAAA,CAAA;AAAA,SAAAsH,mBAAAtH,CAAA,EAAAV,CAAA,EAAAD,CAAA,EAAAD,CAAA,EAAAiB,CAAA,EAAAC,CAAA,EAAAU,CAAA,cAAAD,CAAA,GAAAf,CAAA,CAAAM,CAAA,EAAAU,CAAA,GAAAT,CAAA,GAAAQ,CAAA,CAAAb,KAAA,WAAAF,CAAA,gBAAAX,CAAA,CAAAW,CAAA,KAAAe,CAAA,CAAAd,IAAA,GAAAX,CAAA,CAAAiB,CAAA,IAAA2E,OAAA,CAAAlC,OAAA,CAAAzC,CAAA,EAAA2C,IAAA,CAAA9D,CAAA,EAAAiB,CAAA;AAAA,SAAAkH,kBAAAvH,CAAA,6BAAAV,CAAA,SAAAD,CAAA,GAAAiH,SAAA,aAAApB,OAAA,WAAA9F,CAAA,EAAAiB,CAAA,QAAAC,CAAA,GAAAN,CAAA,CAAAoG,KAAA,CAAA9G,CAAA,EAAAD,CAAA,YAAAmI,MAAAxH,CAAA,IAAAsH,kBAAA,CAAAhH,CAAA,EAAAlB,CAAA,EAAAiB,CAAA,EAAAmH,KAAA,EAAAC,MAAA,UAAAzH,CAAA,cAAAyH,OAAAzH,CAAA,IAAAsH,kBAAA,CAAAhH,CAAA,EAAAlB,CAAA,EAAAiB,CAAA,EAAAmH,KAAA,EAAAC,MAAA,WAAAzH,CAAA,KAAAwH,KAAA;AAAA,SAAAE,mBAAAtI,CAAA,WAAAuI,kBAAA,CAAAvI,CAAA,KAAAwI,gBAAA,CAAAxI,CAAA,KAAAO,2BAAA,CAAAP,CAAA,KAAAyI,kBAAA;AAAA,SAAAA,mBAAA,cAAAzH,SAAA;AAAA,SAAAwH,iBAAAxI,CAAA,8BAAAG,MAAA,YAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,aAAAJ,CAAA,uBAAAK,KAAA,CAAAqI,IAAA,CAAA1I,CAAA;AAAA,SAAAuI,mBAAAvI,CAAA,QAAAK,KAAA,CAAAC,OAAA,CAAAN,CAAA,UAAA2I,iBAAA,CAAA3I,CAAA;AAAA,SAAA4I,eAAA5I,CAAA,EAAAC,CAAA,WAAA4I,eAAA,CAAA7I,CAAA,KAAA8I,qBAAA,CAAA9I,CAAA,EAAAC,CAAA,KAAAM,2BAAA,CAAAP,CAAA,EAAAC,CAAA,KAAA8I,gBAAA;AAAA,SAAAA,iBAAA,cAAA/H,SAAA;AAAA,SAAAT,4BAAAP,CAAA,EAAAkB,CAAA,QAAAlB,CAAA,2BAAAA,CAAA,SAAA2I,iBAAA,CAAA3I,CAAA,EAAAkB,CAAA,OAAAhB,CAAA,MAAA8I,QAAA,CAAA5H,IAAA,CAAApB,CAAA,EAAAoG,KAAA,6BAAAlG,CAAA,IAAAF,CAAA,CAAAuF,WAAA,KAAArF,CAAA,GAAAF,CAAA,CAAAuF,WAAA,CAAAC,IAAA,aAAAtF,CAAA,cAAAA,CAAA,GAAAG,KAAA,CAAAqI,IAAA,CAAA1I,CAAA,oBAAAE,CAAA,+CAAA+I,IAAA,CAAA/I,CAAA,IAAAyI,iBAAA,CAAA3I,CAAA,EAAAkB,CAAA;AAAA,SAAAyH,kBAAA3I,CAAA,EAAAkB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,MAAAU,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,YAAAP,CAAA,MAAAW,CAAA,GAAAP,KAAA,CAAAa,CAAA,GAAAjB,CAAA,GAAAiB,CAAA,EAAAjB,CAAA,IAAAW,CAAA,CAAAX,CAAA,IAAAD,CAAA,CAAAC,CAAA,UAAAW,CAAA;AAAA,SAAAkI,sBAAA9I,CAAA,EAAA4C,CAAA,QAAA1C,CAAA,WAAAF,CAAA,gCAAAG,MAAA,IAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,4BAAAE,CAAA,QAAAD,CAAA,EAAAW,CAAA,EAAAe,CAAA,EAAAR,CAAA,EAAAD,CAAA,OAAAH,CAAA,OAAAE,CAAA,iBAAAU,CAAA,IAAAzB,CAAA,GAAAA,CAAA,CAAAkB,IAAA,CAAApB,CAAA,GAAAqB,IAAA,QAAAuB,CAAA,QAAArB,MAAA,CAAArB,CAAA,MAAAA,CAAA,UAAAa,CAAA,uBAAAA,CAAA,IAAAd,CAAA,GAAA0B,CAAA,CAAAP,IAAA,CAAAlB,CAAA,GAAAW,IAAA,MAAAK,CAAA,CAAA8D,IAAA,CAAA/E,CAAA,CAAAa,KAAA,GAAAI,CAAA,CAAAV,MAAA,KAAAoC,CAAA,GAAA7B,CAAA,iBAAAf,CAAA,IAAAiB,CAAA,OAAAL,CAAA,GAAAZ,CAAA,yBAAAe,CAAA,YAAAb,CAAA,eAAAiB,CAAA,GAAAjB,CAAA,cAAAqB,MAAA,CAAAJ,CAAA,MAAAA,CAAA,2BAAAF,CAAA,QAAAL,CAAA,aAAAM,CAAA;AAAA,SAAA2H,gBAAA7I,CAAA,QAAAK,KAAA,CAAAC,OAAA,CAAAN,CAAA,UAAAA,CAAA;AASO,IAAMkJ,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAA,EAEtB;EACL,IAAME,KAAK,GAAG,IAAAC,oCAAiB,EAAiC,CAAC;EACjE,IAAAC,SAAA,GAA4C,IAAAC,eAAQ,EAAC,IAAI,CAAC;IAAAC,UAAA,GAAAZ,cAAA,CAAAU,SAAA;IAAnDG,cAAc,GAAAD,UAAA;IAAEE,iBAAiB,GAAAF,UAAA;EACxC,IAAAG,UAAA,GAA8B,IAAAJ,eAAQ,EAEpC,IAAIK,mCAAc,CAAC,CAAC,CAAC;IAAAC,UAAA,GAAAjB,cAAA,CAAAe,UAAA;IAFhBG,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAG1B,IAAMG,iBAAiB,GAAG,IAAAC,cAAO,EAC/B;IAAA,OAAA3B,kBAAA,CAAUc,KAAK,CAACc,OAAO,CAACC,UAAU,CAAC,CAAC,CAACpE,IAAI,CAAC,CAAC;EAAA,CAAC,EAC5C,CAACqD,KAAK,CAACc,OAAO,CAChB,CAAC;EAED,IAAME,WAAW,GAAG,IAAAC,kBAAW,gBAAAlC,iBAAA,eAAA7G,mBAAA,GAAAmE,IAAA,CAE7B,SAAA6E,SAAA;IAAA,IAAAC,aAAA;IAAA,OAAAjJ,mBAAA,GAAAa,IAAA,UAAAqI,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAvE,IAAA,GAAAuE,SAAA,CAAApJ,IAAA;QAAA;UACA;UACMkJ,aAA8D,GAClE,IAAIX,mCAAc,CAAAtB,kBAAA,CAAKc,KAAK,CAACc,OAAO,CAACC,UAAU,CAAC,CAAC,CAAC,CAAC;UAAA,MAEjDI,aAAa,CAACG,IAAI,KAAK,CAAC;YAAAD,SAAA,CAAApJ,IAAA;YAAA;UAAA;UAAA,OAAAoJ,SAAA,CAAAlG,MAAA,WACnBgG,aAAa;QAAA;UAAAE,SAAA,CAAAvE,IAAA;UAAAuE,SAAA,CAAApJ,IAAA;UAAA,OAIdyE,OAAA,CAAAlC,OAAA,GAAAE,IAAA;YAAA,OAAA+D,uBAAA,CAAAlI,OAAA,CAAO,yBAAyB;UAAA,GAAEmE,IAAI;YAAA,IAAA6G,KAAA,GAAAxC,iBAAA,eAAA7G,mBAAA,GAAAmE,IAAA,CAC1C,SAAAmF,QAAAC,KAAA;cAAA,IAAAC,YAAA,EAAAC,mBAAA,EAAAC,gBAAA,EAAAC,OAAA,EAAAC,GAAA,EAAAC,0BAAA,EAAAC,qBAAA;cAAA,OAAA9J,mBAAA,GAAAa,IAAA,UAAAkJ,SAAAC,QAAA;gBAAA,kBAAAA,QAAA,CAAApF,IAAA,GAAAoF,QAAA,CAAAjK,IAAA;kBAAA;oBACWyJ,YAAY,GAAAD,KAAA,aACrBE,mBAAmB,GAAAF,KAAA,CAAnBE,mBAAmB,EACnBC,gBAAgB,GAAAH,KAAA,CAAhBG,gBAAgB;oBAEhBtB,iBAAiB,CAAC,IAAI,CAAC;oBACjBuB,OAAO,GACX7B,KAAK,CAACmC,OAAO,KAAK,CAAC,GACfR,mBAAmB,CAACS,OAAO,GAC3BT,mBAAmB,CAACU,OAAO,EAEjC;oBACMP,GAAG,GAAG,IAAIJ,YAAY,CAAC;sBAC3BG,OAAO,EAAPA,OAAO;sBACPS,QAAQ,EAAE,IAAIV,gBAAgB,CAACC,OAAO;oBACxC,CAAC,CAAC,EAEF;oBACME,0BAA0B,GAAA7C,kBAAA,CAAOiC,aAAa,CAACoB,OAAO,CAAC,CAAC;oBAAAL,QAAA,CAAAjK,IAAA;oBAAA,OACf6J,GAAG,CAC/CQ,QAAQ,CAAC,CAAC,CACVE,eAAe,CACdT,0BAA0B,CAACU,GAAG,CAAC,UAAAC,KAAA;sBAAA,IAAAC,KAAA,GAAAnD,cAAA,CAAAkD,KAAA;wBAAEE,GAAG,GAAAD,KAAA;sBAAA,OAAO;wBACzCjL,KAAK,EAAEkL,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;sBACzB,CAAC;oBAAA,CAAC,CACJ,CAAC;kBAAA;oBANGb,qBAAgC,GAAAE,QAAA,CAAAlH,IAAA;oBAQtC+G,0BAA0B,CAAC5H,OAAO,CAAC,UAAA2I,KAAA,EAAkB;sBAAA,IAAAC,KAAA,GAAAvD,cAAA,CAAAsD,KAAA;wBAAhBF,GAAG,GAAAG,KAAA;wBAAEC,KAAK,GAAAD,KAAA;sBAC7C,IAAME,YAAY,GAAGjB,qBAAqB,CAACkB,IAAI,CAC7C,UAAAC,KAAA;wBAAA,IAAGC,GAAG,GAAAD,KAAA,CAAHC,GAAG;wBAAA,OAAOA,GAAG,KAAKR,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;sBAAA,CACxC,CAAY;sBAEZ1B,aAAa,CAACtC,GAAG,CACf,IAAAwE,+BAAuB,EAACT,GAAG,CAAC,EAC5BI,KAAK,CACFM,YAAY,CAAAzF,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACRoF,YAAY,GACZD,KAAK,CAACO,QAAQ;wBACjBC,OAAO,EAAE,IAAAH,+BAAuB,EAACL,KAAK,CAACO,QAAQ,CAACC,OAAO,CAAC;wBACxDC,QAAQ,EAAE;sBAAC,EACZ,CAAC,CACDC,UAAU,CAAC,EAAE,CAClB,CAAC;oBACH,CAAC,CAAC;kBAAC;kBAAA;oBAAA,OAAAxB,QAAA,CAAAjF,IAAA;gBAAA;cAAA,GAAAuE,OAAA;YAAA,CACJ;YAAA,iBAAAmC,EAAA;cAAA,OAAApC,KAAA,CAAA3D,KAAA,OAAAE,SAAA;YAAA;UAAA,GACH,CAAC;QAAA;UAAA,OAAAuD,SAAA,CAAAlG,MAAA,WAEMgG,aAAa;QAAA;UAAAE,SAAA,CAAAvE,IAAA;UAAAuE,SAAA,CAAAuC,EAAA,GAAAvC,SAAA;UAEpBwC,OAAO,CAACC,GAAG,CAAAzC,SAAA,CAAAuC,EAAE,CAAC;UAAC,OAAAvC,SAAA,CAAAlG,MAAA,WACRgG,aAAa;QAAA;QAAA;UAAA,OAAAE,SAAA,CAAApE,IAAA;MAAA;IAAA,GAAAiE,QAAA;EAAA,CAGvB,IAAE,CAAClB,KAAK,CAACc,OAAO,CAAC,CAAC;EAEnB,IAAAiD,gBAAS,EAAC,YAAM;IACd/C,WAAW,CAAC,CAAC,CAACtG,IAAI,CAAC,UAACsJ,UAAU,EAAK;MACjCrD,UAAU,CAAC,UAACsD,WAAW,EAAK;QAC1B,IAAIC,qBAAqB,GAAG,KAAK;QAEjC,IAAIF,UAAU,CAAC1C,IAAI,MAAK2C,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE3C,IAAI,GAAE;UACzC4C,qBAAqB,GAAG,IAAI;QAC9B,CAAC,MAAM;UAAA,IAAAC,SAAA,GAAAxN,0BAAA,CACoBqN,UAAU;YAAAI,KAAA;UAAA;YAAnC,KAAAD,SAAA,CAAA5M,CAAA,MAAA6M,KAAA,GAAAD,SAAA,CAAA3M,CAAA,IAAAC,IAAA,GAAqC;cAAA,IAAA4M,gBAAA;cAAA,IAAAC,WAAA,GAAA9E,cAAA,CAAA4E,KAAA,CAAA1M,KAAA;gBAAzBkL,GAAG,GAAA0B,WAAA;gBAAEC,GAAG,GAAAD,WAAA;cAClB,IACE,CAACL,WAAW,CAACtF,GAAG,CAACiE,GAAG,CAAC,IACrB,EAAAyB,gBAAA,GAAAJ,WAAW,CAACrF,GAAG,CAACgE,GAAG,CAAC,cAAAyB,gBAAA,uBAApBA,gBAAA,CAAsBG,MAAM,OAAKD,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEC,MAAM,GAC5C;gBACAN,qBAAqB,GAAG,IAAI;cAC9B;YACF;UAAC,SAAAO,GAAA;YAAAN,SAAA,CAAAtN,CAAA,CAAA4N,GAAA;UAAA;YAAAN,SAAA,CAAAxM,CAAA;UAAA;QACH;QAEA,IAAI,CAACuM,qBAAqB,EAAE;UAC1B,OAAOD,WAAW;QACpB;QAEA,OAAOD,UAAU;MACnB,CAAC,CAAC;MACF1D,iBAAiB,CAAC;QAAA,OAAM,KAAK;MAAA,EAAC;IAChC,CAAC,CAAC;EACJ,CAAC,EAAE,CAACM,iBAAiB,EAAEI,WAAW,EAAEL,UAAU,EAAEL,iBAAiB,CAAC,CAAC;EAEnE,IAAMoE,IAAI,GAAG,IAAA7D,cAAO,EAClB;IAAA,OAAO;MACLH,OAAO,EAAPA,OAAO;MACPL,cAAc,EAAdA;IACF,CAAC;EAAA,CAAC,EACF,CAACK,OAAO,EAAEL,cAAc,CAC1B,CAAC;EAED,OAAOqE,IAAI;AACb,CAAC","ignoreList":[]}
@@ -27,12 +27,15 @@ var useWalletObserver = exports.useWalletObserver = function useWalletObserver()
27
27
  utxos: state.utxos,
28
28
  collateral: state.collateral,
29
29
  observer: state.observer,
30
- syncWallet: state.syncWallet,
31
30
  unusedAddresses: state.unusedAddresses,
32
- usedAddresses: state.usedAddresses
31
+ usedAddresses: state.usedAddresses,
32
+ syncWallet: state.syncWallet,
33
+ disconnect: state.disconnect,
34
+ connectWallet: state.connectWallet,
35
+ switching: state.switching
33
36
  };
34
37
  return result;
35
- }, [state.activeWallet, state.adaBalance, state.balance, state.mainAddress, state.stakeAddress, state.network, state.observer, state.syncWallet, state.unusedAddresses, state.usedAddresses, state.utxos, state.collateral, state.ready, state.isCip45]);
38
+ }, [state.activeWallet, state.adaBalance, state.balance, state.mainAddress, state.stakeAddress, state.network, state.observer, state.syncWallet, state.disconnect, state.connectWallet, state.unusedAddresses, state.usedAddresses, state.utxos, state.collateral, state.ready, state.isCip45, state.switching]);
36
39
  return memoizedState;
37
40
  };
38
41
  //# sourceMappingURL=useWalletObserver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletObserver.js","names":["_react","require","_index","useWalletObserver","exports","_useWalletObserverCon","useWalletObserverContext","state","memoizedState","useMemo","result","ready","Boolean","activeWallet","observer","api","isCip45","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","syncWallet","unusedAddresses","usedAddresses"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useMemo } from \"react\";\n\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {TUseWalletObserverState<AssetMetadata>}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>(): TUseWalletObserverState<AssetMetadata> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const memoizedState = useMemo(() => {\n const result: TUseWalletObserverState<AssetMetadata> = {\n ready: Boolean(state.activeWallet && state.observer.api),\n isCip45: state.isCip45,\n activeWallet: state.activeWallet,\n adaBalance: state.adaBalance,\n balance: state.balance,\n mainAddress: state.mainAddress,\n stakeAddress: state.stakeAddress,\n network: state.network,\n utxos: state.utxos,\n collateral: state.collateral,\n observer: state.observer,\n syncWallet: state.syncWallet,\n unusedAddresses: state.unusedAddresses,\n usedAddresses: state.usedAddresses,\n };\n\n return result;\n }, [\n state.activeWallet,\n state.adaBalance,\n state.balance,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.observer,\n state.syncWallet,\n state.unusedAddresses,\n state.usedAddresses,\n state.utxos,\n state.collateral,\n state.ready,\n state.isCip45,\n ]);\n\n return memoizedState;\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAKA;AACA;AACA;AACA;AACA;AACO,IAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAA,EAEiB;EAC7C,IAAAE,qBAAA,GAAkB,IAAAC,+BAAwB,EAAgB,CAAC;IAAnDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;EAEb,IAAMC,aAAa,GAAG,IAAAC,cAAO,EAAC,YAAM;IAClC,IAAMC,MAA8C,GAAG;MACrDC,KAAK,EAAEC,OAAO,CAACL,KAAK,CAACM,YAAY,IAAIN,KAAK,CAACO,QAAQ,CAACC,GAAG,CAAC;MACxDC,OAAO,EAAET,KAAK,CAACS,OAAO;MACtBH,YAAY,EAAEN,KAAK,CAACM,YAAY;MAChCI,UAAU,EAAEV,KAAK,CAACU,UAAU;MAC5BC,OAAO,EAAEX,KAAK,CAACW,OAAO;MACtBC,WAAW,EAAEZ,KAAK,CAACY,WAAW;MAC9BC,YAAY,EAAEb,KAAK,CAACa,YAAY;MAChCC,OAAO,EAAEd,KAAK,CAACc,OAAO;MACtBC,KAAK,EAAEf,KAAK,CAACe,KAAK;MAClBC,UAAU,EAAEhB,KAAK,CAACgB,UAAU;MAC5BT,QAAQ,EAAEP,KAAK,CAACO,QAAQ;MACxBU,UAAU,EAAEjB,KAAK,CAACiB,UAAU;MAC5BC,eAAe,EAAElB,KAAK,CAACkB,eAAe;MACtCC,aAAa,EAAEnB,KAAK,CAACmB;IACvB,CAAC;IAED,OAAOhB,MAAM;EACf,CAAC,EAAE,CACDH,KAAK,CAACM,YAAY,EAClBN,KAAK,CAACU,UAAU,EAChBV,KAAK,CAACW,OAAO,EACbX,KAAK,CAACY,WAAW,EACjBZ,KAAK,CAACa,YAAY,EAClBb,KAAK,CAACc,OAAO,EACbd,KAAK,CAACO,QAAQ,EACdP,KAAK,CAACiB,UAAU,EAChBjB,KAAK,CAACkB,eAAe,EACrBlB,KAAK,CAACmB,aAAa,EACnBnB,KAAK,CAACe,KAAK,EACXf,KAAK,CAACgB,UAAU,EAChBhB,KAAK,CAACI,KAAK,EACXJ,KAAK,CAACS,OAAO,CACd,CAAC;EAEF,OAAOR,aAAa;AACtB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useWalletObserver.js","names":["_react","require","_index","useWalletObserver","exports","_useWalletObserverCon","useWalletObserverContext","state","memoizedState","useMemo","result","ready","Boolean","activeWallet","observer","api","isCip45","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","unusedAddresses","usedAddresses","syncWallet","disconnect","connectWallet","switching"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useMemo } from \"react\";\n\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {TUseWalletObserverState<AssetMetadata>}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>(): TUseWalletObserverState<AssetMetadata> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const memoizedState = useMemo(() => {\n const result: TUseWalletObserverState<AssetMetadata> = {\n ready: Boolean(state.activeWallet && state.observer.api),\n isCip45: state.isCip45,\n activeWallet: state.activeWallet,\n adaBalance: state.adaBalance,\n balance: state.balance,\n mainAddress: state.mainAddress,\n stakeAddress: state.stakeAddress,\n network: state.network,\n utxos: state.utxos,\n collateral: state.collateral,\n observer: state.observer,\n unusedAddresses: state.unusedAddresses,\n usedAddresses: state.usedAddresses,\n syncWallet: state.syncWallet,\n disconnect: state.disconnect,\n connectWallet: state.connectWallet,\n switching: state.switching,\n };\n\n return result;\n }, [\n state.activeWallet,\n state.adaBalance,\n state.balance,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.observer,\n state.syncWallet,\n state.disconnect,\n state.connectWallet,\n state.unusedAddresses,\n state.usedAddresses,\n state.utxos,\n state.collateral,\n state.ready,\n state.isCip45,\n state.switching,\n ]);\n\n return memoizedState;\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAKA;AACA;AACA;AACA;AACA;AACO,IAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAA,EAEiB;EAC7C,IAAAE,qBAAA,GAAkB,IAAAC,+BAAwB,EAAgB,CAAC;IAAnDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;EAEb,IAAMC,aAAa,GAAG,IAAAC,cAAO,EAAC,YAAM;IAClC,IAAMC,MAA8C,GAAG;MACrDC,KAAK,EAAEC,OAAO,CAACL,KAAK,CAACM,YAAY,IAAIN,KAAK,CAACO,QAAQ,CAACC,GAAG,CAAC;MACxDC,OAAO,EAAET,KAAK,CAACS,OAAO;MACtBH,YAAY,EAAEN,KAAK,CAACM,YAAY;MAChCI,UAAU,EAAEV,KAAK,CAACU,UAAU;MAC5BC,OAAO,EAAEX,KAAK,CAACW,OAAO;MACtBC,WAAW,EAAEZ,KAAK,CAACY,WAAW;MAC9BC,YAAY,EAAEb,KAAK,CAACa,YAAY;MAChCC,OAAO,EAAEd,KAAK,CAACc,OAAO;MACtBC,KAAK,EAAEf,KAAK,CAACe,KAAK;MAClBC,UAAU,EAAEhB,KAAK,CAACgB,UAAU;MAC5BT,QAAQ,EAAEP,KAAK,CAACO,QAAQ;MACxBU,eAAe,EAAEjB,KAAK,CAACiB,eAAe;MACtCC,aAAa,EAAElB,KAAK,CAACkB,aAAa;MAClCC,UAAU,EAAEnB,KAAK,CAACmB,UAAU;MAC5BC,UAAU,EAAEpB,KAAK,CAACoB,UAAU;MAC5BC,aAAa,EAAErB,KAAK,CAACqB,aAAa;MAClCC,SAAS,EAAEtB,KAAK,CAACsB;IACnB,CAAC;IAED,OAAOnB,MAAM;EACf,CAAC,EAAE,CACDH,KAAK,CAACM,YAAY,EAClBN,KAAK,CAACU,UAAU,EAChBV,KAAK,CAACW,OAAO,EACbX,KAAK,CAACY,WAAW,EACjBZ,KAAK,CAACa,YAAY,EAClBb,KAAK,CAACc,OAAO,EACbd,KAAK,CAACO,QAAQ,EACdP,KAAK,CAACmB,UAAU,EAChBnB,KAAK,CAACoB,UAAU,EAChBpB,KAAK,CAACqB,aAAa,EACnBrB,KAAK,CAACiB,eAAe,EACrBjB,KAAK,CAACkB,aAAa,EACnBlB,KAAK,CAACe,KAAK,EACXf,KAAK,CAACgB,UAAU,EAChBhB,KAAK,CAACI,KAAK,EACXJ,KAAK,CAACS,OAAO,EACbT,KAAK,CAACsB,SAAS,CAChB,CAAC;EAEF,OAAOrB,aAAa;AACtB,CAAC","ignoreList":[]}
@@ -496,6 +496,15 @@ export class WalletObserver extends WalletObserverEvent {
496
496
  isSyncing() {
497
497
  return this._performingSync;
498
498
  }
499
+
500
+ /**
501
+ * Helper method to check if the instance has an active connection.
502
+ *
503
+ * @returns {boolean}
504
+ */
505
+ hasActiveConnection() {
506
+ return Boolean(this._activeWallet && this.api);
507
+ }
499
508
  /**
500
509
  * Helper method to retrieve the cached utils instance.
501
510
  *
@@ -1 +1 @@
1
- {"version":3,"file":"WalletObserver.class.js","names":["AssetAmount","merge","EWalletObserverEvents","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","e","syncApi","SYNCING_WALLET_END","newBalanceMap","newUsedAddresses","newUnusedAddresses","newOutputs","newCollateral","Promise","all","getBalanceMap","getUsedAddresses","getUnusedAddresses","getUtxos","getCollateral","result","balanceMap","usedAddresses","unusedAddresses","utxos","collateral","network","end","_options","debug","console","log","activeWallet","attempts","undefined","_activeWallet","selectedWallet","window","cardano","enable","getNetworkId","res","setTimeout","extension","CONNECT_WALLET_START","extensionObject","includes","peerConnectInstance","shutdownServer","connectTimeout","persistence","seed","localStorage","setItem","PERSISTENCE_CACHE_KEY","JSON","stringify","CONNECT_WALLET_END","DAppPeerConnect","peerConnectArgs","name","dAppInfo","icon","getIdenticon","instance","_cachedMetadata","_supportedExtensions","removeItem","DISCONNECT","GET_BALANCE_MAP_START","cbor","Serialization","typedHex","getBalance","data","Value","fromCbor","multiassetKeys","multiasset","keys","metadata","__metadataResolverWithCache","ADA_ASSET_ID","set","coin","get","multiassetEntries","entries","id","amount","GET_BALANCE_MAP_END","val","Cardano","map","Address","fromBytes","toBech32","txOutput","TransactionUnspentOutput","input","bind","output","funcCall","experimental","assetIds","cachedKeys","Set","inputKeys","size","every","key","has","newMetadata","metadataResolver","fallbackMetadataResolver","forEach","assetId","decimals","url","location","hostname","onApiEject","address","disconnect","onApiInject","connectWallet","verifyConnection","walletInfo","callback","requestAutoconnect","useWalletDiscovery","announce","savedWallet","getItem","parse","isSyncing","getUtils","utils","new"],"sources":["../../../src/classes/WalletObserver.class.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type {\n Cip30WalletApi,\n 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 TSupportedWalletExtensions,\n TWalletObserverOptions,\n} from \"../@types/observer.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 static ADA_ASSET_ID = \"ada.lovelace\";\n public network: number = 0;\n public api?: Cip30WalletApi;\n public utils?: WalletObserverUtils;\n public peerConnectInstance?: import(\"@fabianbormann/cardano-peer-connect\").DAppPeerConnect;\n\n private _performingSync: boolean = false;\n private _activeWallet?: TSupportedWalletExtensions;\n private _options: IResolvedWalletObserverOptions<AssetMetadata>;\n private _supportedExtensions: TSupportedWalletExtensions[] = [\n \"eternl\",\n \"lace\",\n \"typhon\",\n \"sorbet\",\n \"flint\",\n \"nami\",\n ];\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 as TSupportedWalletExtensions);\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 const savedWallet = window.localStorage.getItem(\n WalletObserver.PERSISTENCE_CACHE_KEY\n );\n\n if (!savedWallet) {\n return;\n }\n\n // Init connection\n const seed: IWalletObserverSeed = JSON.parse(savedWallet);\n this.connectWallet(seed.activeWallet);\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>} - A promise that resolves to the wallet sync data.\n */\n sync = async (): Promise<IWalletObserverSync> => {\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: number;\n try {\n newNetwork = await this.getNetwork();\n } catch (e) {\n try {\n await this.syncApi();\n newNetwork = await this.getNetwork();\n } catch (e) {\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this._performingSync = false;\n throw e;\n }\n }\n\n const [\n newBalanceMap,\n newUsedAddresses,\n newUnusedAddresses,\n newOutputs,\n newCollateral,\n ] = await Promise.all([\n this.getBalanceMap(),\n this.getUsedAddresses(),\n this.getUnusedAddresses(),\n this.getUtxos(),\n this.getCollateral(),\n ]);\n\n const result = {\n balanceMap: newBalanceMap,\n usedAddresses: newUsedAddresses,\n unusedAddresses: newUnusedAddresses,\n utxos: newOutputs,\n collateral: newCollateral,\n network: newNetwork,\n };\n\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);\n this._performingSync = false;\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`sync: ${end - start}ms`);\n }\n return result;\n } catch (e) {\n this._performingSync = false;\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 * Synchronizes the API with the wallet. This is useful if the account has changed,\n * but the underlying intent has not.\n *\n * @param {TSupportedWalletExtensions} [activeWallet] - The wallet to sync with.\n * @returns {Promise<Cip30WalletApi>} - A promise that resolves to the API instance.\n */\n syncApi = async (activeWallet?: TSupportedWalletExtensions): Promise<any> => {\n let attempts = 0;\n this.api = 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 =\n activeWallet || (this._activeWallet as TSupportedWalletExtensions);\n\n while (!this.api) {\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 api = await window.cardano?.[selectedWallet]?.enable();\n\n if (!api) {\n throw Error;\n }\n\n this.api = api;\n this.network = await api.getNetworkId();\n } catch (e) {\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 (\n extension: TSupportedWalletExtensions\n ): 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 await this.syncApi(extension);\n\n this._activeWallet = extension;\n if (this._options.persistence) {\n const seed: IWalletObserverSeed = {\n activeWallet: extension,\n };\n\n window.localStorage.setItem(\n WalletObserver.PERSISTENCE_CACHE_KEY,\n JSON.stringify(seed)\n );\n }\n\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END, {\n extension,\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 currently active wallet connection, if present.\n *\n * @returns {TSupportedWalletExtensions | undefined}\n */\n getActiveWallet = (): TSupportedWalletExtensions | undefined => {\n return this._activeWallet;\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 retrieve a list of supported wallet extensions.\n *\n * @returns {keyof TSupportedWalletExtensions[] | undefined}\n */\n getSupportedExtensions = (): TSupportedWalletExtensions[] => {\n return this._supportedExtensions;\n };\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 this._cachedMetadata = new Map();\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<WalletBalanceMap<AssetMetadata>> => {\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 [cbor, { Serialization }, { typedHex }] = await Promise.all([\n this.api.getBalance(),\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n const data = Serialization.Value.fromCbor(typedHex(cbor));\n const multiassetKeys = data.multiasset()?.keys() ?? [];\n\n const metadata = await this.__metadataResolverWithCache([\n WalletObserver.ADA_ASSET_ID,\n ...multiassetKeys,\n ]);\n\n const balanceMap = new WalletBalanceMap<AssetMetadata>(this);\n balanceMap.set(\n WalletObserver.ADA_ASSET_ID,\n new AssetAmount(data.coin(), metadata.get(WalletObserver.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 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 return balanceMap;\n };\n\n /**\n * Gets the current network connection.\n *\n * @returns {Promise<number>} The network ID.\n */\n getNetwork = async (): Promise<number> => {\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 const val = await this.api.getNetworkId();\n this.network = val;\n\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[]> => {\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 [cbor, { Cardano }, { typedHex }] = await Promise.all([\n this.api.getUsedAddresses(),\n getCardanoCore(),\n getCardanoUtil(),\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[]>} The list of addresses.\n */\n getUnusedAddresses = async (): Promise<string[]> => {\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 [cbor, { Cardano }, { typedHex }] = await Promise.all([\n this.api.getUnusedAddresses(),\n getCardanoCore(),\n getCardanoUtil(),\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<TransactionUnspentOutput[] | undefined> => {\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 [cbor, { Serialization }, { typedHex }] = await Promise.all([\n this.api.getUtxos(),\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n const data = cbor?.map((val) => {\n let 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 a list of wallet UTXOs suitable for collateral.\n *\n * @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.\n */\n getCollateral = async (): Promise<TransactionUnspentOutput[] | undefined> => {\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 [cbor, { Serialization }, { typedHex }] = await Promise.all([\n (async () => {\n const funcCall =\n this.api?.getCollateral ||\n (this.api?.experimental.getCollateral as GetCollateral);\n if (typeof funcCall !== \"function\") {\n return [];\n }\n\n return await funcCall();\n })(),\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n const data = cbor?.map((val) => {\n let 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.map(normalizeAssetIdWithDot),\n normalizeAssetIdWithDot,\n isAdaAsset\n );\n } catch (e) {\n attempts++;\n }\n }\n\n if (!newMetadata) {\n newMetadata = await this.fallbackMetadataResolver(\n assetIds.map(normalizeAssetIdWithDot),\n 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":["AssetAmount","merge","EWalletObserverEvents","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","e","syncApi","SYNCING_WALLET_END","newBalanceMap","newUsedAddresses","newUnusedAddresses","newOutputs","newCollateral","Promise","all","getBalanceMap","getUsedAddresses","getUnusedAddresses","getUtxos","getCollateral","result","balanceMap","usedAddresses","unusedAddresses","utxos","collateral","network","end","_options","debug","console","log","activeWallet","attempts","undefined","_activeWallet","selectedWallet","window","cardano","enable","getNetworkId","res","setTimeout","extension","CONNECT_WALLET_START","extensionObject","includes","peerConnectInstance","shutdownServer","connectTimeout","persistence","seed","localStorage","setItem","PERSISTENCE_CACHE_KEY","JSON","stringify","CONNECT_WALLET_END","DAppPeerConnect","peerConnectArgs","name","dAppInfo","icon","getIdenticon","instance","_cachedMetadata","_supportedExtensions","removeItem","DISCONNECT","GET_BALANCE_MAP_START","cbor","Serialization","typedHex","getBalance","data","Value","fromCbor","multiassetKeys","multiasset","keys","metadata","__metadataResolverWithCache","ADA_ASSET_ID","set","coin","get","multiassetEntries","entries","id","amount","GET_BALANCE_MAP_END","val","Cardano","map","Address","fromBytes","toBech32","txOutput","TransactionUnspentOutput","input","bind","output","funcCall","experimental","assetIds","cachedKeys","Set","inputKeys","size","every","key","has","newMetadata","metadataResolver","fallbackMetadataResolver","forEach","assetId","decimals","url","location","hostname","onApiEject","address","disconnect","onApiInject","connectWallet","verifyConnection","walletInfo","callback","requestAutoconnect","useWalletDiscovery","announce","savedWallet","getItem","parse","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 type {\n Cip30WalletApi,\n 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 TSupportedWalletExtensions,\n TWalletObserverOptions,\n} from \"../@types/observer.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 static ADA_ASSET_ID = \"ada.lovelace\";\n public network: number = 0;\n public api?: Cip30WalletApi;\n public utils?: WalletObserverUtils;\n public peerConnectInstance?: import(\"@fabianbormann/cardano-peer-connect\").DAppPeerConnect;\n\n private _performingSync: boolean = false;\n private _activeWallet?: TSupportedWalletExtensions;\n private _options: IResolvedWalletObserverOptions<AssetMetadata>;\n private _supportedExtensions: TSupportedWalletExtensions[] = [\n \"eternl\",\n \"lace\",\n \"typhon\",\n \"sorbet\",\n \"flint\",\n \"nami\",\n ];\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 as TSupportedWalletExtensions);\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 const savedWallet = window.localStorage.getItem(\n WalletObserver.PERSISTENCE_CACHE_KEY\n );\n\n if (!savedWallet) {\n return;\n }\n\n // Init connection\n const seed: IWalletObserverSeed = JSON.parse(savedWallet);\n this.connectWallet(seed.activeWallet);\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>} - A promise that resolves to the wallet sync data.\n */\n sync = async (): Promise<IWalletObserverSync> => {\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: number;\n try {\n newNetwork = await this.getNetwork();\n } catch (e) {\n try {\n await this.syncApi();\n newNetwork = await this.getNetwork();\n } catch (e) {\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this._performingSync = false;\n throw e;\n }\n }\n\n const [\n newBalanceMap,\n newUsedAddresses,\n newUnusedAddresses,\n newOutputs,\n newCollateral,\n ] = await Promise.all([\n this.getBalanceMap(),\n this.getUsedAddresses(),\n this.getUnusedAddresses(),\n this.getUtxos(),\n this.getCollateral(),\n ]);\n\n const result = {\n balanceMap: newBalanceMap,\n usedAddresses: newUsedAddresses,\n unusedAddresses: newUnusedAddresses,\n utxos: newOutputs,\n collateral: newCollateral,\n network: newNetwork,\n };\n\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);\n this._performingSync = false;\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`sync: ${end - start}ms`);\n }\n return result;\n } catch (e) {\n this._performingSync = false;\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 {TSupportedWalletExtensions} [activeWallet] - The wallet to sync with.\n * @returns {Promise<Cip30WalletApi>} - A promise that resolves to the API instance.\n */\n syncApi = async (activeWallet?: TSupportedWalletExtensions): Promise<any> => {\n let attempts = 0;\n this.api = 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 =\n activeWallet || (this._activeWallet as TSupportedWalletExtensions);\n\n while (!this.api) {\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 api = await window.cardano?.[selectedWallet]?.enable();\n\n if (!api) {\n throw Error;\n }\n\n this.api = api;\n this.network = await api.getNetworkId();\n } catch (e) {\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 (\n extension: TSupportedWalletExtensions\n ): 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 await this.syncApi(extension);\n\n this._activeWallet = extension;\n if (this._options.persistence) {\n const seed: IWalletObserverSeed = {\n activeWallet: extension,\n };\n\n window.localStorage.setItem(\n WalletObserver.PERSISTENCE_CACHE_KEY,\n JSON.stringify(seed)\n );\n }\n\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END, {\n extension,\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 currently active wallet connection, if present.\n *\n * @returns {TSupportedWalletExtensions | undefined}\n */\n getActiveWallet = (): TSupportedWalletExtensions | undefined => {\n return this._activeWallet;\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 retrieve a list of supported wallet extensions.\n *\n * @returns {keyof TSupportedWalletExtensions[] | undefined}\n */\n getSupportedExtensions = (): TSupportedWalletExtensions[] => {\n return this._supportedExtensions;\n };\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 this._cachedMetadata = new Map();\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<WalletBalanceMap<AssetMetadata>> => {\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 [cbor, { Serialization }, { typedHex }] = await Promise.all([\n this.api.getBalance(),\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n const data = Serialization.Value.fromCbor(typedHex(cbor));\n const multiassetKeys = data.multiasset()?.keys() ?? [];\n\n const metadata = await this.__metadataResolverWithCache([\n WalletObserver.ADA_ASSET_ID,\n ...multiassetKeys,\n ]);\n\n const balanceMap = new WalletBalanceMap<AssetMetadata>(this);\n balanceMap.set(\n WalletObserver.ADA_ASSET_ID,\n new AssetAmount(data.coin(), metadata.get(WalletObserver.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 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 return balanceMap;\n };\n\n /**\n * Gets the current network connection.\n *\n * @returns {Promise<number>} The network ID.\n */\n getNetwork = async (): Promise<number> => {\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 const val = await this.api.getNetworkId();\n this.network = val;\n\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[]> => {\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 [cbor, { Cardano }, { typedHex }] = await Promise.all([\n this.api.getUsedAddresses(),\n getCardanoCore(),\n getCardanoUtil(),\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[]>} The list of addresses.\n */\n getUnusedAddresses = async (): Promise<string[]> => {\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 [cbor, { Cardano }, { typedHex }] = await Promise.all([\n this.api.getUnusedAddresses(),\n getCardanoCore(),\n getCardanoUtil(),\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<TransactionUnspentOutput[] | undefined> => {\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 [cbor, { Serialization }, { typedHex }] = await Promise.all([\n this.api.getUtxos(),\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n const data = cbor?.map((val) => {\n let 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 a list of wallet UTXOs suitable for collateral.\n *\n * @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.\n */\n getCollateral = async (): Promise<TransactionUnspentOutput[] | undefined> => {\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 [cbor, { Serialization }, { typedHex }] = await Promise.all([\n (async () => {\n const funcCall =\n this.api?.getCollateral ||\n (this.api?.experimental.getCollateral as GetCollateral);\n if (typeof funcCall !== \"function\") {\n return [];\n }\n\n return await funcCall();\n })(),\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n const data = cbor?.map((val) => {\n let 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.map(normalizeAssetIdWithDot),\n normalizeAssetIdWithDot,\n isAdaAsset\n );\n } catch (e) {\n attempts++;\n }\n }\n\n if (!newMetadata) {\n newMetadata = await this.fallbackMetadataResolver(\n assetIds.map(normalizeAssetIdWithDot),\n 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":[]}
@@ -19,14 +19,11 @@ const WalletObserverProvider = ({
19
19
  options
20
20
  }) => {
21
21
  const observerRef = useProviderWalletObserverRef(options?.observerOptions);
22
- const {
23
- syncWallet,
24
- ...reactiveState
25
- } = useWalletObserverState(observerRef.current);
26
- useProviderEventListeners(observerRef.current, syncWallet);
27
- useProviderRefreshInterval(observerRef.current, syncWallet, options?.refreshInterval);
22
+ const state = useWalletObserverState(observerRef.current);
23
+ useProviderEventListeners(observerRef.current, state);
24
+ useProviderRefreshInterval(observerRef.current, state.syncWallet, options?.refreshInterval);
28
25
  const derivedState = useDerivedState(observerRef.current, {
29
- usedAddresses: reactiveState.usedAddresses
26
+ usedAddresses: state.usedAddresses
30
27
  });
31
28
 
32
29
  // Memoize the context value
@@ -34,12 +31,11 @@ const WalletObserverProvider = ({
34
31
  observerRef: observerRef,
35
32
  refreshInterval: options?.refreshInterval || 30000,
36
33
  state: {
37
- ...reactiveState,
34
+ ...state,
38
35
  ...derivedState,
39
- observer: observerRef.current,
40
- syncWallet
36
+ observer: observerRef.current
41
37
  }
42
- }), [options, syncWallet, reactiveState, derivedState]);
38
+ }), [options, state, derivedState]);
43
39
  return /*#__PURE__*/_jsx(WalletObserverContext.Provider, {
44
40
  value: contextValue,
45
41
  children: children
@@ -1 +1 @@
1
- {"version":3,"file":"WalletObserverProvider.js","names":["useMemo","WalletObserverContext","useDerivedState","useProviderEventListeners","useProviderRefreshInterval","useProviderWalletObserverRef","useWalletObserverState","jsx","_jsx","WalletObserverProvider","children","options","observerRef","observerOptions","syncWallet","reactiveState","current","refreshInterval","derivedState","usedAddresses","contextValue","state","observer","Provider","value"],"sources":["../../../../src/react-components/WalletObserverProvider/WalletObserverProvider.tsx"],"sourcesContent":["import { FC, PropsWithChildren, useMemo } from \"react\";\n\nimport {\n IWalletObserverProviderProps,\n IWalletObserverState,\n WalletObserverContext,\n} from \"../contexts/observer/index.js\";\nimport { useDerivedState } from \"./hooks/effects/useDerivedState.js\";\nimport { useProviderEventListeners } from \"./hooks/effects/useProviderEventListeners.js\";\nimport { useProviderRefreshInterval } from \"./hooks/effects/useProviderRefreshInterval.js\";\nimport { useProviderWalletObserverRef } from \"./hooks/useProviderWalletObserverRef.js\";\nimport { useWalletObserverState } from \"./hooks/useWalletObserverState.js\";\n\n/**\n * The main context provider component. This handles setting up all the initial\n * state, handlers, and side effects with a new WalletObserver class.\n *\n * @param {IWalletObserverProviderProps} [options]\n * @returns {FC<PropsWithChildren<IWalletObserverProviderProps>>}\n */\nconst WalletObserverProvider: FC<\n PropsWithChildren<IWalletObserverProviderProps>\n> = ({ children, options }) => {\n const observerRef = useProviderWalletObserverRef(options?.observerOptions);\n const { syncWallet, ...reactiveState } = useWalletObserverState(\n observerRef.current\n );\n\n useProviderEventListeners(observerRef.current, syncWallet);\n useProviderRefreshInterval(\n observerRef.current,\n syncWallet,\n options?.refreshInterval\n );\n\n const derivedState = useDerivedState(observerRef.current, {\n usedAddresses: reactiveState.usedAddresses,\n });\n\n // Memoize the context value\n const contextValue: IWalletObserverState = useMemo(\n () => ({\n observerRef: observerRef,\n refreshInterval: options?.refreshInterval || 30000,\n state: {\n ...reactiveState,\n ...derivedState,\n observer: observerRef.current,\n syncWallet,\n },\n }),\n [options, syncWallet, reactiveState, derivedState]\n );\n\n return (\n <WalletObserverContext.Provider value={contextValue}>\n {children}\n </WalletObserverContext.Provider>\n );\n};\n\nexport default WalletObserverProvider;\n"],"mappings":"AAAA,SAAgCA,OAAO,QAAQ,OAAO;AAEtD,SAGEC,qBAAqB,QAChB,+BAA+B;AACtC,SAASC,eAAe,QAAQ,oCAAoC;AACpE,SAASC,yBAAyB,QAAQ,8CAA8C;AACxF,SAASC,0BAA0B,QAAQ,+CAA+C;AAC1F,SAASC,4BAA4B,QAAQ,yCAAyC;AACtF,SAASC,sBAAsB,QAAQ,mCAAmC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAOA,MAAMC,sBAEL,GAAGA,CAAC;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,KAAK;EAC7B,MAAMC,WAAW,GAAGP,4BAA4B,CAACM,OAAO,EAAEE,eAAe,CAAC;EAC1E,MAAM;IAAEC,UAAU;IAAE,GAAGC;EAAc,CAAC,GAAGT,sBAAsB,CAC7DM,WAAW,CAACI,OACd,CAAC;EAEDb,yBAAyB,CAACS,WAAW,CAACI,OAAO,EAAEF,UAAU,CAAC;EAC1DV,0BAA0B,CACxBQ,WAAW,CAACI,OAAO,EACnBF,UAAU,EACVH,OAAO,EAAEM,eACX,CAAC;EAED,MAAMC,YAAY,GAAGhB,eAAe,CAACU,WAAW,CAACI,OAAO,EAAE;IACxDG,aAAa,EAAEJ,aAAa,CAACI;EAC/B,CAAC,CAAC;;EAEF;EACA,MAAMC,YAAkC,GAAGpB,OAAO,CAChD,OAAO;IACLY,WAAW,EAAEA,WAAW;IACxBK,eAAe,EAAEN,OAAO,EAAEM,eAAe,IAAI,KAAK;IAClDI,KAAK,EAAE;MACL,GAAGN,aAAa;MAChB,GAAGG,YAAY;MACfI,QAAQ,EAAEV,WAAW,CAACI,OAAO;MAC7BF;IACF;EACF,CAAC,CAAC,EACF,CAACH,OAAO,EAAEG,UAAU,EAAEC,aAAa,EAAEG,YAAY,CACnD,CAAC;EAED,oBACEV,IAAA,CAACP,qBAAqB,CAACsB,QAAQ;IAACC,KAAK,EAAEJ,YAAa;IAAAV,QAAA,EACjDA;EAAQ,CACqB,CAAC;AAErC,CAAC;AAED,eAAeD,sBAAsB","ignoreList":[]}
1
+ {"version":3,"file":"WalletObserverProvider.js","names":["useMemo","WalletObserverContext","useDerivedState","useProviderEventListeners","useProviderRefreshInterval","useProviderWalletObserverRef","useWalletObserverState","jsx","_jsx","WalletObserverProvider","children","options","observerRef","observerOptions","state","current","syncWallet","refreshInterval","derivedState","usedAddresses","contextValue","observer","Provider","value"],"sources":["../../../../src/react-components/WalletObserverProvider/WalletObserverProvider.tsx"],"sourcesContent":["import { FC, PropsWithChildren, useMemo } from \"react\";\n\nimport {\n IWalletObserverProviderProps,\n IWalletObserverState,\n WalletObserverContext,\n} from \"../contexts/observer/index.js\";\nimport { useDerivedState } from \"./hooks/effects/useDerivedState.js\";\nimport { useProviderEventListeners } from \"./hooks/effects/useProviderEventListeners.js\";\nimport { useProviderRefreshInterval } from \"./hooks/effects/useProviderRefreshInterval.js\";\nimport { useProviderWalletObserverRef } from \"./hooks/useProviderWalletObserverRef.js\";\nimport { useWalletObserverState } from \"./hooks/useWalletObserverState.js\";\n\n/**\n * The main context provider component. This handles setting up all the initial\n * state, handlers, and side effects with a new WalletObserver class.\n *\n * @param {IWalletObserverProviderProps} [options]\n * @returns {FC<PropsWithChildren<IWalletObserverProviderProps>>}\n */\nconst WalletObserverProvider: FC<\n PropsWithChildren<IWalletObserverProviderProps>\n> = ({ children, options }) => {\n const observerRef = useProviderWalletObserverRef(options?.observerOptions);\n const state = useWalletObserverState(observerRef.current);\n\n useProviderEventListeners(observerRef.current, state);\n useProviderRefreshInterval(\n observerRef.current,\n state.syncWallet,\n options?.refreshInterval\n );\n\n const derivedState = useDerivedState(observerRef.current, {\n usedAddresses: state.usedAddresses,\n });\n\n // Memoize the context value\n const contextValue: IWalletObserverState = useMemo(\n () => ({\n observerRef: observerRef,\n refreshInterval: options?.refreshInterval || 30000,\n state: {\n ...state,\n ...derivedState,\n observer: observerRef.current,\n },\n }),\n [options, state, derivedState]\n );\n\n return (\n <WalletObserverContext.Provider value={contextValue}>\n {children}\n </WalletObserverContext.Provider>\n );\n};\n\nexport default WalletObserverProvider;\n"],"mappings":"AAAA,SAAgCA,OAAO,QAAQ,OAAO;AAEtD,SAGEC,qBAAqB,QAChB,+BAA+B;AACtC,SAASC,eAAe,QAAQ,oCAAoC;AACpE,SAASC,yBAAyB,QAAQ,8CAA8C;AACxF,SAASC,0BAA0B,QAAQ,+CAA+C;AAC1F,SAASC,4BAA4B,QAAQ,yCAAyC;AACtF,SAASC,sBAAsB,QAAQ,mCAAmC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAOA,MAAMC,sBAEL,GAAGA,CAAC;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,KAAK;EAC7B,MAAMC,WAAW,GAAGP,4BAA4B,CAACM,OAAO,EAAEE,eAAe,CAAC;EAC1E,MAAMC,KAAK,GAAGR,sBAAsB,CAACM,WAAW,CAACG,OAAO,CAAC;EAEzDZ,yBAAyB,CAACS,WAAW,CAACG,OAAO,EAAED,KAAK,CAAC;EACrDV,0BAA0B,CACxBQ,WAAW,CAACG,OAAO,EACnBD,KAAK,CAACE,UAAU,EAChBL,OAAO,EAAEM,eACX,CAAC;EAED,MAAMC,YAAY,GAAGhB,eAAe,CAACU,WAAW,CAACG,OAAO,EAAE;IACxDI,aAAa,EAAEL,KAAK,CAACK;EACvB,CAAC,CAAC;;EAEF;EACA,MAAMC,YAAkC,GAAGpB,OAAO,CAChD,OAAO;IACLY,WAAW,EAAEA,WAAW;IACxBK,eAAe,EAAEN,OAAO,EAAEM,eAAe,IAAI,KAAK;IAClDH,KAAK,EAAE;MACL,GAAGA,KAAK;MACR,GAAGI,YAAY;MACfG,QAAQ,EAAET,WAAW,CAACG;IACxB;EACF,CAAC,CAAC,EACF,CAACJ,OAAO,EAAEG,KAAK,EAAEI,YAAY,CAC/B,CAAC;EAED,oBACEV,IAAA,CAACP,qBAAqB,CAACqB,QAAQ;IAACC,KAAK,EAAEH,YAAa;IAAAV,QAAA,EACjDA;EAAQ,CACqB,CAAC;AAErC,CAAC;AAED,eAAeD,sBAAsB","ignoreList":[]}
@@ -9,7 +9,7 @@ import { EWalletObserverEvents } from "../../../../@types/events.js";
9
9
  * @param syncWallet
10
10
  * @param hooks
11
11
  */
12
- export const useProviderEventListeners = (observer, syncWallet, hooks) => {
12
+ export const useProviderEventListeners = (observer, state, hooks) => {
13
13
  /**
14
14
  * Add user-defined hooks into the event stream.
15
15
  */
@@ -45,14 +45,12 @@ export const useProviderEventListeners = (observer, syncWallet, hooks) => {
45
45
  * Ensure the wallet syncs on connect and disconnect.
46
46
  */
47
47
  useEffect(() => {
48
- window.addEventListener("focus", syncWallet);
49
- observer.addEventListener(EWalletObserverEvents.CONNECT_WALLET_END, syncWallet);
50
- observer.addEventListener(EWalletObserverEvents.DISCONNECT, syncWallet);
48
+ window.addEventListener("focus", state.syncWallet);
49
+ observer.addEventListener(EWalletObserverEvents.CONNECT_WALLET_END, state.syncWallet);
51
50
  return () => {
52
- window.addEventListener("focus", syncWallet);
53
- observer.removeEventListener(EWalletObserverEvents.CONNECT_WALLET_END, syncWallet);
54
- observer.removeEventListener(EWalletObserverEvents.DISCONNECT, syncWallet);
51
+ window.addEventListener("focus", state.syncWallet);
52
+ observer.removeEventListener(EWalletObserverEvents.CONNECT_WALLET_END, state.syncWallet);
55
53
  };
56
- }, [observer, syncWallet]);
54
+ }, [observer, state.syncWallet]);
57
55
  };
58
56
  //# sourceMappingURL=useProviderEventListeners.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useProviderEventListeners.js","names":["useEffect","EWalletObserverEvents","useProviderEventListeners","observer","syncWallet","hooks","setConnectingStart","onConnectWalletStart","setConnectingEnd","onConnectWalletEnd","setSyncingStart","onSyncWalletStart","setSyncingEnd","onSyncWalletEnd","addEventListener","CONNECT_WALLET_START","CONNECT_WALLET_END","SYNCING_WALLET_START","SYNCING_WALLET_END","removeEventListener","window","DISCONNECT"],"sources":["../../../../../../src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { EWalletObserverEvents } from \"../../../../@types/events.js\";\nimport { WalletObserver } from \"../../../../classes/WalletObserver.class.js\";\nimport { TWalletProviderHooks } from \"../../../contexts/observer/index.js\";\n\n/**\n * Internal use only. This is run in every WalletObserverProvider\n * component on initial mount. It adds all relevant event listeners\n * to the WalletObserver class.\n *\n * @param observer\n * @param syncWallet\n * @param hooks\n */\nexport const useProviderEventListeners = (\n observer: WalletObserver,\n syncWallet: () => Promise<void>,\n hooks?: TWalletProviderHooks\n) => {\n /**\n * Add user-defined hooks into the event stream.\n */\n useEffect(() => {\n if (!hooks) {\n return;\n }\n\n const setConnectingStart = () => {\n hooks?.onConnectWalletStart?.();\n };\n const setConnectingEnd = () => {\n hooks?.onConnectWalletEnd?.();\n };\n const setSyncingStart = () => {\n hooks?.onSyncWalletStart?.();\n };\n const setSyncingEnd = () => {\n hooks?.onSyncWalletEnd?.();\n };\n\n observer.addEventListener(\n EWalletObserverEvents.CONNECT_WALLET_START,\n setConnectingStart\n );\n observer.addEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n setConnectingEnd\n );\n observer.addEventListener(\n EWalletObserverEvents.SYNCING_WALLET_START,\n setSyncingStart\n );\n observer.addEventListener(\n EWalletObserverEvents.SYNCING_WALLET_END,\n setSyncingEnd\n );\n\n return () => {\n observer.removeEventListener(\n EWalletObserverEvents.CONNECT_WALLET_START,\n setConnectingStart\n );\n observer.removeEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n setConnectingEnd\n );\n observer.removeEventListener(\n EWalletObserverEvents.SYNCING_WALLET_START,\n setSyncingStart\n );\n observer.removeEventListener(\n EWalletObserverEvents.SYNCING_WALLET_END,\n setSyncingEnd\n );\n };\n }, [observer, hooks]);\n\n /**\n * Ensure the wallet syncs on connect and disconnect.\n */\n useEffect(() => {\n window.addEventListener(\"focus\", syncWallet);\n\n observer.addEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n syncWallet\n );\n\n observer.addEventListener(EWalletObserverEvents.DISCONNECT, syncWallet);\n\n return () => {\n window.addEventListener(\"focus\", syncWallet);\n observer.removeEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n syncWallet\n );\n\n observer.removeEventListener(\n EWalletObserverEvents.DISCONNECT,\n syncWallet\n );\n };\n }, [observer, syncWallet]);\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAEjC,SAASC,qBAAqB,QAAQ,8BAA8B;AAIpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAGA,CACvCC,QAAwB,EACxBC,UAA+B,EAC/BC,KAA4B,KACzB;EACH;AACF;AACA;EACEL,SAAS,CAAC,MAAM;IACd,IAAI,CAACK,KAAK,EAAE;MACV;IACF;IAEA,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;MAC/BD,KAAK,EAAEE,oBAAoB,GAAG,CAAC;IACjC,CAAC;IACD,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;MAC7BH,KAAK,EAAEI,kBAAkB,GAAG,CAAC;IAC/B,CAAC;IACD,MAAMC,eAAe,GAAGA,CAAA,KAAM;MAC5BL,KAAK,EAAEM,iBAAiB,GAAG,CAAC;IAC9B,CAAC;IACD,MAAMC,aAAa,GAAGA,CAAA,KAAM;MAC1BP,KAAK,EAAEQ,eAAe,GAAG,CAAC;IAC5B,CAAC;IAEDV,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACc,oBAAoB,EAC1CT,kBACF,CAAC;IACDH,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACe,kBAAkB,EACxCR,gBACF,CAAC;IACDL,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACgB,oBAAoB,EAC1CP,eACF,CAAC;IACDP,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACiB,kBAAkB,EACxCN,aACF,CAAC;IAED,OAAO,MAAM;MACXT,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACc,oBAAoB,EAC1CT,kBACF,CAAC;MACDH,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACe,kBAAkB,EACxCR,gBACF,CAAC;MACDL,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACgB,oBAAoB,EAC1CP,eACF,CAAC;MACDP,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACiB,kBAAkB,EACxCN,aACF,CAAC;IACH,CAAC;EACH,CAAC,EAAE,CAACT,QAAQ,EAAEE,KAAK,CAAC,CAAC;;EAErB;AACF;AACA;EACEL,SAAS,CAAC,MAAM;IACdoB,MAAM,CAACN,gBAAgB,CAAC,OAAO,EAAEV,UAAU,CAAC;IAE5CD,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACe,kBAAkB,EACxCZ,UACF,CAAC;IAEDD,QAAQ,CAACW,gBAAgB,CAACb,qBAAqB,CAACoB,UAAU,EAAEjB,UAAU,CAAC;IAEvE,OAAO,MAAM;MACXgB,MAAM,CAACN,gBAAgB,CAAC,OAAO,EAAEV,UAAU,CAAC;MAC5CD,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACe,kBAAkB,EACxCZ,UACF,CAAC;MAEDD,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACoB,UAAU,EAChCjB,UACF,CAAC;IACH,CAAC;EACH,CAAC,EAAE,CAACD,QAAQ,EAAEC,UAAU,CAAC,CAAC;AAC5B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useProviderEventListeners.js","names":["useEffect","EWalletObserverEvents","useProviderEventListeners","observer","state","hooks","setConnectingStart","onConnectWalletStart","setConnectingEnd","onConnectWalletEnd","setSyncingStart","onSyncWalletStart","setSyncingEnd","onSyncWalletEnd","addEventListener","CONNECT_WALLET_START","CONNECT_WALLET_END","SYNCING_WALLET_START","SYNCING_WALLET_END","removeEventListener","window","syncWallet"],"sources":["../../../../../../src/react-components/WalletObserverProvider/hooks/effects/useProviderEventListeners.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { EWalletObserverEvents } from \"../../../../@types/events.js\";\nimport { WalletObserver } from \"../../../../classes/WalletObserver.class.js\";\nimport { TWalletProviderHooks } from \"../../../contexts/observer/index.js\";\nimport { useWalletObserverState } from \"../useWalletObserverState.js\";\n\n/**\n * Internal use only. This is run in every WalletObserverProvider\n * component on initial mount. It adds all relevant event listeners\n * to the WalletObserver class.\n *\n * @param observer\n * @param syncWallet\n * @param hooks\n */\nexport const useProviderEventListeners = (\n observer: WalletObserver,\n state: ReturnType<typeof useWalletObserverState>,\n hooks?: TWalletProviderHooks\n) => {\n /**\n * Add user-defined hooks into the event stream.\n */\n useEffect(() => {\n if (!hooks) {\n return;\n }\n\n const setConnectingStart = () => {\n hooks?.onConnectWalletStart?.();\n };\n const setConnectingEnd = () => {\n hooks?.onConnectWalletEnd?.();\n };\n const setSyncingStart = () => {\n hooks?.onSyncWalletStart?.();\n };\n const setSyncingEnd = () => {\n hooks?.onSyncWalletEnd?.();\n };\n\n observer.addEventListener(\n EWalletObserverEvents.CONNECT_WALLET_START,\n setConnectingStart\n );\n observer.addEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n setConnectingEnd\n );\n observer.addEventListener(\n EWalletObserverEvents.SYNCING_WALLET_START,\n setSyncingStart\n );\n observer.addEventListener(\n EWalletObserverEvents.SYNCING_WALLET_END,\n setSyncingEnd\n );\n\n return () => {\n observer.removeEventListener(\n EWalletObserverEvents.CONNECT_WALLET_START,\n setConnectingStart\n );\n observer.removeEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n setConnectingEnd\n );\n observer.removeEventListener(\n EWalletObserverEvents.SYNCING_WALLET_START,\n setSyncingStart\n );\n observer.removeEventListener(\n EWalletObserverEvents.SYNCING_WALLET_END,\n setSyncingEnd\n );\n };\n }, [observer, hooks]);\n\n /**\n * Ensure the wallet syncs on connect and disconnect.\n */\n useEffect(() => {\n window.addEventListener(\"focus\", state.syncWallet);\n\n observer.addEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n state.syncWallet\n );\n\n return () => {\n window.addEventListener(\"focus\", state.syncWallet);\n observer.removeEventListener(\n EWalletObserverEvents.CONNECT_WALLET_END,\n state.syncWallet\n );\n };\n }, [observer, state.syncWallet]);\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAEjC,SAASC,qBAAqB,QAAQ,8BAA8B;AAKpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAGA,CACvCC,QAAwB,EACxBC,KAAgD,EAChDC,KAA4B,KACzB;EACH;AACF;AACA;EACEL,SAAS,CAAC,MAAM;IACd,IAAI,CAACK,KAAK,EAAE;MACV;IACF;IAEA,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;MAC/BD,KAAK,EAAEE,oBAAoB,GAAG,CAAC;IACjC,CAAC;IACD,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;MAC7BH,KAAK,EAAEI,kBAAkB,GAAG,CAAC;IAC/B,CAAC;IACD,MAAMC,eAAe,GAAGA,CAAA,KAAM;MAC5BL,KAAK,EAAEM,iBAAiB,GAAG,CAAC;IAC9B,CAAC;IACD,MAAMC,aAAa,GAAGA,CAAA,KAAM;MAC1BP,KAAK,EAAEQ,eAAe,GAAG,CAAC;IAC5B,CAAC;IAEDV,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACc,oBAAoB,EAC1CT,kBACF,CAAC;IACDH,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACe,kBAAkB,EACxCR,gBACF,CAAC;IACDL,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACgB,oBAAoB,EAC1CP,eACF,CAAC;IACDP,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACiB,kBAAkB,EACxCN,aACF,CAAC;IAED,OAAO,MAAM;MACXT,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACc,oBAAoB,EAC1CT,kBACF,CAAC;MACDH,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACe,kBAAkB,EACxCR,gBACF,CAAC;MACDL,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACgB,oBAAoB,EAC1CP,eACF,CAAC;MACDP,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACiB,kBAAkB,EACxCN,aACF,CAAC;IACH,CAAC;EACH,CAAC,EAAE,CAACT,QAAQ,EAAEE,KAAK,CAAC,CAAC;;EAErB;AACF;AACA;EACEL,SAAS,CAAC,MAAM;IACdoB,MAAM,CAACN,gBAAgB,CAAC,OAAO,EAAEV,KAAK,CAACiB,UAAU,CAAC;IAElDlB,QAAQ,CAACW,gBAAgB,CACvBb,qBAAqB,CAACe,kBAAkB,EACxCZ,KAAK,CAACiB,UACR,CAAC;IAED,OAAO,MAAM;MACXD,MAAM,CAACN,gBAAgB,CAAC,OAAO,EAAEV,KAAK,CAACiB,UAAU,CAAC;MAClDlB,QAAQ,CAACgB,mBAAmB,CAC1BlB,qBAAqB,CAACe,kBAAkB,EACxCZ,KAAK,CAACiB,UACR,CAAC;IACH,CAAC;EACH,CAAC,EAAE,CAAClB,QAAQ,EAAEC,KAAK,CAACiB,UAAU,CAAC,CAAC;AAClC,CAAC","ignoreList":[]}