@sundaeswap/wallet-lite 0.0.40 → 0.0.42

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 (115) hide show
  1. package/dist/cjs/@types/events.js.map +1 -1
  2. package/dist/cjs/@types/global.d.js.map +1 -1
  3. package/dist/cjs/@types/observer.js.map +1 -1
  4. package/dist/cjs/classes/WalletAssetMap.class.js.map +1 -1
  5. package/dist/cjs/classes/WalletBalanceMap.class.js +1 -1
  6. package/dist/cjs/classes/WalletBalanceMap.class.js.map +1 -1
  7. package/dist/cjs/classes/WalletObserver.class.js +1 -1
  8. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  9. package/dist/cjs/classes/WalletObserverEvent.js +3 -2
  10. package/dist/cjs/classes/WalletObserverEvent.js.map +1 -1
  11. package/dist/cjs/classes/WalletObserverUtils.class.js +3 -0
  12. package/dist/cjs/classes/WalletObserverUtils.class.js.map +1 -1
  13. package/dist/cjs/react-components/RenderWallet.js.map +1 -1
  14. package/dist/cjs/react-components/RenderWalletHandles.js.map +1 -1
  15. package/dist/cjs/react-components/RenderWalletPeerConnect.js.map +1 -1
  16. package/dist/cjs/react-components/RenderWalletState.js.map +1 -1
  17. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  18. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js.map +1 -1
  19. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.js.map +1 -1
  20. package/dist/cjs/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js +6 -0
  21. package/dist/cjs/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js.map +1 -1
  22. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +5 -3
  23. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  24. package/dist/cjs/react-components/contexts/observer/context.js.map +1 -1
  25. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  26. package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
  27. package/dist/cjs/react-components/hooks/useWalletLoadingState.js.map +1 -1
  28. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  29. package/dist/cjs/react-components/hooks/useWalletPeerConnect.js.map +1 -1
  30. package/dist/cjs/utils/comparisons.js.map +1 -1
  31. package/dist/cjs/utils/hashing.js.map +1 -1
  32. package/dist/esm/@types/events.js.map +1 -1
  33. package/dist/esm/@types/global.d.js.map +1 -1
  34. package/dist/esm/@types/observer.js.map +1 -1
  35. package/dist/esm/classes/WalletAssetMap.class.js.map +1 -1
  36. package/dist/esm/classes/WalletBalanceMap.class.js +1 -1
  37. package/dist/esm/classes/WalletBalanceMap.class.js.map +1 -1
  38. package/dist/esm/classes/WalletObserver.class.js +3 -3
  39. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  40. package/dist/esm/classes/WalletObserverEvent.js +3 -2
  41. package/dist/esm/classes/WalletObserverEvent.js.map +1 -1
  42. package/dist/esm/classes/WalletObserverUtils.class.js +5 -0
  43. package/dist/esm/classes/WalletObserverUtils.class.js.map +1 -1
  44. package/dist/esm/react-components/RenderWallet.js.map +1 -1
  45. package/dist/esm/react-components/RenderWalletHandles.js.map +1 -1
  46. package/dist/esm/react-components/RenderWalletPeerConnect.js.map +1 -1
  47. package/dist/esm/react-components/RenderWalletState.js.map +1 -1
  48. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  49. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js.map +1 -1
  50. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.js.map +1 -1
  51. package/dist/esm/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js +5 -0
  52. package/dist/esm/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.js.map +1 -1
  53. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +3 -2
  54. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  55. package/dist/esm/react-components/contexts/observer/context.js.map +1 -1
  56. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  57. package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
  58. package/dist/esm/react-components/hooks/useWalletLoadingState.js.map +1 -1
  59. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  60. package/dist/esm/react-components/hooks/useWalletPeerConnect.js.map +1 -1
  61. package/dist/esm/utils/comparisons.js.map +1 -1
  62. package/dist/esm/utils/hashing.js.map +1 -1
  63. package/dist/types/@types/events.d.ts +2 -2
  64. package/dist/types/classes/WalletBalanceMap.class.d.ts +1 -1
  65. package/dist/types/classes/WalletBalanceMap.class.d.ts.map +1 -1
  66. package/dist/types/classes/WalletObserver.class.d.ts +2 -2
  67. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  68. package/dist/types/classes/WalletObserverEvent.d.ts +7 -7
  69. package/dist/types/classes/WalletObserverEvent.d.ts.map +1 -1
  70. package/dist/types/classes/WalletObserverUtils.class.d.ts.map +1 -1
  71. package/dist/types/react-components/RenderWallet.d.ts +1 -1
  72. package/dist/types/react-components/RenderWallet.d.ts.map +1 -1
  73. package/dist/types/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.d.ts.map +1 -1
  74. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  75. package/dist/types/react-components/contexts/observer/types.d.ts +1 -0
  76. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  77. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  78. package/dist/types/utils/comparisons.d.ts.map +1 -1
  79. package/dist/types/utils/hashing.d.ts +3 -3
  80. package/package.json +1 -1
  81. package/src/@types/events.ts +4 -4
  82. package/src/@types/global.d.ts +1 -0
  83. package/src/@types/observer.ts +6 -6
  84. package/src/__data__/assets.ts +1 -1
  85. package/src/classes/WalletAssetMap.class.ts +1 -1
  86. package/src/classes/WalletBalanceMap.class.ts +6 -6
  87. package/src/classes/WalletObserver.class.ts +27 -25
  88. package/src/classes/WalletObserverEvent.ts +14 -13
  89. package/src/classes/WalletObserverUtils.class.ts +11 -5
  90. package/src/classes/__tests__/WalletObserver.test.ts +23 -30
  91. package/src/classes/__tests__/WalletObserverEvent.test.ts +8 -8
  92. package/src/classes/__tests__/WalletObserverUtils.test.ts +6 -6
  93. package/src/react-components/RenderWallet.tsx +4 -4
  94. package/src/react-components/RenderWalletHandles.tsx +2 -2
  95. package/src/react-components/RenderWalletPeerConnect.tsx +2 -2
  96. package/src/react-components/RenderWalletState.tsx +2 -2
  97. package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +3 -3
  98. package/src/react-components/WalletObserverProvider/hooks/effects/useDerivedState.ts +2 -2
  99. package/src/react-components/WalletObserverProvider/hooks/effects/useProviderRefreshInterval.ts +1 -1
  100. package/src/react-components/WalletObserverProvider/hooks/useProviderWalletObserverRef.ts +21 -10
  101. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +19 -27
  102. package/src/react-components/__tests__/RenderWallet.test.tsx +1 -1
  103. package/src/react-components/__tests__/RenderWalletHandles.test.tsx +8 -8
  104. package/src/react-components/__tests__/hooks/useAvailableExtensions.test.tsx +1 -0
  105. package/src/react-components/__tests__/hooks/useWalletObserverRef.test.tsx +1 -1
  106. package/src/react-components/contexts/observer/context.ts +3 -3
  107. package/src/react-components/contexts/observer/types.ts +6 -5
  108. package/src/react-components/hooks/useWalletHandles.ts +5 -5
  109. package/src/react-components/hooks/useWalletLoadingState.ts +2 -2
  110. package/src/react-components/hooks/useWalletObserver.ts +2 -2
  111. package/src/react-components/hooks/useWalletPeerConnect.tsx +1 -1
  112. package/src/utils/__tests__/comparisons.test.ts +3 -3
  113. package/src/utils/__tests__/hashing.test.ts +6 -8
  114. package/src/utils/comparisons.ts +3 -1
  115. package/src/utils/hashing.ts +5 -5
