@sundaeswap/wallet-lite 0.0.102 → 0.0.103

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.
@@ -81,6 +81,8 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
81
81
  _defineProperty(_this, "_options", void 0);
82
82
  // Caching
83
83
  _defineProperty(_this, "_cachedMetadata", new Map());
84
+ // AbortController for cancelling in-flight metadata fetches when metadataResolver changes
85
+ _defineProperty(_this, "_metadataAbortController", null);
84
86
  /**
85
87
  * Synchronizes the wallet. This method handles syncing the class
86
88
  * against the currently selected active wallet. If the wallet has
@@ -286,11 +288,26 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
286
288
  });
287
289
  /**
288
290
  * Updates the wallet observer options. Merges the new options with the existing ones.
291
+ * If metadataResolver changes, cancels any in-flight metadata fetch, clears the cache,
292
+ * and triggers a new sync if there is an active connection.
289
293
  *
290
294
  * @param {Partial<TWalletObserverOptions<AssetMetadata>>} options - The new options to merge.
291
295
  */
292
296
  _defineProperty(_this, "updateOptions", function (options) {
297
+ var metadataResolverChanged = options.metadataResolver && options.metadataResolver !== _this._options.metadataResolver;
293
298
  _this._options = (0, _merge["default"])(_this._options, options);
299
+
300
+ // If metadataResolver changed, abort in-flight fetch, clear cache, and re-sync
301
+ if (metadataResolverChanged) {
302
+ var _this$_metadataAbortC;
303
+ (_this$_metadataAbortC = _this._metadataAbortController) === null || _this$_metadataAbortC === void 0 || _this$_metadataAbortC.abort();
304
+ _this._cachedMetadata = new Map();
305
+
306
+ // Trigger a new sync if there's an active connection
307
+ if (_this.hasActiveConnection() && !_this._performingSync) {
308
+ _this.sync();
309
+ }
310
+ }
294
311
  });
295
312
  /**
296
313
  * Attempts to connect a wallet using the global window
@@ -859,6 +876,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
859
876
  })));
860
877
  /**
861
878
  * Resolves metadata for the given asset IDs, using a cached version if available.
879
+ * Aborts any in-flight fetch when called, ensuring only the latest request completes.
862
880
  *
863
881
  * @private
864
882
  * @param {string[]} assetIds - The IDs of the assets to resolve metadata for.
@@ -866,7 +884,8 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
866
884
  */
867
885
  _defineProperty(_this, "__metadataResolverWithCache", /*#__PURE__*/function () {
868
886
  var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13(assetIds) {
869
- var start, cachedKeys, inputKeys, _end, attempts, newMetadata, end;
887
+ var _this$_metadataAbortC2;
888
+ var start, cachedKeys, inputKeys, _end, currentController, attempts, newMetadata, end;
870
889
  return _regeneratorRuntime().wrap(function _callee13$(_context13) {
871
890
  while (1) switch (_context13.prev = _context13.next) {
872
891
  case 0:
@@ -889,55 +908,71 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
889
908
  }
890
909
  return _context13.abrupt("return", _this._cachedMetadata);
891
910
  case 8:
911
+ // Abort any in-flight metadata fetch
912
+ (_this$_metadataAbortC2 = _this._metadataAbortController) === null || _this$_metadataAbortC2 === void 0 || _this$_metadataAbortC2.abort();
913
+ _this._metadataAbortController = new AbortController();
914
+ currentController = _this._metadataAbortController;
892
915
  attempts = 0;
893
- case 9:
916
+ case 12:
894
917
  if (!(attempts <= 3 && !newMetadata)) {
895
- _context13.next = 21;
918
+ _context13.next = 24;
896
919
  break;
897
920
  }
898
- _context13.prev = 10;
899
- _context13.next = 13;
921
+ _context13.prev = 13;
922
+ _context13.next = 16;
900
923
  return _this._options.metadataResolver({
901
924
  assetIds: assetIds.map(_assets.normalizeAssetIdWithDot),
902
925
  normalizeAssetId: _assets.normalizeAssetIdWithDot,
903
926
  isAdaAsset: _assets.isAdaAsset
904
927
  });
905
- case 13:
928
+ case 16:
906
929
  newMetadata = _context13.sent;
907
- _context13.next = 19;
930
+ _context13.next = 22;
908
931
  break;
909
- case 16:
910
- _context13.prev = 16;
911
- _context13.t0 = _context13["catch"](10);
912
- attempts++;
913
932
  case 19:
914
- _context13.next = 9;
933
+ _context13.prev = 19;
934
+ _context13.t0 = _context13["catch"](13);
935
+ attempts++;
936
+ case 22:
937
+ _context13.next = 12;
915
938
  break;
916
- case 21:
939
+ case 24:
940
+ if (!currentController.signal.aborted) {
941
+ _context13.next = 26;
942
+ break;
943
+ }
944
+ return _context13.abrupt("return", _this._cachedMetadata);
945
+ case 26:
917
946
  if (newMetadata) {
918
- _context13.next = 25;
947
+ _context13.next = 30;
919
948
  break;
920
949
  }
921
- _context13.next = 24;
950
+ _context13.next = 29;
922
951
  return _this.fallbackMetadataResolver({
923
952
  assetIds: assetIds.map(_assets.normalizeAssetIdWithDot),
924
953
  normalizeAssetId: _assets.normalizeAssetIdWithDot,
925
954
  isAdaAsset: _assets.isAdaAsset
926
955
  });
927
- case 24:
956
+ case 29:
928
957
  newMetadata = _context13.sent;
929
- case 25:
958
+ case 30:
959
+ if (!currentController.signal.aborted) {
960
+ _context13.next = 32;
961
+ break;
962
+ }
963
+ return _context13.abrupt("return", _this._cachedMetadata);
964
+ case 32:
930
965
  _this._cachedMetadata = newMetadata;
931
966
  end = performance.now();
932
967
  if (_this._options.debug) {
933
968
  console.log("metadataResolver: ".concat(end - start, "ms"));
934
969
  }
935
970
  return _context13.abrupt("return", newMetadata);
936
- case 29:
971
+ case 36:
937
972
  case "end":
938
973
  return _context13.stop();
939
974
  }
940
- }, _callee13, null, [[10, 16]]);
975
+ }, _callee13, null, [[13, 19]]);
941
976
  }));