@@ -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","_useTransition","useTransition","_useTransition2","isPending","startTransition","_useState","useState","WalletAssetMap","_useState2","handles","setHandles","memoizedHandleDep","useMemo","balance","getHandles","syncHandles","useCallback","_callee","walletHandles","_yield$import","HandleClient","HandleClientContext","KoraLabsProvider","context","sdk","walletHandlesWithDataArray","walletHandleDataArray","_callee$","_context","size","network","MAINNET","PREVIEW","provider","entries","getAllDataBatch","map","_ref2","_ref3","key","split","_ref4","_ref5","asset","matchingData","find","_ref6","hex","normalizeAssetIdWithDot","withMetadata","metadata","assetId","decimals","withAmount","t0","console","error","useEffect","fetchHandles","_ref7","_callee2","newHandles","_callee2$","_context2","prevHandles","handleMetadataChanged","_iterator","_step","_prevHandles$get","_step$value","val","amount","err","loadingHandles"],"sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useState,\n useTransition,\n} from \"react\";\n\nimport { IHandle } from \"@koralabs/adahandle-sdk\";\nimport { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { TAssetAmountMap } from \"../../@types/observer.js\";\nimport { WalletAssetMap } from \"../../classes/WalletAssetMap.class.js\";\nimport { normalizeAssetIdWithDot } from \"../../utils/assets.js\";\nimport { THandleMetadata } from \"../contexts/observer/types.js\";\nimport { useWalletObserver } from \"./useWalletObserver.js\";\n\nexport const useWalletHandles = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>() => {\n const state = useWalletObserver<THandleMetadata<AssetMetadata>>();\n const [isPending, startTransition] = useTransition();\n const [handles, setHandles] = useState<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(new WalletAssetMap());\n\n const memoizedHandleDep = useMemo(\n () => [...state.balance.getHandles().keys()],\n [state.balance]\n );\n\n const syncHandles = useCallback<\n () => Promise<TAssetAmountMap<THandleMetadata<AssetMetadata>>>\n >(async () => {\n const walletHandles: TAssetAmountMap<THandleMetadata<AssetMetadata>> =\n new WalletAssetMap<THandleMetadata<AssetMetadata>>([\n ...state.balance.getHandles(),\n ]);\n\n if (walletHandles.size === 0) {\n return walletHandles;\n }\n\n try {\n const {\n default: HandleClient,\n HandleClientContext,\n KoraLabsProvider,\n } = await import(\"@koralabs/adahandle-sdk\");\n\n const context =\n state.network === 1\n ? HandleClientContext.MAINNET\n : HandleClientContext.PREVIEW;\n\n const sdk = new HandleClient({\n context,\n provider: new KoraLabsProvider(context),\n });\n\n const walletHandlesWithDataArray = [...walletHandles.entries()];\n const walletHandleDataArray: IHandle[] = await sdk\n .provider()\n .getAllDataBatch(\n walletHandlesWithDataArray.map(([key]) => ({\n value: key.split(\".\")[1],\n }))\n );\n\n walletHandlesWithDataArray.forEach(([key, asset]) => {\n const matchingData = walletHandleDataArray.find(\n ({ hex }) => hex === key.split(\".\")[1]\n ) as IHandle;\n\n walletHandles.set(\n normalizeAssetIdWithDot(key),\n asset\n .withMetadata({\n ...matchingData,\n ...asset.metadata,\n assetId: normalizeAssetIdWithDot(asset.metadata.assetId),\n decimals: 0,\n })\n .withAmount(1n)\n );\n });\n\n return walletHandles;\n } catch (e) {\n console.error(e);\n return walletHandles;\n }\n }, [state.balance, state.network]);\n\n useEffect(() => {\n const fetchHandles = async () => {\n const newHandles = await syncHandles();\n startTransition(() => {\n setHandles((prevHandles) => {\n let handleMetadataChanged = false;\n\n if (newHandles.size !== prevHandles?.size) {\n handleMetadataChanged = true;\n } else {\n for (const [key, val] of newHandles) {\n if (\n !prevHandles.has(key) ||\n prevHandles.get(key)?.amount !== val?.amount\n ) {\n handleMetadataChanged = true;\n }\n }\n }\n\n if (!handleMetadataChanged) {\n return prevHandles;\n }\n\n return newHandles;\n });\n });\n };\n\n fetchHandles();\n }, [memoizedHandleDep, syncHandles]);\n\n return {\n handles,\n loadingHandles: isPending,\n };\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","_useTransition","useTransition","_useTransition2","isPending","startTransition","_useState","useState","WalletAssetMap","_useState2","handles","setHandles","memoizedHandleDep","useMemo","balance","getHandles","syncHandles","useCallback","_callee","walletHandles","_yield$import","HandleClient","HandleClientContext","KoraLabsProvider","context","sdk","walletHandlesWithDataArray","walletHandleDataArray","_callee$","_context","size","network","MAINNET","PREVIEW","provider","entries","getAllDataBatch","map","_ref2","_ref3","key","split","_ref4","_ref5","asset","matchingData","find","_ref6","hex","normalizeAssetIdWithDot","withMetadata","metadata","assetId","decimals","withAmount","t0","console","error","useEffect","fetchHandles","_ref7","_callee2","newHandles","_callee2$","_context2","prevHandles","handleMetadataChanged","_iterator","_step","_prevHandles$get","_step$value","val","amount","err","loadingHandles"],"sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useState,\n useTransition,\n} from \"react\";\n\nimport { IHandle } from \"@koralabs/adahandle-sdk\";\nimport { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { TAssetAmountMap } from \"../../@types/observer.js\";\nimport { WalletAssetMap } from \"../../classes/WalletAssetMap.class.js\";\nimport { normalizeAssetIdWithDot } from \"../../utils/assets.js\";\nimport { THandleMetadata } from \"../contexts/observer/types.js\";\nimport { useWalletObserver } from \"./useWalletObserver.js\";\n\nexport const useWalletHandles = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>() => {\n const state = useWalletObserver<THandleMetadata<AssetMetadata>>();\n const [isPending, startTransition] = useTransition();\n const [handles, setHandles] = useState<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(new WalletAssetMap());\n\n const memoizedHandleDep = useMemo(\n () => [...state.balance.getHandles().keys()],\n [state.balance],\n );\n\n const syncHandles = useCallback<\n () => Promise<TAssetAmountMap<THandleMetadata<AssetMetadata>>>\n >(async () => {\n const walletHandles: TAssetAmountMap<THandleMetadata<AssetMetadata>> =\n new WalletAssetMap<THandleMetadata<AssetMetadata>>([\n ...state.balance.getHandles(),\n ]);\n\n if (walletHandles.size === 0) {\n return walletHandles;\n }\n\n try {\n const {\n default: HandleClient,\n HandleClientContext,\n KoraLabsProvider,\n } = await import(\"@koralabs/adahandle-sdk\");\n\n const context =\n state.network === 1\n ? HandleClientContext.MAINNET\n : HandleClientContext.PREVIEW;\n\n const sdk = new HandleClient({\n context,\n provider: new KoraLabsProvider(context),\n });\n\n const walletHandlesWithDataArray = [...walletHandles.entries()];\n const walletHandleDataArray: IHandle[] = await sdk\n .provider()\n .getAllDataBatch(\n walletHandlesWithDataArray.map(([key]) => ({\n value: key.split(\".\")[1],\n })),\n );\n\n walletHandlesWithDataArray.forEach(([key, asset]) => {\n const matchingData = walletHandleDataArray.find(\n ({ hex }) => hex === key.split(\".\")[1],\n ) as IHandle;\n\n walletHandles.set(\n normalizeAssetIdWithDot(key),\n asset\n .withMetadata({\n ...matchingData,\n ...asset.metadata,\n assetId: normalizeAssetIdWithDot(asset.metadata.assetId),\n decimals: 0,\n })\n .withAmount(1n),\n );\n });\n\n return walletHandles;\n } catch (e) {\n console.error(e);\n return walletHandles;\n }\n }, [state.balance, state.network]);\n\n useEffect(() => {\n const fetchHandles = async () => {\n const newHandles = await syncHandles();\n startTransition(() => {\n setHandles((prevHandles) => {\n let handleMetadataChanged = false;\n\n if (newHandles.size !== prevHandles?.size) {\n handleMetadataChanged = true;\n } else {\n for (const [key, val] of newHandles) {\n if (\n !prevHandles.has(key) ||\n prevHandles.get(key)?.amount !== val?.amount\n ) {\n handleMetadataChanged = true;\n }\n }\n }\n\n if (!handleMetadataChanged) {\n return prevHandles;\n }\n\n return newHandles;\n });\n });\n };\n\n fetchHandles();\n }, [memoizedHandleDep, syncHandles]);\n\n return {\n handles,\n loadingHandles: isPending,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletLoadingState.js","names":["_react","require","_context","useWalletLoadingState","exports","_useWalletObserverCon","useWalletObserverContext","state","result","useMemo","connectingWallet","syncingWallet","ready"],"sources":["../../../../src/react-components/hooks/useWalletLoadingState.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useMemo } from \"react\";\n\nimport { useWalletObserverContext } from \"../contexts/observer/context.js\";\n\nexport const useWalletLoadingState = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>() => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const result = useMemo(\n () => ({\n connectingWallet: state.connectingWallet,\n syncingWallet: state.syncingWallet,\n ready: state.ready,\n }),\n [state.ready, state.syncingWallet, state.connectingWallet]\n );\n\n return result;\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAEO,IAAME,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAA,EAE3B;EACL,IAAAE,qBAAA,GAAkB,IAAAC,iCAAwB,EAAgB,CAAC;IAAnDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;EAEb,IAAMC,MAAM,GAAG,IAAAC,cAAO,EACpB;IAAA,OAAO;MACLC,gBAAgB,EAAEH,KAAK,CAACG,gBAAgB;MACxCC,aAAa,EAAEJ,KAAK,CAACI,aAAa;MAClCC,KAAK,EAAEL,KAAK,CAACK;IACf,CAAC;EAAA,CAAC,EACF,CAACL,KAAK,CAACK,KAAK,EAAEL,KAAK,CAACI,aAAa,EAAEJ,KAAK,CAACG,gBAAgB,CAC3D,CAAC;EAED,OAAOF,MAAM;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useWalletLoadingState.js","names":["_react","require","_context","useWalletLoadingState","exports","_useWalletObserverCon","useWalletObserverContext","state","result","useMemo","connectingWallet","syncingWallet","ready"],"sources":["../../../../src/react-components/hooks/useWalletLoadingState.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useMemo } from \"react\";\n\nimport { useWalletObserverContext } from \"../contexts/observer/context.js\";\n\nexport const useWalletLoadingState = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>() => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const result = useMemo(\n () => ({\n connectingWallet: state.connectingWallet,\n syncingWallet: state.syncingWallet,\n ready: state.ready,\n }),\n [state.ready, state.syncingWallet, state.connectingWallet],\n );\n\n return result;\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAEO,IAAME,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAA,EAE3B;EACL,IAAAE,qBAAA,GAAkB,IAAAC,iCAAwB,EAAgB,CAAC;IAAnDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;EAEb,IAAMC,MAAM,GAAG,IAAAC,cAAO,EACpB;IAAA,OAAO;MACLC,gBAAgB,EAAEH,KAAK,CAACG,gBAAgB;MACxCC,aAAa,EAAEJ,KAAK,CAACI,aAAa;MAClCC,KAAK,EAAEL,KAAK,CAACK;IACf,CAAC;EAAA,CAAC,EACF,CAACL,KAAK,CAACK,KAAK,EAAEL,KAAK,CAACI,aAAa,EAAEJ,KAAK,CAACG,gBAAgB,CAC3D,CAAC;EAED,OAAOF,MAAM;AACf,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletObserver.js","names":["_react","require","_index","useWalletObserver","exports","_useWalletObserverCon","useWalletObserverContext","state","result","useMemo","isCip45","activeWallet","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","observer","unusedAddresses","usedAddresses","syncWallet","disconnect","connectWallet","switching","isPending","handles","willAutoConnect","amount","size"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { useMemo } from \"react\";\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {Omit<TUseWalletObserverState<AssetMetadata>, \"ready\" | \"connectingWallet\" | \"syncingWallet\">}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>(): Omit<\n TUseWalletObserverState<AssetMetadata>,\n \"ready\" | \"connectingWallet\" | \"syncingWallet\"\n> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const result: Omit<\n TUseWalletObserverState<AssetMetadata>,\n \"ready\" | \"connectingWallet\" | \"syncingWallet\"\n > = useMemo(\n () => ({\n isCip45: state.isCip45,\n activeWallet: state.activeWallet,\n adaBalance: state.adaBalance,\n balance: state.balance,\n mainAddress: state.mainAddress,\n stakeAddress: state.stakeAddress,\n network: state.network,\n utxos: state.utxos,\n collateral: state.collateral,\n observer: state.observer,\n unusedAddresses: state.unusedAddresses,\n usedAddresses: state.usedAddresses,\n syncWallet: state.syncWallet,\n disconnect: state.disconnect,\n connectWallet: state.connectWallet,\n switching: state.switching,\n isPending: state.isPending,\n handles: state.handles,\n willAutoConnect: state.willAutoConnect,\n }),\n [\n state.isCip45,\n state.activeWallet,\n state.adaBalance.amount,\n state.balance.size,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.utxos,\n state.collateral,\n state.observer,\n state.unusedAddresses,\n state.usedAddresses,\n state.syncWallet,\n state.disconnect,\n state.connectWallet,\n state.switching,\n state.isPending,\n state.handles,\n state.willAutoConnect,\n ]\n );\n\n return result;\n};\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA;AACA;AACA;AACA;AACA;AACO,IAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAA,EAKzB;EACH,IAAAE,qBAAA,GAAkB,IAAAC,+BAAwB,EAAgB,CAAC;IAAnDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;EAEb,IAAMC,MAGL,GAAG,IAAAC,cAAO,EACT;IAAA,OAAO;MACLC,OAAO,EAAEH,KAAK,CAACG,OAAO;MACtBC,YAAY,EAAEJ,KAAK,CAACI,YAAY;MAChCC,UAAU,EAAEL,KAAK,CAACK,UAAU;MAC5BC,OAAO,EAAEN,KAAK,CAACM,OAAO;MACtBC,WAAW,EAAEP,KAAK,CAACO,WAAW;MAC9BC,YAAY,EAAER,KAAK,CAACQ,YAAY;MAChCC,OAAO,EAAET,KAAK,CAACS,OAAO;MACtBC,KAAK,EAAEV,KAAK,CAACU,KAAK;MAClBC,UAAU,EAAEX,KAAK,CAACW,UAAU;MAC5BC,QAAQ,EAAEZ,KAAK,CAACY,QAAQ;MACxBC,eAAe,EAAEb,KAAK,CAACa,eAAe;MACtCC,aAAa,EAAEd,KAAK,CAACc,aAAa;MAClCC,UAAU,EAAEf,KAAK,CAACe,UAAU;MAC5BC,UAAU,EAAEhB,KAAK,CAACgB,UAAU;MAC5BC,aAAa,EAAEjB,KAAK,CAACiB,aAAa;MAClCC,SAAS,EAAElB,KAAK,CAACkB,SAAS;MAC1BC,SAAS,EAAEnB,KAAK,CAACmB,SAAS;MAC1BC,OAAO,EAAEpB,KAAK,CAACoB,OAAO;MACtBC,eAAe,EAAErB,KAAK,CAACqB;IACzB,CAAC;EAAA,CAAC,EACF,CACErB,KAAK,CAACG,OAAO,EACbH,KAAK,CAACI,YAAY,EAClBJ,KAAK,CAACK,UAAU,CAACiB,MAAM,EACvBtB,KAAK,CAACM,OAAO,CAACiB,IAAI,EAClBvB,KAAK,CAACO,WAAW,EACjBP,KAAK,CAACQ,YAAY,EAClBR,KAAK,CAACS,OAAO,EACbT,KAAK,CAACU,KAAK,EACXV,KAAK,CAACW,UAAU,EAChBX,KAAK,CAACY,QAAQ,EACdZ,KAAK,CAACa,eAAe,EACrBb,KAAK,CAACc,aAAa,EACnBd,KAAK,CAACe,UAAU,EAChBf,KAAK,CAACgB,UAAU,EAChBhB,KAAK,CAACiB,aAAa,EACnBjB,KAAK,CAACkB,SAAS,EACflB,KAAK,CAACmB,SAAS,EACfnB,KAAK,CAACoB,OAAO,EACbpB,KAAK,CAACqB,eAAe,CAEzB,CAAC;EAED,OAAOpB,MAAM;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useWalletObserver.js","names":["_react","require","_index","useWalletObserver","exports","_useWalletObserverCon","useWalletObserverContext","state","result","useMemo","isCip45","activeWallet","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","observer","unusedAddresses","usedAddresses","syncWallet","disconnect","connectWallet","switching","isPending","handles","willAutoConnect","amount","size"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { useMemo } from \"react\";\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {Omit<TUseWalletObserverState<AssetMetadata>, \"ready\" | \"connectingWallet\" | \"syncingWallet\">}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>(): Omit<\n TUseWalletObserverState<AssetMetadata>,\n \"ready\" | \"connectingWallet\" | \"syncingWallet\"\n> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const result: Omit<\n TUseWalletObserverState<AssetMetadata>,\n \"ready\" | \"connectingWallet\" | \"syncingWallet\"\n > = useMemo(\n () => ({\n isCip45: state.isCip45,\n activeWallet: state.activeWallet,\n adaBalance: state.adaBalance,\n balance: state.balance,\n mainAddress: state.mainAddress,\n stakeAddress: state.stakeAddress,\n network: state.network,\n utxos: state.utxos,\n collateral: state.collateral,\n observer: state.observer,\n unusedAddresses: state.unusedAddresses,\n usedAddresses: state.usedAddresses,\n syncWallet: state.syncWallet,\n disconnect: state.disconnect,\n connectWallet: state.connectWallet,\n switching: state.switching,\n isPending: state.isPending,\n handles: state.handles,\n willAutoConnect: state.willAutoConnect,\n }),\n [\n state.isCip45,\n state.activeWallet,\n state.adaBalance.amount,\n state.balance.size,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.utxos,\n state.collateral,\n state.observer,\n state.unusedAddresses,\n state.usedAddresses,\n state.syncWallet,\n state.disconnect,\n state.connectWallet,\n state.switching,\n state.isPending,\n state.handles,\n state.willAutoConnect,\n ],\n );\n\n return result;\n};\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA;AACA;AACA;AACA;AACA;AACO,IAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAA,EAKzB;EACH,IAAAE,qBAAA,GAAkB,IAAAC,+BAAwB,EAAgB,CAAC;IAAnDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;EAEb,IAAMC,MAGL,GAAG,IAAAC,cAAO,EACT;IAAA,OAAO;MACLC,OAAO,EAAEH,KAAK,CAACG,OAAO;MACtBC,YAAY,EAAEJ,KAAK,CAACI,YAAY;MAChCC,UAAU,EAAEL,KAAK,CAACK,UAAU;MAC5BC,OAAO,EAAEN,KAAK,CAACM,OAAO;MACtBC,WAAW,EAAEP,KAAK,CAACO,WAAW;MAC9BC,YAAY,EAAER,KAAK,CAACQ,YAAY;MAChCC,OAAO,EAAET,KAAK,CAACS,OAAO;MACtBC,KAAK,EAAEV,KAAK,CAACU,KAAK;MAClBC,UAAU,EAAEX,KAAK,CAACW,UAAU;MAC5BC,QAAQ,EAAEZ,KAAK,CAACY,QAAQ;MACxBC,eAAe,EAAEb,KAAK,CAACa,eAAe;MACtCC,aAAa,EAAEd,KAAK,CAACc,aAAa;MAClCC,UAAU,EAAEf,KAAK,CAACe,UAAU;MAC5BC,UAAU,EAAEhB,KAAK,CAACgB,UAAU;MAC5BC,aAAa,EAAEjB,KAAK,CAACiB,aAAa;MAClCC,SAAS,EAAElB,KAAK,CAACkB,SAAS;MAC1BC,SAAS,EAAEnB,KAAK,CAACmB,SAAS;MAC1BC,OAAO,EAAEpB,KAAK,CAACoB,OAAO;MACtBC,eAAe,EAAErB,KAAK,CAACqB;IACzB,CAAC;EAAA,CAAC,EACF,CACErB,KAAK,CAACG,OAAO,EACbH,KAAK,CAACI,YAAY,EAClBJ,KAAK,CAACK,UAAU,CAACiB,MAAM,EACvBtB,KAAK,CAACM,OAAO,CAACiB,IAAI,EAClBvB,KAAK,CAACO,WAAW,EACjBP,KAAK,CAACQ,YAAY,EAClBR,KAAK,CAACS,OAAO,EACbT,KAAK,CAACU,KAAK,EACXV,KAAK,CAACW,UAAU,EAChBX,KAAK,CAACY,QAAQ,EACdZ,KAAK,CAACa,eAAe,EACrBb,KAAK,CAACc,aAAa,EACnBd,KAAK,CAACe,UAAU,EAChBf,KAAK,CAACgB,UAAU,EAChBhB,KAAK,CAACiB,aAAa,EACnBjB,KAAK,CAACkB,SAAS,EACflB,KAAK,CAACmB,SAAS,EACfnB,KAAK,CAACoB,OAAO,EACbpB,KAAK,CAACqB,eAAe,CAEzB,CAAC;EAED,OAAOpB,MAAM;AACf,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletPeerConnect.js","names":["_react","require","_useWalletObserver","_jsxRuntime","_slicedToArray","r","e","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","length","n","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","isArray","useWalletPeerConnect","exports","state","useWalletObserver","_useTransition","useTransition","_useTransition2","isPending","startTransition","_useState","useState","_useState2","peerConnect","setPeerConnect","_useState3","_useState4","error","setError","qrCode","useRef","useEffect","observer","getCip45Instance","then","res","message","current","instance","generateQRCode","QRCodeElement","jsx","ref","isLoading"],"sources":["../../../../src/react-components/hooks/useWalletPeerConnect.tsx"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport {\n MutableRefObject,\n useEffect,\n useRef,\n useState,\n useTransition,\n} from \"react\";\n\nimport { TGetPeerConnectInstance } from \"../../@types/observer.js\";\nimport { useWalletObserver } from \"./useWalletObserver.js\";\n\nexport const useWalletPeerConnect = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>() => {\n const state = useWalletObserver<AssetMetadata>();\n const [isPending, startTransition] = useTransition();\n const [peerConnect, setPeerConnect] =\n useState<ReturnType<TGetPeerConnectInstance>>();\n const [error, setError] = useState<string>();\n const qrCode = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!state.observer) {\n return;\n }\n\n state.observer.getCip45Instance().then((res) => {\n startTransition(() => {\n try {\n setPeerConnect(res);\n } catch (e) {\n setError((e as Error).message);\n }\n });\n });\n }, [state.observer, setPeerConnect, setError]);\n\n useEffect(() => {\n if (peerConnect && qrCode.current) {\n peerConnect.instance.generateQRCode(qrCode.current);\n }\n }, [peerConnect, qrCode]);\n\n return {\n peerConnect,\n QRCodeElement: <div ref={qrCode as MutableRefObject<HTMLDivElement>} />,\n error,\n isLoading: isPending,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useWalletPeerConnect.js","names":["_react","require","_useWalletObserver","_jsxRuntime","_slicedToArray","r","e","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","length","n","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","isArray","useWalletPeerConnect","exports","state","useWalletObserver","_useTransition","useTransition","_useTransition2","isPending","startTransition","_useState","useState","_useState2","peerConnect","setPeerConnect","_useState3","_useState4","error","setError","qrCode","useRef","useEffect","observer","getCip45Instance","then","res","message","current","instance","generateQRCode","QRCodeElement","jsx","ref","isLoading"],"sources":["../../../../src/react-components/hooks/useWalletPeerConnect.tsx"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport {\n MutableRefObject,\n useEffect,\n useRef,\n useState,\n useTransition,\n} from \"react\";\n\nimport { TGetPeerConnectInstance } from \"../../@types/observer.js\";\nimport { useWalletObserver } from \"./useWalletObserver.js\";\n\nexport const useWalletPeerConnect = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n>() => {\n const state = useWalletObserver<AssetMetadata>();\n const [isPending, startTransition] = useTransition();\n const [peerConnect, setPeerConnect] =\n useState<ReturnType<TGetPeerConnectInstance>>();\n const [error, setError] = useState<string>();\n const qrCode = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!state.observer) {\n return;\n }\n\n state.observer.getCip45Instance().then((res) => {\n startTransition(() => {\n try {\n setPeerConnect(res);\n } catch (e) {\n setError((e as Error).message);\n }\n });\n });\n }, [state.observer, setPeerConnect, setError]);\n\n useEffect(() => {\n if (peerConnect && qrCode.current) {\n peerConnect.instance.generateQRCode(qrCode.current);\n }\n }, [peerConnect, qrCode]);\n\n return {\n peerConnect,\n QRCodeElement: <div ref={qrCode as MutableRefObject<HTMLDivElement>} />,\n error,\n isLoading: isPending,\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,kBAAA,GAAAD,OAAA;AAA2D,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAG,eAAAC,CAAA,EAAAC,CAAA,WAAAC,eAAA,CAAAF,CAAA,KAAAG,qBAAA,CAAAH,CAAA,EAAAC,CAAA,KAAAG,2BAAA,CAAAJ,CAAA,EAAAC,CAAA,KAAAI,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAJ,CAAA,EAAAO,CAAA,QAAAP,CAAA,2BAAAA,CAAA,SAAAQ,iBAAA,CAAAR,CAAA,EAAAO,CAAA,OAAAE,CAAA,MAAAC,QAAA,CAAAC,IAAA,CAAAX,CAAA,EAAAY,KAAA,6BAAAH,CAAA,IAAAT,CAAA,CAAAa,WAAA,KAAAJ,CAAA,GAAAT,CAAA,CAAAa,WAAA,CAAAC,IAAA,aAAAL,CAAA,cAAAA,CAAA,GAAAM,KAAA,CAAAC,IAAA,CAAAhB,CAAA,oBAAAS,CAAA,+CAAAQ,IAAA,CAAAR,CAAA,IAAAD,iBAAA,CAAAR,CAAA,EAAAO,CAAA;AAAA,SAAAC,kBAAAR,CAAA,EAAAO,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAP,CAAA,CAAAkB,MAAA,MAAAX,CAAA,GAAAP,CAAA,CAAAkB,MAAA,YAAAjB,CAAA,MAAAkB,CAAA,GAAAJ,KAAA,CAAAR,CAAA,GAAAN,CAAA,GAAAM,CAAA,EAAAN,CAAA,IAAAkB,CAAA,CAAAlB,CAAA,IAAAD,CAAA,CAAAC,CAAA,UAAAkB,CAAA;AAAA,SAAAhB,sBAAAH,CAAA,EAAAoB,CAAA,QAAAX,CAAA,WAAAT,CAAA,gCAAAqB,MAAA,IAAArB,CAAA,CAAAqB,MAAA,CAAAC,QAAA,KAAAtB,CAAA,4BAAAS,CAAA,QAAAR,CAAA,EAAAkB,CAAA,EAAAI,CAAA,EAAAC,CAAA,EAAAjB,CAAA,OAAAkB,CAAA,OAAAC,CAAA,iBAAAH,CAAA,IAAAd,CAAA,GAAAA,CAAA,CAAAE,IAAA,CAAAX,CAAA,GAAA2B,IAAA,QAAAP,CAAA,QAAAQ,MAAA,CAAAnB,CAAA,MAAAA,CAAA,UAAAgB,CAAA,uBAAAA,CAAA,IAAAxB,CAAA,GAAAsB,CAAA,CAAAZ,IAAA,CAAAF,CAAA,GAAAoB,IAAA,MAAAtB,CAAA,CAAAuB,IAAA,CAAA7B,CAAA,CAAA8B,KAAA,GAAAxB,CAAA,CAAAW,MAAA,KAAAE,CAAA,GAAAK,CAAA,iBAAAzB,CAAA,IAAA0B,CAAA,OAAAP,CAAA,GAAAnB,CAAA,yBAAAyB,CAAA,YAAAhB,CAAA,eAAAe,CAAA,GAAAf,CAAA,cAAAmB,MAAA,CAAAJ,CAAA,MAAAA,CAAA,2BAAAE,CAAA,QAAAP,CAAA,aAAAZ,CAAA;AAAA,SAAAL,gBAAAF,CAAA,QAAAe,KAAA,CAAAiB,OAAA,CAAAhC,CAAA,UAAAA,CAAA;AAEpD,IAAMiC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,SAAvBA,oBAAoBA,CAAA,EAE1B;EACL,IAAME,KAAK,GAAG,IAAAC,oCAAiB,EAAgB,CAAC;EAChD,IAAAC,cAAA,GAAqC,IAAAC,oBAAa,EAAC,CAAC;IAAAC,eAAA,GAAAxC,cAAA,CAAAsC,cAAA;IAA7CG,SAAS,GAAAD,eAAA;IAAEE,eAAe,GAAAF,eAAA;EACjC,IAAAG,SAAA,GACE,IAAAC,eAAQ,EAAsC,CAAC;IAAAC,UAAA,GAAA7C,cAAA,CAAA2C,SAAA;IAD1CG,WAAW,GAAAD,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAElC,IAAAG,UAAA,GAA0B,IAAAJ,eAAQ,EAAS,CAAC;IAAAK,UAAA,GAAAjD,cAAA,CAAAgD,UAAA;IAArCE,KAAK,GAAAD,UAAA;IAAEE,QAAQ,GAAAF,UAAA;EACtB,IAAMG,MAAM,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EAE3C,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAI,CAAClB,KAAK,CAACmB,QAAQ,EAAE;MACnB;IACF;IAEAnB,KAAK,CAACmB,QAAQ,CAACC,gBAAgB,CAAC,CAAC,CAACC,IAAI,CAAC,UAACC,GAAG,EAAK;MAC9ChB,eAAe,CAAC,YAAM;QACpB,IAAI;UACFK,cAAc,CAACW,GAAG,CAAC;QACrB,CAAC,CAAC,OAAOxD,CAAC,EAAE;UACViD,QAAQ,CAAEjD,CAAC,CAAWyD,OAAO,CAAC;QAChC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EAAE,CAACvB,KAAK,CAACmB,QAAQ,EAAER,cAAc,EAAEI,QAAQ,CAAC,CAAC;EAE9C,IAAAG,gBAAS,EAAC,YAAM;IACd,IAAIR,WAAW,IAAIM,MAAM,CAACQ,OAAO,EAAE;MACjCd,WAAW,CAACe,QAAQ,CAACC,cAAc,CAACV,MAAM,CAACQ,OAAO,CAAC;IACrD;EACF,CAAC,EAAE,CAACd,WAAW,EAAEM,MAAM,CAAC,CAAC;EAEzB,OAAO;IACLN,WAAW,EAAXA,WAAW;IACXiB,aAAa,eAAE,IAAAhE,WAAA,CAAAiE,GAAA;MAAKC,GAAG,EAAEb;IAA2C,CAAE,CAAC;IACvEF,KAAK,EAALA,KAAK;IACLgB,SAAS,EAAEzB;EACb,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"comparisons.js","names":["areAssetMapsEqual","exports","map1","map2","size","_iterator","_createForOfIteratorHelper","_step","s","n","done","_step$value","_slicedToArray","value","key","val","has","_typeof","get","_map2$get","amount","toString","err","e","f"],"sources":["../../../src/utils/comparisons.ts"],"sourcesContent":["import { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\n\n/**\n * Compares two maps or wallet balance maps to determine if they are equal.\n *\n * @param {Map<string, any> | WalletBalanceMap} [map1] - The first map to compare.\n * @param {Map<string, any> | WalletBalanceMap} [map2] - The second map to compare.\n * @returns {boolean} - Returns true if the maps are equal, false otherwise.\n */\nexport const areAssetMapsEqual = (\n map1?: Map<string, any> | WalletBalanceMap,\n map2?: Map<string, any> | WalletBalanceMap\n): boolean => {\n if (map1?.size !== map2?.size) {\n return false;\n }\n\n if (map1 && map2) {\n for (const [key, val] of map1) {\n if (!map2.has(key)) {\n return false;\n }\n\n if (typeof map2.get(key) === \"object\") {\n if (map2.get(key)?.amount !== val?.amount) {\n return false;\n }\n }\n\n if (typeof map2.get(key) !== typeof val) {\n return false;\n }\n\n if (map2.get(key).toString() !== val.toString()) {\n return false;\n }\n }\n }\n\n return true;\n};\n"],"mappings":";;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAC5BE,IAA0C,EAC1CC,IAA0C,EAC9B;EACZ,IAAI,CAAAD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,IAAI,OAAKD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,IAAI,GAAE;IAC7B,OAAO,KAAK;EACd;EAEA,IAAIF,IAAI,IAAIC,IAAI,EAAE;IAAA,IAAAE,SAAA,GAAAC,0BAAA,CACSJ,IAAI;MAAAK,KAAA;IAAA;MAA7B,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA+B;QAAA,IAAAC,WAAA,GAAAC,cAAA,CAAAL,KAAA,CAAAM,KAAA;UAAnBC,GAAG,GAAAH,WAAA;UAAEI,GAAG,GAAAJ,WAAA;QAClB,IAAI,CAACR,IAAI,CAACa,GAAG,CAACF,GAAG,CAAC,EAAE;UAClB,OAAO,KAAK;QACd;QAEA,IAAIG,OAAA,CAAOd,IAAI,CAACe,GAAG,CAACJ,GAAG,CAAC,MAAK,QAAQ,EAAE;UAAA,IAAAK,SAAA;UACrC,IAAI,EAAAA,SAAA,GAAAhB,IAAI,CAACe,GAAG,CAACJ,GAAG,CAAC,cAAAK,SAAA,uBAAbA,SAAA,CAAeC,MAAM,OAAKL,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEK,MAAM,GAAE;YACzC,OAAO,KAAK;UACd;QACF;QAEA,IAAIH,OAAA,CAAOd,IAAI,CAACe,GAAG,CAACJ,GAAG,CAAC,MAAAG,OAAA,CAAYF,GAAG,GAAE;UACvC,OAAO,KAAK;QACd;QAEA,IAAIZ,IAAI,CAACe,GAAG,CAACJ,GAAG,CAAC,CAACO,QAAQ,CAAC,CAAC,KAAKN,GAAG,CAACM,QAAQ,CAAC,CAAC,EAAE;UAC/C,OAAO,KAAK;QACd;MACF;IAAC,SAAAC,GAAA;MAAAjB,SAAA,CAAAkB,CAAA,CAAAD,GAAA;IAAA;MAAAjB,SAAA,CAAAmB,CAAA;IAAA;EACH;EAEA,OAAO,IAAI;AACb,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"comparisons.js","names":["areAssetMapsEqual","exports","map1","map2","size","_iterator","_createForOfIteratorHelper","_step","s","n","done","_step$value","_slicedToArray","value","key","val","has","_typeof","get","_map2$get","amount","toString","err","e","f"],"sources":["../../../src/utils/comparisons.ts"],"sourcesContent":["import { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\n\n/**\n * Compares two maps or wallet balance maps to determine if they are equal.\n *\n * @param {Map<string, any> | WalletBalanceMap} [map1] - The first map to compare.\n * @param {Map<string, any> | WalletBalanceMap} [map2] - The second map to compare.\n * @returns {boolean} - Returns true if the maps are equal, false otherwise.\n */\nexport const areAssetMapsEqual = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n map1?: Map<string, any> | WalletBalanceMap,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n map2?: Map<string, any> | WalletBalanceMap,\n): boolean => {\n if (map1?.size !== map2?.size) {\n return false;\n }\n\n if (map1 && map2) {\n for (const [key, val] of map1) {\n if (!map2.has(key)) {\n return false;\n }\n\n if (typeof map2.get(key) === \"object\") {\n if (map2.get(key)?.amount !== val?.amount) {\n return false;\n }\n }\n\n if (typeof map2.get(key) !== typeof val) {\n return false;\n }\n\n if (map2.get(key).toString() !== val.toString()) {\n return false;\n }\n }\n }\n\n return true;\n};\n"],"mappings":";;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAE5BE,IAA0C,EAE1CC,IAA0C,EAC9B;EACZ,IAAI,CAAAD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,IAAI,OAAKD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,IAAI,GAAE;IAC7B,OAAO,KAAK;EACd;EAEA,IAAIF,IAAI,IAAIC,IAAI,EAAE;IAAA,IAAAE,SAAA,GAAAC,0BAAA,CACSJ,IAAI;MAAAK,KAAA;IAAA;MAA7B,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA+B;QAAA,IAAAC,WAAA,GAAAC,cAAA,CAAAL,KAAA,CAAAM,KAAA;UAAnBC,GAAG,GAAAH,WAAA;UAAEI,GAAG,GAAAJ,WAAA;QAClB,IAAI,CAACR,IAAI,CAACa,GAAG,CAACF,GAAG,CAAC,EAAE;UAClB,OAAO,KAAK;QACd;QAEA,IAAIG,OAAA,CAAOd,IAAI,CAACe,GAAG,CAACJ,GAAG,CAAC,MAAK,QAAQ,EAAE;UAAA,IAAAK,SAAA;UACrC,IAAI,EAAAA,SAAA,GAAAhB,IAAI,CAACe,GAAG,CAACJ,GAAG,CAAC,cAAAK,SAAA,uBAAbA,SAAA,CAAeC,MAAM,OAAKL,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEK,MAAM,GAAE;YACzC,OAAO,KAAK;UACd;QACF;QAEA,IAAIH,OAAA,CAAOd,IAAI,CAACe,GAAG,CAACJ,GAAG,CAAC,MAAAG,OAAA,CAAYF,GAAG,GAAE;UACvC,OAAO,KAAK;QACd;QAEA,IAAIZ,IAAI,CAACe,GAAG,CAACJ,GAAG,CAAC,CAACO,QAAQ,CAAC,CAAC,KAAKN,GAAG,CAACM,QAAQ,CAAC,CAAC,EAAE;UAC/C,OAAO,KAAK;QACd;MACF;IAAC,SAAAC,GAAA;MAAAjB,SAAA,CAAAkB,CAAA,CAAAD,GAAA;IAAA;MAAAjB,SAAA,CAAAmB,CAAA;IAAA;EACH;EAEA,OAAO,IAAI;AACb,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"hashing.js","names":["getEventKey","exports","event","callback","concat","getFunctionHash","str","name","toString","replace","hash","i","length","charCodeAt"],"sources":["../../../src/utils/hashing.ts"],"sourcesContent":["import {\n EWalletObserverEventValues,\n TWalletObserverEventFunction,\n} from \"../@types/events.js\";\n\n/**\n * Generates a unique key for the event and callback function.\n *\n * @template E - The event type.\n * @param {E} event - The event type.\n * @param {TWalletObserverEventFunction<E>} callback - The callback function.\n * @returns {string} - The unique key for the event and callback.\n */\nexport const getEventKey = <E extends keyof EWalletObserverEventValues>(\n event: E,\n callback: TWalletObserverEventFunction<E>\n): string => {\n return `${event}-${getFunctionHash(callback)}`;\n};\n\n/**\n * Generates a hash for the callback function.\n *\n * @template E - The event type.\n * @param {TWalletObserverEventFunction<E>} callback - The callback function.\n * @returns {number} - The hash of the callback function.\n */\nexport const getFunctionHash = <E extends keyof EWalletObserverEventValues>(\n callback: TWalletObserverEventFunction<E>\n): number => {\n const str = `${callback.name}${callback.toString()}`.replace(/\\s+/g, \"\");\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash * 33) ^ str.charCodeAt(i);\n }\n\n return hash >>> 0; // Convert to unsigned 32-bit integer\n};\n"],"mappings":";;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CACtBE,KAAQ,EACRC,QAAyC,EAC9B;EACX,UAAAC,MAAA,CAAUF,KAAK,OAAAE,MAAA,CAAIC,eAAe,CAACF,QAAQ,CAAC;AAC9C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAME,eAAe,GAAAJ,OAAA,CAAAI,eAAA,GAAG,SAAlBA,eAAeA,CAC1BF,QAAyC,EAC9B;EACX,IAAMG,GAAG,GAAG,GAAAF,MAAA,CAAGD,QAAQ,CAACI,IAAI,EAAAH,MAAA,CAAGD,QAAQ,CAACK,QAAQ,CAAC,CAAC,EAAGC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EACxE,IAAIC,IAAI,GAAG,IAAI;EACf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,GAAG,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;IACnCD,IAAI,GAAIA,IAAI,GAAG,EAAE,GAAIJ,GAAG,CAACO,UAAU,CAACF,CAAC,CAAC;EACxC;EAEA,OAAOD,IAAI,KAAK,CAAC,CAAC,CAAC;AACrB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"hashing.js","names":["getEventKey","exports","event","callback","concat","getFunctionHash","str","name","toString","replace","hash","i","length","charCodeAt"],"sources":["../../../src/utils/hashing.ts"],"sourcesContent":["import {\n IWalletObserverEventValues,\n TWalletObserverEventFunction,\n} from \"../@types/events.js\";\n\n/**\n * Generates a unique key for the event and callback function.\n *\n * @template E - The event type.\n * @param {E} event - The event type.\n * @param {TWalletObserverEventFunction<E>} callback - The callback function.\n * @returns {string} - The unique key for the event and callback.\n */\nexport const getEventKey = <E extends keyof IWalletObserverEventValues>(\n event: E,\n callback: TWalletObserverEventFunction<E>,\n): string => {\n return `${event}-${getFunctionHash(callback)}`;\n};\n\n/**\n * Generates a hash for the callback function.\n *\n * @template E - The event type.\n * @param {TWalletObserverEventFunction<E>} callback - The callback function.\n * @returns {number} - The hash of the callback function.\n */\nexport const getFunctionHash = <E extends keyof IWalletObserverEventValues>(\n callback: TWalletObserverEventFunction<E>,\n): number => {\n const str = `${callback.name}${callback.toString()}`.replace(/\\s+/g, \"\");\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash * 33) ^ str.charCodeAt(i);\n }\n\n return hash >>> 0; // Convert to unsigned 32-bit integer\n};\n"],"mappings":";;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CACtBE,KAAQ,EACRC,QAAyC,EAC9B;EACX,UAAAC,MAAA,CAAUF,KAAK,OAAAE,MAAA,CAAIC,eAAe,CAACF,QAAQ,CAAC;AAC9C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAME,eAAe,GAAAJ,OAAA,CAAAI,eAAA,GAAG,SAAlBA,eAAeA,CAC1BF,QAAyC,EAC9B;EACX,IAAMG,GAAG,GAAG,GAAAF,MAAA,CAAGD,QAAQ,CAACI,IAAI,EAAAH,MAAA,CAAGD,QAAQ,CAACK,QAAQ,CAAC,CAAC,EAAGC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EACxE,IAAIC,IAAI,GAAG,IAAI;EACf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,GAAG,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;IACnCD,IAAI,GAAIA,IAAI,GAAG,EAAE,GAAIJ,GAAG,CAACO,UAAU,CAACF,CAAC,CAAC;EACxC;EAEA,OAAOD,IAAI,KAAK,CAAC,CAAC,CAAC;AACrB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":["EWalletObserverEvents"],"sources":["../../../src/@types/events.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\n\n/**\n * A list of observer events that a client can hook into.\n */\nexport enum EWalletObserverEvents {\n CONNECT_WALLET_START = \"connectWalletStart\",\n CONNECT_WALLET_END = \"connectWalletEnd\",\n SYNCING_WALLET_START = \"syncingWalletStart\",\n SYNCING_WALLET_END = \"syncingWalletEnd\",\n GET_BALANCE_MAP_START = \"getBalanceMapStart\",\n GET_BALANCE_MAP_END = \"getBalanceMapEnd\",\n DISCONNECT = \"disconnect\",\n}\n\n/**\n * A map of what each event passes to the event listener function.\n */\nexport interface EWalletObserverEventValues<\n T extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n [EWalletObserverEvents.SYNCING_WALLET_START]: undefined;\n [EWalletObserverEvents.SYNCING_WALLET_END]:\n | undefined\n | {\n balanceMap: WalletBalanceMap<T>;\n network: number;\n usedAddresses: string[];\n unusedAddresses: string[];\n };\n [EWalletObserverEvents.CONNECT_WALLET_START]: undefined;\n [EWalletObserverEvents.CONNECT_WALLET_END]: undefined;\n [EWalletObserverEvents.GET_BALANCE_MAP_START]: undefined;\n [EWalletObserverEvents.GET_BALANCE_MAP_END]: {\n balanceMap: WalletBalanceMap<T>;\n };\n [EWalletObserverEvents.DISCONNECT]: undefined;\n}\n\n/**\n * The function declaration so that an even handler can get\n * type definitions for the arguments.\n */\nexport type TWalletObserverEventFunction<\n E extends keyof EWalletObserverEventValues\n> = (data?: EWalletObserverEventValues[E]) => void;\n"],"mappings":"AAIA;AACA;AACA;AACA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;;AAUjC;AACA;AACA;;AAsBA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"file":"events.js","names":["EWalletObserverEvents"],"sources":["../../../src/@types/events.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\n\n/**\n * A list of observer events that a client can hook into.\n */\nexport enum EWalletObserverEvents {\n CONNECT_WALLET_START = \"connectWalletStart\",\n CONNECT_WALLET_END = \"connectWalletEnd\",\n SYNCING_WALLET_START = \"syncingWalletStart\",\n SYNCING_WALLET_END = \"syncingWalletEnd\",\n GET_BALANCE_MAP_START = \"getBalanceMapStart\",\n GET_BALANCE_MAP_END = \"getBalanceMapEnd\",\n DISCONNECT = \"disconnect\",\n}\n\n/**\n * A map of what each event passes to the event listener function.\n */\nexport interface IWalletObserverEventValues<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> {\n [EWalletObserverEvents.SYNCING_WALLET_START]: undefined;\n [EWalletObserverEvents.SYNCING_WALLET_END]:\n | undefined\n | {\n balanceMap: WalletBalanceMap<T>;\n network: number;\n usedAddresses: string[];\n unusedAddresses: string[];\n };\n [EWalletObserverEvents.CONNECT_WALLET_START]: undefined;\n [EWalletObserverEvents.CONNECT_WALLET_END]: undefined;\n [EWalletObserverEvents.GET_BALANCE_MAP_START]: undefined;\n [EWalletObserverEvents.GET_BALANCE_MAP_END]: {\n balanceMap: WalletBalanceMap<T>;\n };\n [EWalletObserverEvents.DISCONNECT]: undefined;\n}\n\n/**\n * The function declaration so that an even handler can get\n * type definitions for the arguments.\n */\nexport type TWalletObserverEventFunction<\n E extends keyof IWalletObserverEventValues,\n> = (data?: IWalletObserverEventValues[E]) => void;\n"],"mappings":"AAIA;AACA;AACA;AACA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;;AAUjC;AACA;AACA;;AAsBA;AACA;AACA;AACA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"global.d.js","names":[],"sources":["../../../src/@types/global.d.ts"],"sourcesContent":["import { TWindowCardano } from \"./observer.js\";\n\ndeclare global {\n interface Window {\n cardano?: TWindowCardano;\n }\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"global.d.js","names":[],"sources":["../../../src/@types/global.d.ts"],"sourcesContent":["import { TWindowCardano } from \"./observer.js\";\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n interface Window {\n cardano?: TWindowCardano;\n }\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"observer.js","names":[],"sources":["../../../src/@types/observer.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport type { DAppPeerConnect } from \"@fabianbormann/cardano-peer-connect\";\nimport type { DAppPeerConnectParameters } from \"@fabianbormann/cardano-peer-connect/dist/src/types.js\";\nimport type { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletAssetMap } from \"../classes/WalletAssetMap.class.js\";\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\n\n/**\n * A list of support CIP-30 wallet extensions in the browser.\n */\nexport type TSupportedWalletExtensions =\n | \"nami\"\n | \"eternl\"\n | \"typhoncip30\"\n | \"ccvault\"\n | \"typhon\"\n | \"yoroi\"\n | \"flint\"\n | \"gerowallet\"\n | \"cardwallet\"\n | \"nufi\"\n | \"begin\"\n | \"lace\"\n | \"sorbet\";\n\n/**\n * Interface to describe window extension.\n */\nexport interface IWindowCip30Extension {\n apiVersion: string;\n enable: () => Promise<Cip30WalletApi>;\n icon: string;\n isEnabled: () => Promise<boolean>;\n name: TSupportedWalletExtensions;\n}\n\n/**\n * Interface to describe our expected window configuration.\n */\nexport type TWindowCardano = {\n [K in TSupportedWalletExtensions]?: IWindowCip30Extension;\n};\n\n/**\n * The metadata resolver should return a map composed of\n * the asset ID as the key, and the metadata as the value.\n */\nexport type TMetadataResolverFunc<\n T extends IAssetAmountMetadata = IAssetAmountMetadata\n> = (\n assetIds: string[],\n normalizeAssetIdFunc: typeof normalizeAssetIdWithDot,\n isAdaAssetFunc: typeof isAdaAsset\n) => Promise<Map<string, T>>;\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport interface IResolvedWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n metadataResolver: TMetadataResolverFunc<AssetMetadata>;\n persistence: boolean;\n peerConnectArgs: DAppPeerConnectParameters;\n connectTimeout: number;\n debug: boolean;\n}\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport type TWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> = Partial<IResolvedWalletObserverOptions<AssetMetadata>>;\n\n/**\n * Interface describing the Map type of an asset.\n */\nexport type TAssetAmountMap<\n T extends IAssetAmountMetadata = IAssetAmountMetadata\n> = WalletAssetMap<T>;\n\n/**\n * Interface describing the structure of the persistent\n * data located in local storage.\n */\nexport interface IWalletObserverSeed {\n activeWallet: TSupportedWalletExtensions;\n}\n\n/**\n * The return type for the WalletObserver.getCip45Instance\n * method.\n */\nexport type TGetPeerConnectInstance = () => {\n name: string;\n icon: string | null;\n instance: DAppPeerConnect;\n};\n\nexport interface IWalletObserverSync<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n balanceMap: WalletBalanceMap<AssetMetadata>;\n usedAddresses: string[];\n unusedAddresses: string[];\n utxos?: TransactionUnspentOutput[];\n network: number;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"observer.js","names":[],"sources":["../../../src/@types/observer.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport type { DAppPeerConnect } from \"@fabianbormann/cardano-peer-connect\";\nimport type { DAppPeerConnectParameters } from \"@fabianbormann/cardano-peer-connect/dist/src/types.js\";\nimport type { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletAssetMap } from \"../classes/WalletAssetMap.class.js\";\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\n\n/**\n * A list of support CIP-30 wallet extensions in the browser.\n */\nexport type TSupportedWalletExtensions =\n | \"nami\"\n | \"eternl\"\n | \"typhoncip30\"\n | \"ccvault\"\n | \"typhon\"\n | \"yoroi\"\n | \"flint\"\n | \"gerowallet\"\n | \"cardwallet\"\n | \"nufi\"\n | \"begin\"\n | \"lace\"\n | \"sorbet\";\n\n/**\n * Interface to describe window extension.\n */\nexport interface IWindowCip30Extension {\n apiVersion: string;\n enable: () => Promise<Cip30WalletApi>;\n icon: string;\n isEnabled: () => Promise<boolean>;\n name: TSupportedWalletExtensions;\n}\n\n/**\n * Interface to describe our expected window configuration.\n */\nexport type TWindowCardano = {\n [K in TSupportedWalletExtensions]?: IWindowCip30Extension;\n};\n\n/**\n * The metadata resolver should return a map composed of\n * the asset ID as the key, and the metadata as the value.\n */\nexport type TMetadataResolverFunc<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = (\n assetIds: string[],\n normalizeAssetIdFunc: typeof normalizeAssetIdWithDot,\n isAdaAssetFunc: typeof isAdaAsset,\n) => Promise<Map<string, T>>;\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport interface IResolvedWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> {\n metadataResolver: TMetadataResolverFunc<AssetMetadata>;\n persistence: boolean;\n peerConnectArgs: DAppPeerConnectParameters;\n connectTimeout: number;\n debug: boolean;\n}\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport type TWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = Partial<IResolvedWalletObserverOptions<AssetMetadata>>;\n\n/**\n * Interface describing the Map type of an asset.\n */\nexport type TAssetAmountMap<\n T extends IAssetAmountMetadata = IAssetAmountMetadata,\n> = WalletAssetMap<T>;\n\n/**\n * Interface describing the structure of the persistent\n * data located in local storage.\n */\nexport interface IWalletObserverSeed {\n activeWallet: TSupportedWalletExtensions;\n}\n\n/**\n * The return type for the WalletObserver.getCip45Instance\n * method.\n */\nexport type TGetPeerConnectInstance = () => {\n name: string;\n icon: string | null;\n instance: DAppPeerConnect;\n};\n\nexport interface IWalletObserverSync<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> {\n balanceMap: WalletBalanceMap<AssetMetadata>;\n usedAddresses: string[];\n unusedAddresses: string[];\n utxos?: TransactionUnspentOutput[];\n network: number;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"WalletAssetMap.class.js","names":["normalizeAssetIdWithDot","WalletAssetMap","Map","get","key","set","value","has"],"sources":["../../../src/classes/WalletAssetMap.class.ts"],"sourcesContent":["import { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { normalizeAssetIdWithDot } from \"../utils/assets.js\";\n\n/**\n * Map wrapper to enforce asset id normalization when setting and getting assets.\n */\nexport class WalletAssetMap<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> extends Map<string, AssetAmount<AssetMetadata>> {\n /**\n * Overlay to enforce asset ID normalization.\n *\n * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @returns {AssetAmount<AssetMetadata> | undefined}\n */\n get(key: string): AssetAmount<AssetMetadata> | undefined {\n return super.get(normalizeAssetIdWithDot(key));\n }\n\n /**\n * Overlay to enforce asset ID normalization.\n *\n * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @param {AssetAmount<AssetMetadata>} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @returns {this}\n */\n set(key: string, value: AssetAmount<AssetMetadata>): this {\n return super.set(normalizeAssetIdWithDot(key), value);\n }\n\n /**\n * Overlay to enforce asset ID normalization.\n *\n * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @returns {AssetAmount<AssetMetadata> | undefined}\n */\n has(key: string): boolean {\n return super.has(normalizeAssetIdWithDot(key));\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ,oBAAoB;;AAE5D;AACA;AACA;AACA,OAAO,MAAMC,cAAc,SAEjBC,GAAG,CAAqC;EAChD;AACF;AACA;AACA;AACA;AACA;EACEC,GAAGA,CAACC,GAAW,EAA0C;IACvD,OAAO,KAAK,CAACD,GAAG,CAACH,uBAAuB,CAACI,GAAG,CAAC,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,GAAGA,CAACD,GAAW,EAAEE,KAAiC,EAAQ;IACxD,OAAO,KAAK,CAACD,GAAG,CAACL,uBAAuB,CAACI,GAAG,CAAC,EAAEE,KAAK,CAAC;EACvD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEC,GAAGA,CAACH,GAAW,EAAW;IACxB,OAAO,KAAK,CAACG,GAAG,CAACP,uBAAuB,CAACI,GAAG,CAAC,CAAC;EAChD;AACF","ignoreList":[]}
1
+ {"version":3,"file":"WalletAssetMap.class.js","names":["normalizeAssetIdWithDot","WalletAssetMap","Map","get","key","set","value","has"],"sources":["../../../src/classes/WalletAssetMap.class.ts"],"sourcesContent":["import { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { normalizeAssetIdWithDot } from \"../utils/assets.js\";\n\n/**\n * Map wrapper to enforce asset id normalization when setting and getting assets.\n */\nexport class WalletAssetMap<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> extends Map<string, AssetAmount<AssetMetadata>> {\n /**\n * Overlay to enforce asset ID normalization.\n *\n * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @returns {AssetAmount<AssetMetadata> | undefined}\n */\n get(key: string): AssetAmount<AssetMetadata> | undefined {\n return super.get(normalizeAssetIdWithDot(key));\n }\n\n /**\n * Overlay to enforce asset ID normalization.\n *\n * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @param {AssetAmount<AssetMetadata>} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @returns {this}\n */\n set(key: string, value: AssetAmount<AssetMetadata>): this {\n return super.set(normalizeAssetIdWithDot(key), value);\n }\n\n /**\n * Overlay to enforce asset ID normalization.\n *\n * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @returns {AssetAmount<AssetMetadata> | undefined}\n */\n has(key: string): boolean {\n return super.has(normalizeAssetIdWithDot(key));\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ,oBAAoB;;AAE5D;AACA;AACA;AACA,OAAO,MAAMC,cAAc,SAEjBC,GAAG,CAAqC;EAChD;AACF;AACA;AACA;AACA;AACA;EACEC,GAAGA,CAACC,GAAW,EAA0C;IACvD,OAAO,KAAK,CAACD,GAAG,CAACH,uBAAuB,CAACI,GAAG,CAAC,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,GAAGA,CAACD,GAAW,EAAEE,KAAiC,EAAQ;IACxD,OAAO,KAAK,CAACD,GAAG,CAACL,uBAAuB,CAACI,GAAG,CAAC,EAAEE,KAAK,CAAC;EACvD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEC,GAAGA,CAACH,GAAW,EAAW;IACxB,OAAO,KAAK,CAACG,GAAG,CAACP,uBAAuB,CAACI,GAAG,CAAC,CAAC;EAChD;AACF","ignoreList":[]}
@@ -8,7 +8,7 @@ import { WalletAssetMap } from "./WalletAssetMap.class.js";
8
8
  * for convenience when querying against the map.
9
9
  *
10
10
  * @template AssetMetadata - Type extending IAssetAmountMetadata.
11
- * @extends {Map<string, AssetAmount<AssetMetadata>>}
11
+ * @extends {WalletAssetMap<AssetMetadata>}
12
12
  */
13
13
  export class WalletBalanceMap extends WalletAssetMap {
14
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"WalletBalanceMap.class.js","names":["WalletAssetMap","WalletBalanceMap","constructor","_observer","_defineProperty","map","entries","forEach","key","asset","metadata","decimals","set","isHandle","_handlePolicyIds","network","some","policyId","assetId","includes","withHandles","amount","getNonFungibleTokens"],"sources":["../../../src/classes/WalletBalanceMap.class.ts"],"sourcesContent":["import { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { TAssetAmountMap } from \"../@types/observer.js\";\nimport { WalletAssetMap } from \"./WalletAssetMap.class.js\";\nimport { WalletObserver } from \"./WalletObserver.class.js\";\n\n/**\n * A custom Map instance that describes a list of assets and their metadata,\n * including the asset's wallet balance. It also includes associated helper methods\n * for convenience when querying against the map.\n *\n * @template AssetMetadata - Type extending IAssetAmountMetadata.\n * @extends {Map<string, AssetAmount<AssetMetadata>>}\n */\nexport class WalletBalanceMap<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> extends WalletAssetMap<AssetMetadata> {\n /**\n * @private\n * @type {Record<number, string[]>}\n * @description Handle policy IDs mapped by network number. We use this\n * manually since the SDK includes the necessity of an instance and we\n * don't really need all the extra stuff yet.\n */\n private _handlePolicyIds: Record<number, string[]> = {\n 0: [\"8d18d786e92776c824607fd8e193ec535c79dc61ea2405ddf3b09fe3\"],\n 1: [\"f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a\"],\n };\n\n /**\n * Creates an instance of WalletBalanceMap.\n * @param {WalletObserver} _observer - An instance of the associated WalletObserver.\n */\n constructor(private _observer: WalletObserver) {\n super();\n }\n\n /**\n * Get only fungible assets from the wallet balance map\n * and return them as a subset Map.\n *\n * @returns {TAssetAmountMap<AssetMetadata>} A map of fungible tokens.\n */\n getFungibleTokens = (): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n if (asset.metadata.decimals > 0) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Get only Handle NFTs from the wallet balance map\n * and return them as a subset Map.\n *\n * @returns {TAssetAmountMap<AssetMetadata>} A map of handle assets.\n */\n getHandles = (): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n const isHandle = this._handlePolicyIds[this._observer.network].some(\n (policyId) => asset.metadata.assetId.includes(policyId)\n );\n\n if (isHandle) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Get only non-fungible tokens (NFTs) from the wallet balance map\n * and return them as a subset.\n *\n * @param {boolean} [withHandles] - Optional parameter to include Handles. Defaults to false.\n * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.\n */\n getNonFungibleTokens = (\n withHandles?: boolean\n ): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n if (\n !withHandles &&\n this._handlePolicyIds[this._observer.network].some((policyId) =>\n asset.metadata.assetId.includes(policyId)\n )\n ) {\n return;\n }\n\n if (asset.metadata.decimals === 0 && asset.amount === 1n) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Alias for getNonFungibleTokens.\n *\n * @param {boolean} [withHandles] - Optional parameter to include Handles. Defaults to false.\n * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.\n */\n getNFTs = (withHandles?: boolean): TAssetAmountMap<AssetMetadata> =>\n this.getNonFungibleTokens(withHandles);\n}\n"],"mappings":";;;AAGA,SAASA,cAAc,QAAQ,2BAA2B;AAG1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,SAEnBD,cAAc,CAAgB;EAatC;AACF;AACA;AACA;EACEE,WAAWA,CAASC,SAAyB,EAAE;IAC7C,KAAK,CAAC,CAAC;IAAC,KADUA,SAAyB,GAAzBA,SAAyB;IAhB7C;AACF;AACA;AACA;AACA;AACA;AACA;IANEC,eAAA,2BAOqD;MACnD,CAAC,EAAE,CAAC,0DAA0D,CAAC;MAC/D,CAAC,EAAE,CAAC,0DAA0D;IAChE,CAAC;IAUD;AACF;AACA;AACA;AACA;AACA;IALEA,eAAA,4BAMoB,MAAsC;MACxD,MAAMC,GAAmC,GAAG,IAAIL,cAAc,CAAC,CAAC;MAChE,CAAC,GAAG,IAAI,CAACM,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;QAC5C,IAAIA,KAAK,CAACC,QAAQ,CAACC,QAAQ,GAAG,CAAC,EAAE;UAC/BN,GAAG,CAACO,GAAG,CAACJ,GAAG,EAAEC,KAAK,CAAC;QACrB;MACF,CAAC,CAAC;MAEF,OAAOJ,GAAG;IACZ,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;IALED,eAAA,qBAMa,MAAsC;MACjD,MAAMC,GAAmC,GAAG,IAAIL,cAAc,CAAC,CAAC;MAChE,CAAC,GAAG,IAAI,CAACM,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;QAC5C,MAAMI,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAACX,SAAS,CAACY,OAAO,CAAC,CAACC,IAAI,CAChEC,QAAQ,IAAKR,KAAK,CAACC,QAAQ,CAACQ,OAAO,CAACC,QAAQ,CAACF,QAAQ,CACxD,CAAC;QAED,IAAIJ,QAAQ,EAAE;UACZR,GAAG,CAACO,GAAG,CAACJ,GAAG,EAAEC,KAAK,CAAC;QACrB;MACF,CAAC,CAAC;MAEF,OAAOJ,GAAG;IACZ,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;AACA;IANED,eAAA,+BAQEgB,WAAqB,IACc;MACnC,MAAMf,GAAmC,GAAG,IAAIL,cAAc,CAAC,CAAC;MAChE,CAAC,GAAG,IAAI,CAACM,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;QAC5C,IACE,CAACW,WAAW,IACZ,IAAI,CAACN,gBAAgB,CAAC,IAAI,CAACX,SAAS,CAACY,OAAO,CAAC,CAACC,IAAI,CAAEC,QAAQ,IAC1DR,KAAK,CAACC,QAAQ,CAACQ,OAAO,CAACC,QAAQ,CAACF,QAAQ,CAC1C,CAAC,EACD;UACA;QACF;QAEA,IAAIR,KAAK,CAACC,QAAQ,CAACC,QAAQ,KAAK,CAAC,IAAIF,KAAK,CAACY,MAAM,KAAK,EAAE,EAAE;UACxDhB,GAAG,CAACO,GAAG,CAACJ,GAAG,EAAEC,KAAK,CAAC;QACrB;MACF,CAAC,CAAC;MAEF,OAAOJ,GAAG;IACZ,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;IALED,eAAA,kBAMWgB,WAAqB,IAC9B,IAAI,CAACE,oBAAoB,CAACF,WAAW,CAAC;EA5ExC;AA6EF","ignoreList":[]}
1
+ {"version":3,"file":"WalletBalanceMap.class.js","names":["WalletAssetMap","WalletBalanceMap","constructor","_observer","_defineProperty","map","entries","forEach","key","asset","metadata","decimals","set","isHandle","_handlePolicyIds","network","some","policyId","assetId","includes","withHandles","amount","getNonFungibleTokens"],"sources":["../../../src/classes/WalletBalanceMap.class.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { TAssetAmountMap } from \"../@types/observer.js\";\nimport { WalletAssetMap } from \"./WalletAssetMap.class.js\";\nimport { WalletObserver } from \"./WalletObserver.class.js\";\n\n/**\n * A custom Map instance that describes a list of assets and their metadata,\n * including the asset's wallet balance. It also includes associated helper methods\n * for convenience when querying against the map.\n *\n * @template AssetMetadata - Type extending IAssetAmountMetadata.\n * @extends {WalletAssetMap<AssetMetadata>}\n */\nexport class WalletBalanceMap<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> extends WalletAssetMap<AssetMetadata> {\n /**\n * @private\n * @type {Record<number, string[]>}\n * @description Handle policy IDs mapped by network number. We use this\n * manually since the SDK includes the necessity of an instance and we\n * don't really need all the extra stuff yet.\n */\n private _handlePolicyIds: Record<number, string[]> = {\n 0: [\"8d18d786e92776c824607fd8e193ec535c79dc61ea2405ddf3b09fe3\"],\n 1: [\"f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a\"],\n };\n\n /**\n * Creates an instance of WalletBalanceMap.\n * @param {WalletObserver} _observer - An instance of the associated WalletObserver.\n */\n constructor(private _observer: WalletObserver) {\n super();\n }\n\n /**\n * Get only fungible assets from the wallet balance map\n * and return them as a subset Map.\n *\n * @returns {TAssetAmountMap<AssetMetadata>} A map of fungible tokens.\n */\n getFungibleTokens = (): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n if (asset.metadata.decimals > 0) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Get only Handle NFTs from the wallet balance map\n * and return them as a subset Map.\n *\n * @returns {TAssetAmountMap<AssetMetadata>} A map of handle assets.\n */\n getHandles = (): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n const isHandle = this._handlePolicyIds[this._observer.network].some(\n (policyId) => asset.metadata.assetId.includes(policyId),\n );\n\n if (isHandle) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Get only non-fungible tokens (NFTs) from the wallet balance map\n * and return them as a subset.\n *\n * @param {boolean} [withHandles] - Optional parameter to include Handles. Defaults to false.\n * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.\n */\n getNonFungibleTokens = (\n withHandles?: boolean,\n ): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n if (\n !withHandles &&\n this._handlePolicyIds[this._observer.network].some((policyId) =>\n asset.metadata.assetId.includes(policyId),\n )\n ) {\n return;\n }\n\n if (asset.metadata.decimals === 0 && asset.amount === 1n) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Alias for getNonFungibleTokens.\n *\n * @param {boolean} [withHandles] - Optional parameter to include Handles. Defaults to false.\n * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.\n */\n getNFTs = (withHandles?: boolean): TAssetAmountMap<AssetMetadata> =>\n this.getNonFungibleTokens(withHandles);\n}\n"],"mappings":";;;AAGA,SAASA,cAAc,QAAQ,2BAA2B;AAG1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,SAEnBD,cAAc,CAAgB;EAatC;AACF;AACA;AACA;EACEE,WAAWA,CAASC,SAAyB,EAAE;IAC7C,KAAK,CAAC,CAAC;IAAC,KADUA,SAAyB,GAAzBA,SAAyB;IAhB7C;AACF;AACA;AACA;AACA;AACA;AACA;IANEC,eAAA,2BAOqD;MACnD,CAAC,EAAE,CAAC,0DAA0D,CAAC;MAC/D,CAAC,EAAE,CAAC,0DAA0D;IAChE,CAAC;IAUD;AACF;AACA;AACA;AACA;AACA;IALEA,eAAA,4BAMoB,MAAsC;MACxD,MAAMC,GAAmC,GAAG,IAAIL,cAAc,CAAC,CAAC;MAChE,CAAC,GAAG,IAAI,CAACM,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;QAC5C,IAAIA,KAAK,CAACC,QAAQ,CAACC,QAAQ,GAAG,CAAC,EAAE;UAC/BN,GAAG,CAACO,GAAG,CAACJ,GAAG,EAAEC,KAAK,CAAC;QACrB;MACF,CAAC,CAAC;MAEF,OAAOJ,GAAG;IACZ,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;IALED,eAAA,qBAMa,MAAsC;MACjD,MAAMC,GAAmC,GAAG,IAAIL,cAAc,CAAC,CAAC;MAChE,CAAC,GAAG,IAAI,CAACM,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;QAC5C,MAAMI,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAACX,SAAS,CAACY,OAAO,CAAC,CAACC,IAAI,CAChEC,QAAQ,IAAKR,KAAK,CAACC,QAAQ,CAACQ,OAAO,CAACC,QAAQ,CAACF,QAAQ,CACxD,CAAC;QAED,IAAIJ,QAAQ,EAAE;UACZR,GAAG,CAACO,GAAG,CAACJ,GAAG,EAAEC,KAAK,CAAC;QACrB;MACF,CAAC,CAAC;MAEF,OAAOJ,GAAG;IACZ,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;AACA;IANED,eAAA,+BAQEgB,WAAqB,IACc;MACnC,MAAMf,GAAmC,GAAG,IAAIL,cAAc,CAAC,CAAC;MAChE,CAAC,GAAG,IAAI,CAACM,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;QAC5C,IACE,CAACW,WAAW,IACZ,IAAI,CAACN,gBAAgB,CAAC,IAAI,CAACX,SAAS,CAACY,OAAO,CAAC,CAACC,IAAI,CAAEC,QAAQ,IAC1DR,KAAK,CAACC,QAAQ,CAACQ,OAAO,CAACC,QAAQ,CAACF,QAAQ,CAC1C,CAAC,EACD;UACA;QACF;QAEA,IAAIR,KAAK,CAACC,QAAQ,CAACC,QAAQ,KAAK,CAAC,IAAIF,KAAK,CAACY,MAAM,KAAK,EAAE,EAAE;UACxDhB,GAAG,CAACO,GAAG,CAACJ,GAAG,EAAEC,KAAK,CAAC;QACrB;MACF,CAAC,CAAC;MAEF,OAAOJ,GAAG;IACZ,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;IALED,eAAA,kBAMWgB,WAAqB,IAC9B,IAAI,CAACE,oBAAoB,CAACF,WAAW,CAAC;EA5ExC;AA6EF","ignoreList":[]}
@@ -108,7 +108,7 @@ export class WalletObserver extends WalletObserverEvent {
108
108
  * but the underlying intent has not.
109
109
  *
110
110
  * @param {TSupportedWalletExtensions} [activeWallet] - The wallet to sync with.
111
- * @returns {Promise<Cip30WalletApi>} - A promise that resolves to the API instance.
111
+ * @returns {Promise<Cip30WalletApi | undefined>} - A promise that resolves to the API instance.
112
112
  */
113
113
  _defineProperty(this, "syncApi", async activeWallet => {
114
114
  if (!activeWallet && !this.activeWallet) {
@@ -337,7 +337,7 @@ export class WalletObserver extends WalletObserverEvent {
337
337
  Serialization
338
338
  }, typedHex] = await Promise.all([this.api.getUtxos(), getCardanoCore(), getCardanoUtil()]);
339
339
  const data = cbor?.map(val => {
340
- let txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
340
+ const txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
341
341
 
342
342
  // These methods must be bound to their initial creation instance.
343
343
  txOutput.input = txOutput.input.bind(txOutput);
@@ -370,7 +370,7 @@ export class WalletObserver extends WalletObserverEvent {
370
370
  return await funcCall();
371
371
  })(), getCardanoCore(), getCardanoUtil()]);
372
372
  const data = cbor?.map(val => {
373
- let txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
373
+ const txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
374
374
 
375
375
  // These methods must be bound to their initial creation instance.
376
376
  txOutput.input = txOutput.input.bind(txOutput);
@@ -1 +1 @@
1
- {"version":3,"file":"WalletObserver.class.js","names":["APIErrorCode","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","CONNECT_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","selectedWallet","attempts","shouldContinue","window","cardano","enable","getNetworkId","message","code","Refused","undefined","res","setTimeout","extension","CONNECT_WALLET_START","extensionObject","includes","peerConnectInstance","shutdownServer","connectTimeout","persistence","seed","localStorage","setItem","PERSISTENCE_CACHE_KEY","JSON","stringify","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","isSyncing","hasActiveConnection","Boolean","getUtils","utils","new"],"sources":["../../../src/classes/WalletObserver.class.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport {\n APIErrorCode,\n type ApiError,\n type Cip30WalletApi,\n type GetCollateral,\n} from \"@cardano-sdk/dapp-connector\";\nimport { AssetAmount, type IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport merge from \"lodash/merge.js\";\n\nimport { EWalletObserverEvents } from \"../@types/events.js\";\nimport type {\n IResolvedWalletObserverOptions,\n IWalletObserverSeed,\n IWalletObserverSync,\n TMetadataResolverFunc,\n 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 activeWallet?: TSupportedWalletExtensions;\n public utils?: WalletObserverUtils;\n public peerConnectInstance?: import(\"@fabianbormann/cardano-peer-connect\").DAppPeerConnect;\n\n private _performingSync: boolean = false;\n private _options: IResolvedWalletObserverOptions<AssetMetadata>;\n 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\n /**\n * Synchronizes the wallet. This method handles syncing the class\n * against the currently selected active wallet. If the wallet has\n * changed networks, or if the account within the wallet has changed,\n * this method will automatically attempt to reconcile this error before\n * eventually throwing.\n *\n * In the event that a promise will not resolve due to external issues,\n * after 7 seconds, a timeout function will fire that resets the API and tries again.\n *\n * @returns {Promise<IWalletObserverSync<AssetMetadata>>} - A promise that resolves to the wallet sync data.\n */\n sync = async (): Promise<IWalletObserverSync<AssetMetadata>> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to perform a sync operation without a connected wallet.\"\n );\n }\n\n const start = performance.now();\n\n try {\n this._performingSync = true;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_START);\n\n let newNetwork: 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.dispatch(EWalletObserverEvents.CONNECT_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 const end = performance.now();\n if (this._options.debug) {\n console.log(`sync: ${end - start}ms`);\n }\n\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n this._performingSync = false;\n return result;\n } catch (e) {\n this._performingSync = false;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n throw e;\n }\n };\n\n /**\n * Helper method to check if the class is currently performing a sync\n * operation. This is useful to avoid duplicate calls, but does not\n * prevent it within the class.\n *\n * @returns {boolean}\n */\n isSyncing(): boolean {\n return this._performingSync;\n }\n\n /**\n * Helper method to check if the instance has an active connection.\n *\n * @returns {boolean}\n */\n hasActiveConnection(): boolean {\n return Boolean(this.activeWallet && this.api);\n }\n\n /**\n * Synchronizes the API with the wallet. This is useful if the account has changed,\n * but the underlying intent has not.\n *\n * @param {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 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 let attempts = 0;\n let shouldContinue = true;\n\n while (shouldContinue) {\n if (attempts === 10) {\n throw new Error(\n \"Could not reconnect to the selected wallet. Please check your extension.\"\n );\n }\n\n try {\n const 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 shouldContinue = false;\n } catch (e) {\n if (\n (e as Error)?.message === \"user canceled connection\" ||\n (e as ApiError)?.code === APIErrorCode.Refused\n ) {\n shouldContinue = false;\n return undefined;\n }\n\n await new Promise((res) => setTimeout(res, 200));\n attempts++;\n }\n }\n\n return this.api;\n };\n\n /**\n * Gets the options for the wallet observer.\n *\n * @returns {TWalletObserverOptions} - The wallet observer options.\n */\n getOptions = (): TWalletObserverOptions => {\n return this._options;\n };\n\n /**\n * Attempts to connect a wallet using the global window\n * reference. If no reference is found, it will retry for\n * 10 seconds before throw an error.\n *\n * @param {string} extension The name of the extension to enable.\n * @return {Promise<void>}\n */\n connectWallet = async (\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 const end = performance.now();\n if (this._options.debug) {\n console.log(`connectWallet: ${end - start}ms`);\n }\n };\n\n getCip45Instance = async () => {\n const start = performance.now();\n if (!this.peerConnectInstance) {\n const DAppPeerConnect = await getPeerConnect();\n this.peerConnectInstance = new DAppPeerConnect(\n this._options.peerConnectArgs\n );\n }\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCip45Instance: ${end - start}ms`);\n }\n\n return {\n name: this._options.peerConnectArgs.dAppInfo.name,\n icon: this.peerConnectInstance.getIdenticon(),\n instance: this.peerConnectInstance,\n };\n };\n\n /**\n * Helper function to retrieve the currently cached metadata.\n *\n * @returns {Map<string, AssetMetadata>}\n */\n getCachedAssetMetadata = (): Map<string, AssetMetadata> =>\n this._cachedMetadata;\n\n /**\n * Helper function to 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 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":["APIErrorCode","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","CONNECT_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","selectedWallet","attempts","shouldContinue","window","cardano","enable","getNetworkId","message","code","Refused","undefined","res","setTimeout","extension","CONNECT_WALLET_START","extensionObject","includes","peerConnectInstance","shutdownServer","connectTimeout","persistence","seed","localStorage","setItem","PERSISTENCE_CACHE_KEY","JSON","stringify","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","isSyncing","hasActiveConnection","Boolean","getUtils","utils","new"],"sources":["../../../src/classes/WalletObserver.class.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport {\n APIErrorCode,\n type ApiError,\n type Cip30WalletApi,\n type GetCollateral,\n} from \"@cardano-sdk/dapp-connector\";\nimport { AssetAmount, type IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport merge from \"lodash/merge.js\";\n\nimport { EWalletObserverEvents } from \"../@types/events.js\";\nimport type {\n IResolvedWalletObserverOptions,\n IWalletObserverSeed,\n IWalletObserverSync,\n TMetadataResolverFunc,\n 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 activeWallet?: TSupportedWalletExtensions;\n public utils?: WalletObserverUtils;\n public peerConnectInstance?: import(\"@fabianbormann/cardano-peer-connect\").DAppPeerConnect;\n\n private _performingSync: boolean = false;\n private _options: IResolvedWalletObserverOptions<AssetMetadata>;\n 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\n /**\n * Synchronizes the wallet. This method handles syncing the class\n * against the currently selected active wallet. If the wallet has\n * changed networks, or if the account within the wallet has changed,\n * this method will automatically attempt to reconcile this error before\n * eventually throwing.\n *\n * In the event that a promise will not resolve due to external issues,\n * after 7 seconds, a timeout function will fire that resets the API and tries again.\n *\n * @returns {Promise<IWalletObserverSync<AssetMetadata>>} - A promise that resolves to the wallet sync data.\n */\n sync = async (): Promise<IWalletObserverSync<AssetMetadata>> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to perform a sync operation without a connected wallet.\",\n );\n }\n\n const start = performance.now();\n\n try {\n this._performingSync = true;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_START);\n\n let newNetwork: 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.dispatch(EWalletObserverEvents.CONNECT_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 const end = performance.now();\n if (this._options.debug) {\n console.log(`sync: ${end - start}ms`);\n }\n\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n this._performingSync = false;\n return result;\n } catch (e) {\n this._performingSync = false;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n throw e;\n }\n };\n\n /**\n * Helper method to check if the class is currently performing a sync\n * operation. This is useful to avoid duplicate calls, but does not\n * prevent it within the class.\n *\n * @returns {boolean}\n */\n isSyncing(): boolean {\n return this._performingSync;\n }\n\n /**\n * Helper method to check if the instance has an active connection.\n *\n * @returns {boolean}\n */\n hasActiveConnection(): boolean {\n return Boolean(this.activeWallet && this.api);\n }\n\n /**\n * Synchronizes the API with the wallet. This is useful if the account has changed,\n * but the underlying intent has not.\n *\n * @param {TSupportedWalletExtensions} [activeWallet] - The wallet to sync with.\n * @returns {Promise<Cip30WalletApi | undefined>} - A promise that resolves to the API instance.\n */\n syncApi = async (\n activeWallet?: TSupportedWalletExtensions,\n ): Promise<Cip30WalletApi | undefined> => {\n if (!activeWallet && !this.activeWallet) {\n throw new Error(\n \"A wallet is required to be passed as a parameter, or to be defined in the class.\",\n );\n }\n\n const selectedWallet =\n activeWallet || (this.activeWallet as TSupportedWalletExtensions);\n\n let attempts = 0;\n let shouldContinue = true;\n\n while (shouldContinue) {\n if (attempts === 10) {\n throw new Error(\n \"Could not reconnect to the selected wallet. Please check your extension.\",\n );\n }\n\n try {\n const 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 shouldContinue = false;\n } catch (e) {\n if (\n (e as Error)?.message === \"user canceled connection\" ||\n (e as ApiError)?.code === APIErrorCode.Refused\n ) {\n shouldContinue = false;\n return undefined;\n }\n\n await new Promise((res) => setTimeout(res, 200));\n attempts++;\n }\n }\n\n return this.api;\n };\n\n /**\n * Gets the options for the wallet observer.\n *\n * @returns {TWalletObserverOptions} - The wallet observer options.\n */\n getOptions = (): TWalletObserverOptions => {\n return this._options;\n };\n\n /**\n * Attempts to connect a wallet using the global window\n * reference. If no reference is found, it will retry for\n * 10 seconds before throw an error.\n *\n * @param {string} extension The name of the extension to enable.\n * @return {Promise<void>}\n */\n connectWallet = async (\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 const end = performance.now();\n if (this._options.debug) {\n console.log(`connectWallet: ${end - start}ms`);\n }\n };\n\n getCip45Instance = async () => {\n const start = performance.now();\n if (!this.peerConnectInstance) {\n const DAppPeerConnect = await getPeerConnect();\n this.peerConnectInstance = new DAppPeerConnect(\n this._options.peerConnectArgs,\n );\n }\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCip45Instance: ${end - start}ms`);\n }\n\n return {\n name: this._options.peerConnectArgs.dAppInfo.name,\n icon: this.peerConnectInstance.getIdenticon(),\n instance: this.peerConnectInstance,\n };\n };\n\n /**\n * Helper function to retrieve the currently cached metadata.\n *\n * @returns {Map<string, AssetMetadata>}\n */\n getCachedAssetMetadata = (): Map<string, AssetMetadata> =>\n this._cachedMetadata;\n\n /**\n * Helper function to 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 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 const txOutput = Serialization.TransactionUnspentOutput.fromCbor(\n typedHex(val),\n );\n\n // These methods must be bound to their initial creation instance.\n txOutput.input = txOutput.input.bind(txOutput);\n txOutput.output = txOutput.output.bind(txOutput);\n return txOutput;\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUtxos: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets 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 const txOutput = Serialization.TransactionUnspentOutput.fromCbor(\n typedHex(val),\n );\n\n // These methods must be bound to their initial creation instance.\n txOutput.input = txOutput.input.bind(txOutput);\n txOutput.output = txOutput.output.bind(txOutput);\n return txOutput;\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCollateral: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Resolves metadata for the given asset IDs, using a cached version if available.\n *\n * @private\n * @param {string[]} assetIds - The IDs of the assets to resolve metadata for.\n * @returns {Promise<Map<string, AssetMetadata>>} - A promise that resolves to a map of asset metadata.\n */\n private __metadataResolverWithCache = async (\n assetIds: string[],\n ): Promise<Map<string, AssetMetadata>> => {\n const start = performance.now();\n\n if (this._cachedMetadata) {\n const cachedKeys = new Set(this._cachedMetadata.keys());\n const inputKeys = new Set(assetIds);\n\n if (\n cachedKeys.size === inputKeys.size &&\n [...cachedKeys].every((key) => inputKeys.has(key))\n ) {\n const end = performance.now();\n if (this._options.debug) {\n console.log(`metadataResolver (cached): ${end - start}ms`);\n }\n return this._cachedMetadata;\n }\n }\n\n let attempts = 0;\n let newMetadata: Map<string, AssetMetadata> | undefined;\n while (attempts <= 3 && !newMetadata) {\n try {\n newMetadata = await this._options.metadataResolver(\n assetIds.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":[]}
@@ -10,13 +10,14 @@ import { getEventKey } from "../utils/hashing.js";
10
10
  export class WalletObserverEvent {
11
11
  constructor() {
12
12
  _defineProperty(this, "_eventTarget", void 0);
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
14
  _defineProperty(this, "_handlers", new Map());
14
15
  /**
15
16
  * Dispatches an event.
16
17
  *
17
18
  * @template E - The event type.
18
19
  * @param {E} event - The event to dispatch.
19
- * @param {EWalletObserverEventValues[E]} [data] - The data to pass with the event.
20
+ * @param {IWalletObserverEventValues[E]} [data] - The data to pass with the event.
20
21
  */
21
22
  _defineProperty(this, "dispatch", (event, data) => {
22
23
  this._eventTarget.dispatchEvent(new CustomEvent(event, {
@@ -69,7 +70,7 @@ export class WalletObserverEvent {
69
70
  * Queries the currently registered events. This is useful
70
71
  * if you want to expose these and remove any.
71
72
  *
72
- * @returns {Map<string, Function>} - A map of registered event handlers.
73
+ * @returns {Map<string, () => void>} - A map of registered event handlers.
73
74
  */
74
75
  eventList() {
75
76
  return this._handlers;