942
977
  return function (_x3) {
943
978
  return _ref13.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"WalletObserver.class.js","names":["_dappConnector","require","_asset","_merge","_interopRequireDefault","_events","_constants","_assets","_getLibs","_ReadOnlyApiClass","_WalletBalanceMapClass","_WalletObserverEvent2","_WalletObserverUtilsClass","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","r","t","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","a","u","call","next","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_regeneratorRuntime","Object","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","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","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","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","test","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","bind","_inherits","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","WalletObserver","exports","_WalletObserverEvent","options","_this","Map","_callee","start","newBalanceMap","_yield$Promise$all","_yield$Promise$all2","newNetwork","newUsedAddresses","newUnusedAddresses","newOutputs","newCollateral","newFeeAddress","newChangeAddress","result","end","_callee$","_context","api","performance","now","_performingSync","dispatch","EWalletObserverEvents","SYNCING_WALLET_START","getBalanceMap","syncApi","SYNCING_WALLET_END","all","getNetwork","getUsedAddresses","getUnusedAddresses","getUtxos","getCollateral","getFeeAddress","getChangeAddress","balanceMap","usedAddresses","unusedAddresses","utxos","collateral","network","feeAddress","changeAddress","_options","debug","console","log","concat","activeWallet","t0","_ref2","_callee2","selectedWallet","attempts","shouldContinue","_window","_window2","_cardano$selectedWall","cardano","_callee2$","_context2","startsWith","readOnlyProvider","ReadOnlyApi","getNetworkId","window","parent","enable","includes","message","code","APIErrorCode","Refused","undefined","res","setTimeout","_x","merge","_ref3","_callee3","extension","_window$cardano","extensionObject","_this$peerConnectInst","_window$cardano2","data","seed","_callee3$","_context3","CONNECT_WALLET_START","peerConnectInstance","shutdownServer","warn","connectTimeout","CONNECT_WALLET_END","sync","persistence","cause","mainAddress","localStorage","setItem","PERSISTENCE_CACHE_KEY","JSON","stringify","_x2","_callee4","DAppPeerConnect","_callee4$","_context4","getPeerConnect","peerConnectArgs","dAppInfo","icon","getIdenticon","instance","_cachedMetadata","removeItem","DISCONNECT","_callee5","_yield$Promise$all3","_yield$Promise$all4","Cardano","typedHex","cbor","_callee5$","_context5","getCardanoCore","getCardanoUtil","Address","fromBytes","toBech32","_callee6","_data$multiasset$keys","_data$multiasset","_data$multiasset$entr","_data$multiasset2","_yield$Promise$all5","_yield$Promise$all6","Serialization","multiassetKeys","metadata","multiassetEntries","_iterator","_step","_step$value","id","amount","_callee6$","_context6","GET_BALANCE_MAP_START","getBalance","Value","fromCbor","multiasset","__metadataResolverWithCache","ADA_ASSET_ID","WalletBalanceMap","set","AssetAmount","coin","get","entries","normalizeAssetIdWithDot","err","GET_BALANCE_MAP_END","_callee7","val","_callee7$","_context7","_callee8","_yield$Promise$all7","_yield$Promise$all8","_callee8$","_context8","map","_callee9","_yield$Promise$all9","_yield$Promise$all10","_callee9$","_context9","_callee10","_cbor","_yield$Promise$all11","_yield$Promise$all12","_callee10$","_context10","txOutput","TransactionUnspentOutput","input","output","_callee11","_window$cardano3","address","_callee11$","_context11","experimental","_callee12","_cbor2","_yield$Promise$all13","_yield$Promise$all14","_this$api","_this$api2","funcCall","_callee12$","_context12","_ref13","_callee13","assetIds","cachedKeys","inputKeys","_end","newMetadata","_callee13$","_context13","Set","size","every","has","metadataResolver","normalizeAssetId","isAdaAsset","fallbackMetadataResolver","_x3","_ref15","_callee14","_ref14","_callee14$","_context14","assetId","decimals","_x4","url","location","hostname","onApiEject","_options$peerConnectA","_options$peerConnectA2","disconnect","onApiInject","_options$peerConnectA3","_options$peerConnectA4","connectWallet","verifyConnection","walletInfo","callback","_walletInfo$requestAu","requestAutoconnect","useWalletDiscovery","announce","isSyncing","hasActiveConnection","_getUtils","_callee15","_callee15$","_context15","utils","WalletObserverUtils","getUtils","WalletObserverEvent"],"sources":["../../../src/classes/WalletObserver.class.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport {\n APIErrorCode,\n type ApiError,\n type Cip30WalletApi,\n type GetCollateral,\n} from \"@cardano-sdk/dapp-connector\";\nimport { AssetAmount, type IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport merge from \"lodash/merge.js\";\n\nimport { EWalletObserverEvents } from \"../@types/events.js\";\nimport type {\n IResolvedWalletObserverOptions,\n IWalletObserverSeed,\n IWalletObserverSync,\n TMetadataResolverFunc,\n TWalletObserverOptions,\n} from \"../@types/observer.js\";\nimport { ADA_ASSET_ID } from \"../constants.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\nimport {\n getCardanoCore,\n getCardanoUtil,\n getPeerConnect,\n} from \"../utils/getLibs.js\";\nimport { ReadOnlyApi } from \"./ReadOnlyApi.class.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<AssetMetadata>}\n */\nexport class WalletObserver<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> extends WalletObserverEvent<AssetMetadata> {\n static PERSISTENCE_CACHE_KEY = \"walletObserver\";\n public network: number = 0;\n public api?: Cip30WalletApi;\n public activeWallet?: string;\n public utils?: WalletObserverUtils;\n public peerConnectInstance?: import(\"@fabianbormann/cardano-peer-connect\").DAppPeerConnect;\n\n private _performingSync: boolean = false;\n private _options: IResolvedWalletObserverOptions<AssetMetadata>;\n\n // Caching\n private _cachedMetadata: Map<string, AssetMetadata> = new Map();\n\n /**\n * Creates an instance of WalletObserver.\n *\n * @param {Partial<TWalletObserverOptions<AssetMetadata>>} [options] - Options for the wallet observer.\n */\n constructor(options?: Partial<TWalletObserverOptions<AssetMetadata>>) {\n super();\n\n // Set options.\n this._options = merge<IResolvedWalletObserverOptions, typeof options>(\n {\n metadataResolver: this.fallbackMetadataResolver,\n persistence: false,\n connectTimeout: 10000,\n debug: false,\n peerConnectArgs: {\n dAppInfo: {\n name: \"Placeholder dApp Connecter Name\",\n url: window.location.hostname,\n },\n onApiEject: (name, address) => {\n options?.peerConnectArgs?.onApiEject?.(name, address);\n this.disconnect();\n },\n onApiInject: (name, address) => {\n options?.peerConnectArgs?.onApiInject?.(name, address);\n this.connectWallet(name);\n },\n verifyConnection(walletInfo, callback) {\n return callback(true, walletInfo.requestAutoconnect ?? true);\n },\n useWalletDiscovery: true,\n announce: [\n \"wss://tracker.de-5.eternl.art\",\n \"wss://tracker.de-6.eternl.art\",\n \"wss://tracker.us-5.eternl.art\",\n ],\n },\n },\n options,\n );\n\n if (!this._options.persistence) {\n return;\n }\n }\n\n /**\n * Synchronizes the wallet. This method handles syncing the class\n * against the currently selected active wallet. If the wallet has\n * changed networks, or if the account within the wallet has changed,\n * this method will automatically attempt to reconcile this error before\n * eventually throwing.\n *\n * In the event that a promise will not resolve due to external issues,\n * after 7 seconds, a timeout function will fire that resets the API and tries again.\n *\n * @returns {Promise<IWalletObserverSync<AssetMetadata>>} - A promise that resolves to the wallet sync data.\n */\n sync = async (): Promise<IWalletObserverSync<AssetMetadata>> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to perform a sync operation without a connected wallet.\",\n );\n }\n\n const start = performance.now();\n\n try {\n this._performingSync = true;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_START);\n\n // Check if account has changed.\n let newBalanceMap = await this.getBalanceMap();\n if (newBalanceMap instanceof Error) {\n await this.syncApi();\n newBalanceMap = await this.getBalanceMap();\n\n if (newBalanceMap instanceof Error) {\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this._performingSync = false;\n throw newBalanceMap;\n }\n }\n\n const [\n newNetwork,\n newUsedAddresses,\n newUnusedAddresses,\n newOutputs,\n newCollateral,\n newFeeAddress,\n newChangeAddress,\n ] = await Promise.all([\n this.getNetwork(),\n this.getUsedAddresses(),\n this.getUnusedAddresses(),\n this.getUtxos(),\n this.getCollateral(),\n this.getFeeAddress(),\n this.getChangeAddress(),\n ]);\n\n const result: IWalletObserverSync<AssetMetadata> = {\n balanceMap: newBalanceMap,\n usedAddresses: newUsedAddresses,\n unusedAddresses: newUnusedAddresses,\n utxos: newOutputs,\n collateral: newCollateral,\n network: newNetwork,\n feeAddress: newFeeAddress,\n changeAddress: newChangeAddress,\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, {\n ...result,\n activeWallet: this.activeWallet!,\n });\n this._performingSync = false;\n return result;\n } catch (e) {\n this._performingSync = false;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n throw e;\n }\n };\n\n /**\n * Helper method to check if the class is currently performing a sync\n * operation. This is useful to avoid duplicate calls, but does not\n * prevent it within the class.\n *\n * @returns {boolean}\n */\n isSyncing(): boolean {\n return this._performingSync;\n }\n\n /**\n * Helper method to check if the instance has an active connection.\n *\n * @returns {boolean}\n */\n hasActiveConnection(): boolean {\n return Boolean(this.activeWallet && this.api);\n }\n\n /**\n * Synchronizes the API with the wallet. This is useful if the account has changed,\n * but the underlying intent has not.\n *\n * @param {string} [activeWallet] - The wallet to sync with.\n * @returns {Promise<Cip30WalletApi | undefined>} - A promise that resolves to the API instance.\n */\n syncApi = async (\n activeWallet?: string,\n ): Promise<Cip30WalletApi | undefined> => {\n if (!activeWallet && !this.activeWallet) {\n throw new Error(\n \"A wallet is required to be passed as a parameter, or to be defined in the class.\",\n );\n }\n\n const selectedWallet = (activeWallet || this.activeWallet) as string;\n\n let attempts = 0;\n let shouldContinue = true;\n\n if (selectedWallet.startsWith(\"addr\")) {\n if (!this._options.readOnlyProvider) {\n throw new Error(\n \"You must provide a ReadOnlyProvider when connecting with a read-only address.\",\n );\n }\n\n this.api = new ReadOnlyApi(\n selectedWallet,\n selectedWallet.startsWith(\"addr_test\") ? 0 : 1,\n this._options.readOnlyProvider,\n );\n this.network = await this.api.getNetworkId();\n return this.api;\n }\n\n while (shouldContinue) {\n if (attempts === 10) {\n throw new Error(\n \"Could not reconnect to the selected wallet. Please check your extension.\",\n );\n }\n\n try {\n const cardano = window?.cardano || window?.parent?.cardano;\n const api = await cardano?.[selectedWallet]?.enable();\n\n if (!api) {\n throw Error;\n }\n\n this.api = api;\n this.network = await api.getNetworkId();\n shouldContinue = false;\n } catch (e) {\n if (\n [\n \"user canceled connection\",\n \"User declined to sign the data.\",\n ].includes((e as Error)?.message) ||\n (e as ApiError)?.code === APIErrorCode.Refused\n ) {\n shouldContinue = false;\n return undefined;\n }\n\n await new Promise((res) => setTimeout(res, 200));\n attempts++;\n }\n }\n\n return this.api;\n };\n\n /**\n * Gets the options for the wallet observer.\n *\n * @returns {TWalletObserverOptions} - The wallet observer options.\n */\n getOptions = (): TWalletObserverOptions => {\n return this._options;\n };\n\n /**\n * Updates the wallet observer options. Merges the new options with the existing ones.\n *\n * @param {Partial<TWalletObserverOptions<AssetMetadata>>} options - The new options to merge.\n */\n updateOptions = (\n options: Partial<TWalletObserverOptions<AssetMetadata>>,\n ): void => {\n this._options = merge<\n IResolvedWalletObserverOptions<AssetMetadata>,\n typeof options\n >(this._options, 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<IWalletObserverSync<AssetMetadata> | Error>}\n */\n connectWallet = async (\n extension: string,\n ): Promise<IWalletObserverSync<AssetMetadata> | Error> => {\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 (\n typeof extensionObject === \"undefined\" &&\n !extension.startsWith(\"addr\")\n ) {\n if (this._options.debug) {\n console.warn(`Could not find extension: ${extension}. Trying again...`);\n }\n\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 && !extension.startsWith(\"addr\")) {\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n throw new Error(\n `Could not find extension (${extension}) in the global context.`,\n );\n }\n\n this.activeWallet = extension;\n await this.syncApi(extension);\n const data = await this.sync();\n\n if (this._options.persistence) {\n if (data.usedAddresses instanceof Error) {\n data.usedAddresses.cause =\n \"Could not get a list of used addresses from the wallet when trying to save the connection.\";\n throw data.usedAddresses;\n }\n\n const seed: IWalletObserverSeed = {\n activeWallet: extension,\n mainAddress: data.usedAddresses[0],\n };\n\n window.localStorage.setItem(\n WalletObserver.PERSISTENCE_CACHE_KEY,\n JSON.stringify(seed),\n );\n }\n\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END, {\n ...data,\n activeWallet: extension,\n });\n const end = performance.now();\n if (this._options.debug) {\n console.log(`connectWallet: ${end - start}ms`);\n }\n\n return data;\n };\n\n getCip45Instance = async () => {\n const start = performance.now();\n if (!this.peerConnectInstance) {\n const DAppPeerConnect = await getPeerConnect();\n this.peerConnectInstance = new DAppPeerConnect(\n this._options.peerConnectArgs,\n );\n }\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCip45Instance: ${end - start}ms`);\n }\n\n return {\n name: this._options.peerConnectArgs.dAppInfo.name,\n icon: this.peerConnectInstance.getIdenticon(),\n instance: this.peerConnectInstance,\n };\n };\n\n /**\n * Helper function to retrieve the currently cached metadata.\n *\n * @returns {Map<string, AssetMetadata>}\n */\n getCachedAssetMetadata = (): Map<string, AssetMetadata> =>\n this._cachedMetadata;\n\n /**\n * Helper function to restore the class instance to its initial state.\n *\n * @returns {void}\n */\n disconnect = (): void => {\n this.activeWallet = undefined;\n this.api = undefined;\n window.localStorage.removeItem(WalletObserver.PERSISTENCE_CACHE_KEY);\n this.dispatch(EWalletObserverEvents.DISCONNECT);\n };\n\n /**\n * Gets a the change address.\n *\n * @returns {Promise<string | Error>} The change address, or an error.\n */\n getChangeAddress = async (): Promise<string | Error> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query change address without an API instance.\",\n );\n }\n\n const start = performance.now();\n\n const [{ Cardano }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string;\n try {\n cbor = await this.api.getChangeAddress();\n } catch (e) {\n return e as Error;\n }\n\n const data = Cardano.Address.fromBytes(typedHex(cbor)).toBech32();\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getChangeAddress: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Retrieves the balance of the wallet, including metadata for each asset.\n *\n * @returns {Promise<WalletBalanceMap<AssetMetadata>>} - A promise that resolves to a map of asset amounts keyed by asset IDs.\n */\n getBalanceMap = async (): Promise<\n WalletBalanceMap<AssetMetadata> | Error\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query balance without an API instance.\");\n }\n\n const start = performance.now();\n\n this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_START);\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string;\n try {\n cbor = await this.api.getBalance();\n } catch (e) {\n return e as Error;\n }\n const data = Serialization.Value.fromCbor(typedHex(cbor));\n const multiassetKeys = data.multiasset()?.keys() ?? [];\n\n const metadata = await this.__metadataResolverWithCache([\n ADA_ASSET_ID,\n ...multiassetKeys,\n ]);\n\n const balanceMap = new WalletBalanceMap<AssetMetadata>(this);\n balanceMap.set(\n ADA_ASSET_ID,\n new AssetAmount(data.coin(), metadata.get(ADA_ASSET_ID)),\n );\n\n const multiassetEntries = data.multiasset()?.entries() ?? [];\n if (multiassetEntries) {\n for (const [id, amount] of multiassetEntries) {\n balanceMap.set(\n normalizeAssetIdWithDot(id),\n new AssetAmount(amount, metadata.get(normalizeAssetIdWithDot(id))),\n );\n }\n }\n\n this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_END, {\n balanceMap,\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getBalanceMap: ${end - start}ms`);\n }\n\n return balanceMap;\n };\n\n /**\n * Gets the current network connection.\n *\n * @returns {Promise<number | Error>} The network ID or an Error from the wallet.\n */\n getNetwork = async (): Promise<number | Error> => {\n if (!this.api) {\n throw new Error(\"Attempted to query network without an API instance.\");\n }\n\n const start = performance.now();\n\n let val: number;\n try {\n val = await this.api.getNetworkId();\n } catch (e) {\n return e as Error;\n }\n\n this.network = val;\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getNetwork: ${end - start}ms`);\n }\n return val;\n };\n\n /**\n * Gets a list of used addresses, encoded as Bech32.\n *\n * @returns {Promise<string[]>} The list of addresses.\n */\n getUsedAddresses = async (): Promise<string[] | Error> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query used addresses without an API instance.\",\n );\n }\n\n const start = performance.now();\n\n const [{ Cardano }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[];\n try {\n cbor = await this.api.getUsedAddresses();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor.map((val) =>\n Cardano.Address.fromBytes(typedHex(val)).toBech32(),\n );\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUsedAddresses: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets a list of unused addresses, encoded as Bech32.\n *\n * @returns {Promise<string[] | Error>} The list of addresses or an Error returned by the wallet.\n */\n getUnusedAddresses = async (): Promise<string[] | Error> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query unused addresses without an API instance.\",\n );\n }\n\n const start = performance.now();\n\n const [{ Cardano }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[];\n try {\n cbor = await this.api.getUnusedAddresses();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor.map((val) =>\n Cardano.Address.fromBytes(typedHex(val)).toBech32(),\n );\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUnusedAddresses: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets a list of wallet UTXOs.\n *\n * @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.\n */\n getUtxos = async (): Promise<\n TransactionUnspentOutput[] | Error | undefined\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query UTXOs without an API instance.\");\n }\n\n const start = performance.now();\n\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[] | null;\n try {\n cbor = await this.api.getUtxos();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor?.map((val) => {\n const txOutput = Serialization.TransactionUnspentOutput.fromCbor(\n typedHex(val),\n );\n\n // These methods must be bound to their initial creation instance.\n txOutput.input = txOutput.input.bind(txOutput);\n txOutput.output = txOutput.output.bind(txOutput);\n return txOutput;\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUtxos: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets the fee address set by the wallet, if available.\n *\n * @returns {Promise<string | Error | undefined>} The fee address or an Error.\n */\n getFeeAddress = async (): Promise<string | Error | undefined> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query fee address without an API instance.\",\n );\n }\n\n const start = performance.now();\n try {\n const address =\n window.cardano?.[this.activeWallet!]?.experimental?.feeAddress;\n const end = performance.now();\n\n if (this._options.debug) {\n console.log(`getFeeAddress: ${end - start}ms`);\n }\n\n return address;\n } catch (e) {\n return e as Error;\n }\n };\n\n /**\n * Gets a list of wallet UTXOs suitable for collateral.\n *\n * @returns {Promise<TransactionUnspentOutput[] | Error | undefined>} The list of TransactionUnspentOutputs, if there are any, or an Error.\n */\n getCollateral = async (): Promise<\n TransactionUnspentOutput[] | Error | undefined\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query UTXOs without an API instance.\");\n }\n\n const start = performance.now();\n\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[] | null;\n try {\n const funcCall =\n this.api?.getCollateral ||\n (this.api?.experimental.getCollateral as GetCollateral);\n if (typeof funcCall !== \"function\") {\n cbor = [];\n } else {\n cbor = await funcCall();\n }\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor?.map((val) => {\n const txOutput = Serialization.TransactionUnspentOutput.fromCbor(\n typedHex(val),\n );\n\n // These methods must be bound to their initial creation instance.\n txOutput.input = txOutput.input.bind(txOutput);\n txOutput.output = txOutput.output.bind(txOutput);\n return txOutput;\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCollateral: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Resolves metadata for the given asset IDs, using a cached version if available.\n *\n * @private\n * @param {string[]} assetIds - The IDs of the assets to resolve metadata for.\n * @returns {Promise<Map<string, AssetMetadata>>} - A promise that resolves to a map of asset metadata.\n */\n private __metadataResolverWithCache = async (\n assetIds: string[],\n ): Promise<Map<string, AssetMetadata>> => {\n const start = performance.now();\n\n if (this._cachedMetadata) {\n const cachedKeys = new Set(this._cachedMetadata.keys());\n const inputKeys = new Set(assetIds);\n\n if (\n cachedKeys.size === inputKeys.size &&\n [...cachedKeys].every((key) => inputKeys.has(key))\n ) {\n const end = performance.now();\n if (this._options.debug) {\n console.log(`metadataResolver (cached): ${end - start}ms`);\n }\n return this._cachedMetadata;\n }\n }\n\n let attempts = 0;\n let newMetadata: Map<string, AssetMetadata> | undefined;\n while (attempts <= 3 && !newMetadata) {\n try {\n newMetadata = await this._options.metadataResolver({\n assetIds: assetIds.map(normalizeAssetIdWithDot),\n normalizeAssetId: normalizeAssetIdWithDot,\n isAdaAsset,\n });\n } catch (e) {\n attempts++;\n }\n }\n\n if (!newMetadata) {\n newMetadata = await this.fallbackMetadataResolver({\n assetIds: assetIds.map(normalizeAssetIdWithDot),\n normalizeAssetId: normalizeAssetIdWithDot,\n isAdaAsset,\n });\n }\n\n this._cachedMetadata = newMetadata;\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`metadataResolver: ${end - start}ms`);\n }\n return newMetadata;\n };\n\n /**\n * A fallback metadata resolver function that generates default metadata for given asset IDs.\n *\n * @type {TMetadataResolverFunc<AssetMetadata>}\n */\n public fallbackMetadataResolver: TMetadataResolverFunc<AssetMetadata> =\n async ({ assetIds }) => {\n const map = new Map<string, AssetMetadata>();\n assetIds.forEach((id) =>\n map.set(normalizeAssetIdWithDot(id), {\n assetId: normalizeAssetIdWithDot(id),\n decimals: 6,\n } as AssetMetadata),\n );\n\n return map;\n };\n\n /**\n * Helper method to retrieve the cached utils instance.\n *\n * @returns {Promise<WalletObserverUtils>} Resolves to a WalletObserverUtils class.\n */\n public async getUtils(): Promise<WalletObserverUtils> {\n if (!this.utils) {\n this.utils = await WalletObserverUtils.new(this.network);\n }\n\n return this.utils;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WalletObserver.class.js","names":["_dappConnector","require","_asset","_merge","_interopRequireDefault","_events","_constants","_assets","_getLibs","_ReadOnlyApiClass","_WalletBalanceMapClass","_WalletObserverEvent2","_WalletObserverUtilsClass","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","r","t","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","a","u","call","next","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_regeneratorRuntime","Object","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","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","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","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","test","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","bind","_inherits","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","WalletObserver","exports","_WalletObserverEvent","options","_this","Map","_callee","start","newBalanceMap","_yield$Promise$all","_yield$Promise$all2","newNetwork","newUsedAddresses","newUnusedAddresses","newOutputs","newCollateral","newFeeAddress","newChangeAddress","result","end","_callee$","_context","api","performance","now","_performingSync","dispatch","EWalletObserverEvents","SYNCING_WALLET_START","getBalanceMap","syncApi","SYNCING_WALLET_END","all","getNetwork","getUsedAddresses","getUnusedAddresses","getUtxos","getCollateral","getFeeAddress","getChangeAddress","balanceMap","usedAddresses","unusedAddresses","utxos","collateral","network","feeAddress","changeAddress","_options","debug","console","log","concat","activeWallet","t0","_ref2","_callee2","selectedWallet","attempts","shouldContinue","_window","_window2","_cardano$selectedWall","cardano","_callee2$","_context2","startsWith","readOnlyProvider","ReadOnlyApi","getNetworkId","window","parent","enable","includes","message","code","APIErrorCode","Refused","undefined","res","setTimeout","_x","metadataResolverChanged","metadataResolver","merge","_this$_metadataAbortC","_metadataAbortController","abort","_cachedMetadata","hasActiveConnection","sync","_ref3","_callee3","extension","_window$cardano","extensionObject","_this$peerConnectInst","_window$cardano2","data","seed","_callee3$","_context3","CONNECT_WALLET_START","peerConnectInstance","shutdownServer","warn","connectTimeout","CONNECT_WALLET_END","persistence","cause","mainAddress","localStorage","setItem","PERSISTENCE_CACHE_KEY","JSON","stringify","_x2","_callee4","DAppPeerConnect","_callee4$","_context4","getPeerConnect","peerConnectArgs","dAppInfo","icon","getIdenticon","instance","removeItem","DISCONNECT","_callee5","_yield$Promise$all3","_yield$Promise$all4","Cardano","typedHex","cbor","_callee5$","_context5","getCardanoCore","getCardanoUtil","Address","fromBytes","toBech32","_callee6","_data$multiasset$keys","_data$multiasset","_data$multiasset$entr","_data$multiasset2","_yield$Promise$all5","_yield$Promise$all6","Serialization","multiassetKeys","metadata","multiassetEntries","_iterator","_step","_step$value","id","amount","_callee6$","_context6","GET_BALANCE_MAP_START","getBalance","Value","fromCbor","multiasset","__metadataResolverWithCache","ADA_ASSET_ID","WalletBalanceMap","set","AssetAmount","coin","get","entries","normalizeAssetIdWithDot","err","GET_BALANCE_MAP_END","_callee7","val","_callee7$","_context7","_callee8","_yield$Promise$all7","_yield$Promise$all8","_callee8$","_context8","map","_callee9","_yield$Promise$all9","_yield$Promise$all10","_callee9$","_context9","_callee10","_cbor","_yield$Promise$all11","_yield$Promise$all12","_callee10$","_context10","txOutput","TransactionUnspentOutput","input","output","_callee11","_window$cardano3","address","_callee11$","_context11","experimental","_callee12","_cbor2","_yield$Promise$all13","_yield$Promise$all14","_this$api","_this$api2","funcCall","_callee12$","_context12","_ref13","_callee13","assetIds","_this$_metadataAbortC2","cachedKeys","inputKeys","_end","currentController","newMetadata","_callee13$","_context13","Set","size","every","has","AbortController","normalizeAssetId","isAdaAsset","signal","aborted","fallbackMetadataResolver","_x3","_ref15","_callee14","_ref14","_callee14$","_context14","assetId","decimals","_x4","url","location","hostname","onApiEject","_options$peerConnectA","_options$peerConnectA2","disconnect","onApiInject","_options$peerConnectA3","_options$peerConnectA4","connectWallet","verifyConnection","walletInfo","callback","_walletInfo$requestAu","requestAutoconnect","useWalletDiscovery","announce","isSyncing","_getUtils","_callee15","_callee15$","_context15","utils","WalletObserverUtils","getUtils","WalletObserverEvent"],"sources":["../../../src/classes/WalletObserver.class.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport {\n APIErrorCode,\n type ApiError,\n type Cip30WalletApi,\n type GetCollateral,\n} from \"@cardano-sdk/dapp-connector\";\nimport { AssetAmount, type IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport merge from \"lodash/merge.js\";\n\nimport { EWalletObserverEvents } from \"../@types/events.js\";\nimport type {\n IResolvedWalletObserverOptions,\n IWalletObserverSeed,\n IWalletObserverSync,\n TMetadataResolverFunc,\n TWalletObserverOptions,\n} from \"../@types/observer.js\";\nimport { ADA_ASSET_ID } from \"../constants.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\nimport {\n getCardanoCore,\n getCardanoUtil,\n getPeerConnect,\n} from \"../utils/getLibs.js\";\nimport { ReadOnlyApi } from \"./ReadOnlyApi.class.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<AssetMetadata>}\n */\nexport class WalletObserver<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,\n> extends WalletObserverEvent<AssetMetadata> {\n static PERSISTENCE_CACHE_KEY = \"walletObserver\";\n public network: number = 0;\n public api?: Cip30WalletApi;\n public activeWallet?: string;\n public utils?: WalletObserverUtils;\n public peerConnectInstance?: import(\"@fabianbormann/cardano-peer-connect\").DAppPeerConnect;\n\n private _performingSync: boolean = false;\n private _options: IResolvedWalletObserverOptions<AssetMetadata>;\n\n // Caching\n private _cachedMetadata: Map<string, AssetMetadata> = new Map();\n\n // AbortController for cancelling in-flight metadata fetches when metadataResolver changes\n private _metadataAbortController: AbortController | null = null;\n\n /**\n * Creates an instance of WalletObserver.\n *\n * @param {Partial<TWalletObserverOptions<AssetMetadata>>} [options] - Options for the wallet observer.\n */\n constructor(options?: Partial<TWalletObserverOptions<AssetMetadata>>) {\n super();\n\n // Set options.\n this._options = merge<IResolvedWalletObserverOptions, typeof options>(\n {\n metadataResolver: this.fallbackMetadataResolver,\n persistence: false,\n connectTimeout: 10000,\n debug: false,\n peerConnectArgs: {\n dAppInfo: {\n name: \"Placeholder dApp Connecter Name\",\n url: window.location.hostname,\n },\n onApiEject: (name, address) => {\n options?.peerConnectArgs?.onApiEject?.(name, address);\n this.disconnect();\n },\n onApiInject: (name, address) => {\n options?.peerConnectArgs?.onApiInject?.(name, address);\n this.connectWallet(name);\n },\n verifyConnection(walletInfo, callback) {\n return callback(true, walletInfo.requestAutoconnect ?? true);\n },\n useWalletDiscovery: true,\n announce: [\n \"wss://tracker.de-5.eternl.art\",\n \"wss://tracker.de-6.eternl.art\",\n \"wss://tracker.us-5.eternl.art\",\n ],\n },\n },\n options,\n );\n\n if (!this._options.persistence) {\n return;\n }\n }\n\n /**\n * Synchronizes the wallet. This method handles syncing the class\n * against the currently selected active wallet. If the wallet has\n * changed networks, or if the account within the wallet has changed,\n * this method will automatically attempt to reconcile this error before\n * eventually throwing.\n *\n * In the event that a promise will not resolve due to external issues,\n * after 7 seconds, a timeout function will fire that resets the API and tries again.\n *\n * @returns {Promise<IWalletObserverSync<AssetMetadata>>} - A promise that resolves to the wallet sync data.\n */\n sync = async (): Promise<IWalletObserverSync<AssetMetadata>> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to perform a sync operation without a connected wallet.\",\n );\n }\n\n const start = performance.now();\n\n try {\n this._performingSync = true;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_START);\n\n // Check if account has changed.\n let newBalanceMap = await this.getBalanceMap();\n if (newBalanceMap instanceof Error) {\n await this.syncApi();\n newBalanceMap = await this.getBalanceMap();\n\n if (newBalanceMap instanceof Error) {\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this._performingSync = false;\n throw newBalanceMap;\n }\n }\n\n const [\n newNetwork,\n newUsedAddresses,\n newUnusedAddresses,\n newOutputs,\n newCollateral,\n newFeeAddress,\n newChangeAddress,\n ] = await Promise.all([\n this.getNetwork(),\n this.getUsedAddresses(),\n this.getUnusedAddresses(),\n this.getUtxos(),\n this.getCollateral(),\n this.getFeeAddress(),\n this.getChangeAddress(),\n ]);\n\n const result: IWalletObserverSync<AssetMetadata> = {\n balanceMap: newBalanceMap,\n usedAddresses: newUsedAddresses,\n unusedAddresses: newUnusedAddresses,\n utxos: newOutputs,\n collateral: newCollateral,\n network: newNetwork,\n feeAddress: newFeeAddress,\n changeAddress: newChangeAddress,\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, {\n ...result,\n activeWallet: this.activeWallet!,\n });\n this._performingSync = false;\n return result;\n } catch (e) {\n this._performingSync = false;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n throw e;\n }\n };\n\n /**\n * Helper method to check if the class is currently performing a sync\n * operation. This is useful to avoid duplicate calls, but does not\n * prevent it within the class.\n *\n * @returns {boolean}\n */\n isSyncing(): boolean {\n return this._performingSync;\n }\n\n /**\n * Helper method to check if the instance has an active connection.\n *\n * @returns {boolean}\n */\n hasActiveConnection(): boolean {\n return Boolean(this.activeWallet && this.api);\n }\n\n /**\n * Synchronizes the API with the wallet. This is useful if the account has changed,\n * but the underlying intent has not.\n *\n * @param {string} [activeWallet] - The wallet to sync with.\n * @returns {Promise<Cip30WalletApi | undefined>} - A promise that resolves to the API instance.\n */\n syncApi = async (\n activeWallet?: string,\n ): Promise<Cip30WalletApi | undefined> => {\n if (!activeWallet && !this.activeWallet) {\n throw new Error(\n \"A wallet is required to be passed as a parameter, or to be defined in the class.\",\n );\n }\n\n const selectedWallet = (activeWallet || this.activeWallet) as string;\n\n let attempts = 0;\n let shouldContinue = true;\n\n if (selectedWallet.startsWith(\"addr\")) {\n if (!this._options.readOnlyProvider) {\n throw new Error(\n \"You must provide a ReadOnlyProvider when connecting with a read-only address.\",\n );\n }\n\n this.api = new ReadOnlyApi(\n selectedWallet,\n selectedWallet.startsWith(\"addr_test\") ? 0 : 1,\n this._options.readOnlyProvider,\n );\n this.network = await this.api.getNetworkId();\n return this.api;\n }\n\n while (shouldContinue) {\n if (attempts === 10) {\n throw new Error(\n \"Could not reconnect to the selected wallet. Please check your extension.\",\n );\n }\n\n try {\n const cardano = window?.cardano || window?.parent?.cardano;\n const api = await cardano?.[selectedWallet]?.enable();\n\n if (!api) {\n throw Error;\n }\n\n this.api = api;\n this.network = await api.getNetworkId();\n shouldContinue = false;\n } catch (e) {\n if (\n [\n \"user canceled connection\",\n \"User declined to sign the data.\",\n ].includes((e as Error)?.message) ||\n (e as ApiError)?.code === APIErrorCode.Refused\n ) {\n shouldContinue = false;\n return undefined;\n }\n\n await new Promise((res) => setTimeout(res, 200));\n attempts++;\n }\n }\n\n return this.api;\n };\n\n /**\n * Gets the options for the wallet observer.\n *\n * @returns {TWalletObserverOptions} - The wallet observer options.\n */\n getOptions = (): TWalletObserverOptions => {\n return this._options;\n };\n\n /**\n * Updates the wallet observer options. Merges the new options with the existing ones.\n * If metadataResolver changes, cancels any in-flight metadata fetch, clears the cache,\n * and triggers a new sync if there is an active connection.\n *\n * @param {Partial<TWalletObserverOptions<AssetMetadata>>} options - The new options to merge.\n */\n updateOptions = (\n options: Partial<TWalletObserverOptions<AssetMetadata>>,\n ): void => {\n const metadataResolverChanged =\n options.metadataResolver &&\n options.metadataResolver !== this._options.metadataResolver;\n\n this._options = merge<\n IResolvedWalletObserverOptions<AssetMetadata>,\n typeof options\n >(this._options, options);\n\n // If metadataResolver changed, abort in-flight fetch, clear cache, and re-sync\n if (metadataResolverChanged) {\n this._metadataAbortController?.abort();\n this._cachedMetadata = new Map();\n\n // Trigger a new sync if there's an active connection\n if (this.hasActiveConnection() && !this._performingSync) {\n this.sync();\n }\n }\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<IWalletObserverSync<AssetMetadata> | Error>}\n */\n connectWallet = async (\n extension: string,\n ): Promise<IWalletObserverSync<AssetMetadata> | Error> => {\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 (\n typeof extensionObject === \"undefined\" &&\n !extension.startsWith(\"addr\")\n ) {\n if (this._options.debug) {\n console.warn(`Could not find extension: ${extension}. Trying again...`);\n }\n\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 && !extension.startsWith(\"addr\")) {\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END);\n throw new Error(\n `Could not find extension (${extension}) in the global context.`,\n );\n }\n\n this.activeWallet = extension;\n await this.syncApi(extension);\n const data = await this.sync();\n\n if (this._options.persistence) {\n if (data.usedAddresses instanceof Error) {\n data.usedAddresses.cause =\n \"Could not get a list of used addresses from the wallet when trying to save the connection.\";\n throw data.usedAddresses;\n }\n\n const seed: IWalletObserverSeed = {\n activeWallet: extension,\n mainAddress: data.usedAddresses[0],\n };\n\n window.localStorage.setItem(\n WalletObserver.PERSISTENCE_CACHE_KEY,\n JSON.stringify(seed),\n );\n }\n\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END, {\n ...data,\n activeWallet: extension,\n });\n const end = performance.now();\n if (this._options.debug) {\n console.log(`connectWallet: ${end - start}ms`);\n }\n\n return data;\n };\n\n getCip45Instance = async () => {\n const start = performance.now();\n if (!this.peerConnectInstance) {\n const DAppPeerConnect = await getPeerConnect();\n this.peerConnectInstance = new DAppPeerConnect(\n this._options.peerConnectArgs,\n );\n }\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCip45Instance: ${end - start}ms`);\n }\n\n return {\n name: this._options.peerConnectArgs.dAppInfo.name,\n icon: this.peerConnectInstance.getIdenticon(),\n instance: this.peerConnectInstance,\n };\n };\n\n /**\n * Helper function to retrieve the currently cached metadata.\n *\n * @returns {Map<string, AssetMetadata>}\n */\n getCachedAssetMetadata = (): Map<string, AssetMetadata> =>\n this._cachedMetadata;\n\n /**\n * Helper function to restore the class instance to its initial state.\n *\n * @returns {void}\n */\n disconnect = (): void => {\n this.activeWallet = undefined;\n this.api = undefined;\n window.localStorage.removeItem(WalletObserver.PERSISTENCE_CACHE_KEY);\n this.dispatch(EWalletObserverEvents.DISCONNECT);\n };\n\n /**\n * Gets a the change address.\n *\n * @returns {Promise<string | Error>} The change address, or an error.\n */\n getChangeAddress = async (): Promise<string | Error> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query change address without an API instance.\",\n );\n }\n\n const start = performance.now();\n\n const [{ Cardano }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string;\n try {\n cbor = await this.api.getChangeAddress();\n } catch (e) {\n return e as Error;\n }\n\n const data = Cardano.Address.fromBytes(typedHex(cbor)).toBech32();\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getChangeAddress: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Retrieves the balance of the wallet, including metadata for each asset.\n *\n * @returns {Promise<WalletBalanceMap<AssetMetadata>>} - A promise that resolves to a map of asset amounts keyed by asset IDs.\n */\n getBalanceMap = async (): Promise<\n WalletBalanceMap<AssetMetadata> | Error\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query balance without an API instance.\");\n }\n\n const start = performance.now();\n\n this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_START);\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string;\n try {\n cbor = await this.api.getBalance();\n } catch (e) {\n return e as Error;\n }\n const data = Serialization.Value.fromCbor(typedHex(cbor));\n const multiassetKeys = data.multiasset()?.keys() ?? [];\n\n const metadata = await this.__metadataResolverWithCache([\n ADA_ASSET_ID,\n ...multiassetKeys,\n ]);\n\n const balanceMap = new WalletBalanceMap<AssetMetadata>(this);\n balanceMap.set(\n ADA_ASSET_ID,\n new AssetAmount(data.coin(), metadata.get(ADA_ASSET_ID)),\n );\n\n const multiassetEntries = data.multiasset()?.entries() ?? [];\n if (multiassetEntries) {\n for (const [id, amount] of multiassetEntries) {\n balanceMap.set(\n normalizeAssetIdWithDot(id),\n new AssetAmount(amount, metadata.get(normalizeAssetIdWithDot(id))),\n );\n }\n }\n\n this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_END, {\n balanceMap,\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getBalanceMap: ${end - start}ms`);\n }\n\n return balanceMap;\n };\n\n /**\n * Gets the current network connection.\n *\n * @returns {Promise<number | Error>} The network ID or an Error from the wallet.\n */\n getNetwork = async (): Promise<number | Error> => {\n if (!this.api) {\n throw new Error(\"Attempted to query network without an API instance.\");\n }\n\n const start = performance.now();\n\n let val: number;\n try {\n val = await this.api.getNetworkId();\n } catch (e) {\n return e as Error;\n }\n\n this.network = val;\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getNetwork: ${end - start}ms`);\n }\n return val;\n };\n\n /**\n * Gets a list of used addresses, encoded as Bech32.\n *\n * @returns {Promise<string[]>} The list of addresses.\n */\n getUsedAddresses = async (): Promise<string[] | Error> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query used addresses without an API instance.\",\n );\n }\n\n const start = performance.now();\n\n const [{ Cardano }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[];\n try {\n cbor = await this.api.getUsedAddresses();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor.map((val) =>\n Cardano.Address.fromBytes(typedHex(val)).toBech32(),\n );\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUsedAddresses: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets a list of unused addresses, encoded as Bech32.\n *\n * @returns {Promise<string[] | Error>} The list of addresses or an Error returned by the wallet.\n */\n getUnusedAddresses = async (): Promise<string[] | Error> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query unused addresses without an API instance.\",\n );\n }\n\n const start = performance.now();\n\n const [{ Cardano }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[];\n try {\n cbor = await this.api.getUnusedAddresses();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor.map((val) =>\n Cardano.Address.fromBytes(typedHex(val)).toBech32(),\n );\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUnusedAddresses: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets a list of wallet UTXOs.\n *\n * @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.\n */\n getUtxos = async (): Promise<\n TransactionUnspentOutput[] | Error | undefined\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query UTXOs without an API instance.\");\n }\n\n const start = performance.now();\n\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[] | null;\n try {\n cbor = await this.api.getUtxos();\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor?.map((val) => {\n const txOutput = Serialization.TransactionUnspentOutput.fromCbor(\n typedHex(val),\n );\n\n // These methods must be bound to their initial creation instance.\n txOutput.input = txOutput.input.bind(txOutput);\n txOutput.output = txOutput.output.bind(txOutput);\n return txOutput;\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getUtxos: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Gets the fee address set by the wallet, if available.\n *\n * @returns {Promise<string | Error | undefined>} The fee address or an Error.\n */\n getFeeAddress = async (): Promise<string | Error | undefined> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to query fee address without an API instance.\",\n );\n }\n\n const start = performance.now();\n try {\n const address =\n window.cardano?.[this.activeWallet!]?.experimental?.feeAddress;\n const end = performance.now();\n\n if (this._options.debug) {\n console.log(`getFeeAddress: ${end - start}ms`);\n }\n\n return address;\n } catch (e) {\n return e as Error;\n }\n };\n\n /**\n * Gets a list of wallet UTXOs suitable for collateral.\n *\n * @returns {Promise<TransactionUnspentOutput[] | Error | undefined>} The list of TransactionUnspentOutputs, if there are any, or an Error.\n */\n getCollateral = async (): Promise<\n TransactionUnspentOutput[] | Error | undefined\n > => {\n if (!this.api) {\n throw new Error(\"Attempted to query UTXOs without an API instance.\");\n }\n\n const start = performance.now();\n\n const [{ Serialization }, typedHex] = await Promise.all([\n getCardanoCore(),\n getCardanoUtil(),\n ]);\n\n let cbor: string[] | null;\n try {\n const funcCall =\n this.api?.getCollateral ||\n (this.api?.experimental.getCollateral as GetCollateral);\n if (typeof funcCall !== \"function\") {\n cbor = [];\n } else {\n cbor = await funcCall();\n }\n } catch (e) {\n return e as Error;\n }\n\n const data = cbor?.map((val) => {\n const txOutput = Serialization.TransactionUnspentOutput.fromCbor(\n typedHex(val),\n );\n\n // These methods must be bound to their initial creation instance.\n txOutput.input = txOutput.input.bind(txOutput);\n txOutput.output = txOutput.output.bind(txOutput);\n return txOutput;\n });\n\n const end = performance.now();\n if (this._options.debug) {\n console.log(`getCollateral: ${end - start}ms`);\n }\n return data;\n };\n\n /**\n * Resolves metadata for the given asset IDs, using a cached version if available.\n * Aborts any in-flight fetch when called, ensuring only the latest request completes.\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 // Abort any in-flight metadata fetch\n this._metadataAbortController?.abort();\n this._metadataAbortController = new AbortController();\n const currentController = this._metadataAbortController;\n\n let attempts = 0;\n let newMetadata: Map<string, AssetMetadata> | undefined;\n while (attempts <= 3 && !newMetadata) {\n try {\n newMetadata = await this._options.metadataResolver({\n assetIds: assetIds.map(normalizeAssetIdWithDot),\n normalizeAssetId: normalizeAssetIdWithDot,\n isAdaAsset,\n });\n } catch (e) {\n attempts++;\n }\n }\n\n // If this request was aborted while in-flight, return current cache (a new fetch is in progress)\n if (currentController.signal.aborted) {\n return this._cachedMetadata;\n }\n\n if (!newMetadata) {\n newMetadata = await this.fallbackMetadataResolver({\n assetIds: assetIds.map(normalizeAssetIdWithDot),\n normalizeAssetId: normalizeAssetIdWithDot,\n isAdaAsset,\n });\n }\n\n // Double-check abort status after fallback resolver\n if (currentController.signal.aborted) {\n return this._cachedMetadata;\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":[]}
@@ -46,6 +46,8 @@ export class WalletObserver extends WalletObserverEvent {
46
46
  _defineProperty(this, "_options", void 0);
47
47
  // Caching
48
48
  _defineProperty(this, "_cachedMetadata", new Map());
49
+ // AbortController for cancelling in-flight metadata fetches when metadataResolver changes
50
+ _defineProperty(this, "_metadataAbortController", null);
49
51
  /**
50
52
  * Synchronizes the wallet. This method handles syncing the class
51
53
  * against the currently selected active wallet. If the wallet has
@@ -161,11 +163,25 @@ export class WalletObserver extends WalletObserverEvent {
161
163
  });
162
164
  /**
163
165
  * Updates the wallet observer options. Merges the new options with the existing ones.
166
+ * If metadataResolver changes, cancels any in-flight metadata fetch, clears the cache,
167
+ * and triggers a new sync if there is an active connection.
164
168
  *
165
169
  * @param {Partial<TWalletObserverOptions<AssetMetadata>>} options - The new options to merge.
166
170
  */
167
171
  _defineProperty(this, "updateOptions", options => {
172
+ const metadataResolverChanged = options.metadataResolver && options.metadataResolver !== this._options.metadataResolver;
168
173
  this._options = merge(this._options, options);
174
+
175
+ // If metadataResolver changed, abort in-flight fetch, clear cache, and re-sync
176
+ if (metadataResolverChanged) {
177
+ this._metadataAbortController?.abort();
178
+ this._cachedMetadata = new Map();
179
+
180
+ // Trigger a new sync if there's an active connection
181
+ if (this.hasActiveConnection() && !this._performingSync) {
182
+ this.sync();
183
+ }
184
+ }
169
185
  });
170
186
  /**
171
187
  * Attempts to connect a wallet using the global window
@@ -492,6 +508,7 @@ export class WalletObserver extends WalletObserverEvent {
492
508
  });
493
509
  /**
494
510
  * Resolves metadata for the given asset IDs, using a cached version if available.
511
+ * Aborts any in-flight fetch when called, ensuring only the latest request completes.
495
512
  *
496
513
  * @private
497
514
  * @param {string[]} assetIds - The IDs of the assets to resolve metadata for.
@@ -510,6 +527,11 @@ export class WalletObserver extends WalletObserverEvent {
510
527
  return this._cachedMetadata;
511
528
  }
512
529
  }
530
+
531
+ // Abort any in-flight metadata fetch
532
+ this._metadataAbortController?.abort();
533
+ this._metadataAbortController = new AbortController();
534
+ const currentController = this._metadataAbortController;
513
535
  let attempts = 0;
514
536
  let newMetadata;
515
537
  while (attempts <= 3 && !newMetadata) {
@@ -523,6 +545,11 @@ export class WalletObserver extends WalletObserverEvent {
523
545
  attempts++;
524
546
  }
525
547
  }
548
+
549
+ // If this request was aborted while in-flight, return current cache (a new fetch is in progress)
550
+ if (currentController.signal.aborted) {
551
+ return this._cachedMetadata;
552
+ }
526
553
  if (!newMetadata) {
527
554
  newMetadata = await this.fallbackMetadataResolver({
528
555
  assetIds: assetIds.map(normalizeAssetIdWithDot),
@@ -530,6 +557,11 @@ export class WalletObserver extends WalletObserverEvent {
530
557
  isAdaAsset
531
558
  });
532
559
  }
560
+
561
+ // Double-check abort status after fallback resolver
562
+ if (currentController.signal.aborted) {
563
+ return this._cachedMetadata;
564
+ }
533
565
  this._cachedMetadata = newMetadata;
534
566
  const end = performance.now();
535
567
  if (this._options.debug) {