@sundaeswap/wallet-lite 0.0.14 → 0.0.16

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 (34) hide show
  1. package/dist/cjs/@types/observer.js.map +1 -1
  2. package/dist/cjs/classes/WalletObserver.class.js +73 -32
  3. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  4. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +30 -10
  5. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  6. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  7. package/dist/cjs/react-components/hooks/useWalletObserver.js +2 -1
  8. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  9. package/dist/esm/@types/observer.js.map +1 -1
  10. package/dist/esm/classes/WalletObserver.class.js +26 -1
  11. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  12. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +12 -0
  13. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  14. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  15. package/dist/esm/react-components/hooks/useWalletObserver.js +2 -1
  16. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  17. package/dist/types/@types/observer.d.ts +3 -1
  18. package/dist/types/@types/observer.d.ts.map +1 -1
  19. package/dist/types/classes/WalletObserver.class.d.ts +7 -0
  20. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  21. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +3 -0
  22. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  23. package/dist/types/react-components/contexts/observer/types.d.ts +4 -1
  24. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  25. package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
  26. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  27. package/package.json +1 -1
  28. package/src/@types/observer.ts +12 -3
  29. package/src/__data__/eternl.ts +18 -0
  30. package/src/classes/WalletObserver.class.ts +35 -2
  31. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +15 -0
  32. package/src/react-components/__tests__/RenderWalletHandles.test.tsx +0 -7
  33. package/src/react-components/contexts/observer/types.ts +4 -0
  34. package/src/react-components/hooks/useWalletObserver.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"observer.js","names":[],"sources":["../../../src/@types/observer.ts"],"sourcesContent":["import 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 { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\n\n/**\n * A list of support CIP-30 wallet extensions in the browser.\n */\nexport type TSupportedWalletExtensions =\n | \"eternl\"\n | \"lace\"\n | \"typhon\"\n | \"sorbet\"\n | \"flint\"\n | \"nami\";\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> = (assetIds: string[]) => 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}\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> = Map<string, AssetAmount<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 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 { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.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> = (assetIds: string[]) => 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}\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> = Map<string, AssetAmount<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":[]}
@@ -89,7 +89,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
89
89
  * @returns {Promise<IWalletObserverSync>} - A promise that resolves to the wallet sync data.
90
90
  */
91
91
  _defineProperty(_this, "sync", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
92
- var newNetwork, _yield$Promise$all, _yield$Promise$all2, newBalanceMap, newUsedAddresses, newUnusedAddresses, result;
92
+ var newNetwork, _yield$Promise$all, _yield$Promise$all2, newBalanceMap, newUsedAddresses, newUnusedAddresses, newOutputs, result;
93
93
  return _regeneratorRuntime().wrap(function _callee$(_context) {
94
94
  while (1) switch (_context.prev = _context.next) {
95
95
  case 0:
@@ -129,23 +129,25 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
129
129
  throw _context.t1;
130
130
  case 25:
131
131
  _context.next = 27;
132
- return Promise.all([_this.getBalanceMap(), _this.getUsedAddresses(), _this.getUnusedAddresses()]);
132
+ return Promise.all([_this.getBalanceMap(), _this.getUsedAddresses(), _this.getUnusedAddresses(), _this.getUtxos()]);
133
133
  case 27:
134
134
  _yield$Promise$all = _context.sent;
135
- _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 3);
135
+ _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 4);
136
136
  newBalanceMap = _yield$Promise$all2[0];
137
137
  newUsedAddresses = _yield$Promise$all2[1];
138
138
  newUnusedAddresses = _yield$Promise$all2[2];
139
+ newOutputs = _yield$Promise$all2[3];
139
140
  result = {
140
141
  balanceMap: newBalanceMap,
141
142
  usedAddresses: newUsedAddresses,
142
143
  unusedAddresses: newUnusedAddresses,
144
+ utxos: newOutputs,
143
145
  network: newNetwork
144
146
  };
145
147
  _this.dispatch(_events.EWalletObserverEvents.SYNCING_WALLET_END, result);
146
148
  _this._performingSync = false;
147
149
  return _context.abrupt("return", result);
148
- case 36:
150
+ case 37:
149
151
  case "end":
150
152
  return _context.stop();
151
153
  }
@@ -522,6 +524,45 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
522
524
  }
523
525
  }, _callee8);
524
526
  })));
527
+ /**
528
+ * Gets a list of wallet UTXOs.
529
+ *
530
+ * @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.
531
+ */
532
+ _defineProperty(_this, "getUtxos", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
533
+ var _yield$Promise$all9, _yield$Promise$all10, cbor, Serialization, typedHex, data;
534
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
535
+ while (1) switch (_context9.prev = _context9.next) {
536
+ case 0:
537
+ if (_this.api) {
538
+ _context9.next = 2;
539
+ break;
540
+ }
541
+ throw new Error("Attempted to query UTXOs without an API instance.");
542
+ case 2:
543
+ _context9.next = 4;
544
+ return Promise.all([_this.api.getUtxos(), (0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
545
+ case 4:
546
+ _yield$Promise$all9 = _context9.sent;
547
+ _yield$Promise$all10 = _slicedToArray(_yield$Promise$all9, 3);
548
+ cbor = _yield$Promise$all10[0];
549
+ Serialization = _yield$Promise$all10[1].Serialization;
550
+ typedHex = _yield$Promise$all10[2].typedHex;
551
+ data = cbor === null || cbor === void 0 ? void 0 : cbor.map(function (val) {
552
+ var txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
553
+
554
+ // These methods must be bound to their initial creation instance.
555
+ txOutput.input = txOutput.input.bind(txOutput);
556
+ txOutput.output = txOutput.output.bind(txOutput);
557
+ return txOutput;
558
+ });
559
+ return _context9.abrupt("return", data);
560
+ case 11:
561
+ case "end":
562
+ return _context9.stop();
563
+ }
564
+ }, _callee9);
565
+ })));
525
566
  /**
526
567
  * Resolves metadata for the given asset IDs, using a cached version if available.
527
568
  *
@@ -530,13 +571,13 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
530
571
  * @returns {Promise<Map<string, AssetMetadata>>} - A promise that resolves to a map of asset metadata.
531
572
  */
532
573
  _defineProperty(_this, "__metadataResolverWithCache", /*#__PURE__*/function () {
533
- var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(assetIds) {
574
+ var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(assetIds) {
534
575
  var cachedKeys, inputKeys, newMetadata;
535
- return _regeneratorRuntime().wrap(function _callee9$(_context9) {
536
- while (1) switch (_context9.prev = _context9.next) {
576
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
577
+ while (1) switch (_context10.prev = _context10.next) {
537
578
  case 0:
538
579
  if (!_this._cachedMetadata) {
539
- _context9.next = 5;
580
+ _context10.next = 5;
540
581
  break;
541
582
  }
542
583
  cachedKeys = new Set(_this._cachedMetadata.keys());
@@ -544,25 +585,25 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
544
585
  if (!(cachedKeys.size === inputKeys.size && _toConsumableArray(cachedKeys).every(function (key) {
545
586
  return inputKeys.has(key);
546
587
  }))) {
547
- _context9.next = 5;
588
+ _context10.next = 5;
548
589
  break;
549
590
  }
550
- return _context9.abrupt("return", _this._cachedMetadata);
591
+ return _context10.abrupt("return", _this._cachedMetadata);
551
592
  case 5:
552
- _context9.next = 7;
593
+ _context10.next = 7;
553
594
  return _this._options.metadataResolver(assetIds);
554
595
  case 7:
555
- newMetadata = _context9.sent;
596
+ newMetadata = _context10.sent;
556
597
  _this._cachedMetadata = newMetadata;
557
- return _context9.abrupt("return", newMetadata);
598
+ return _context10.abrupt("return", newMetadata);
558
599
  case 10:
559
600
  case "end":
560
- return _context9.stop();
601
+ return _context10.stop();
561
602
  }
562
- }, _callee9);
603
+ }, _callee10);
563
604
  }));
564
605
  return function (_x3) {
565
- return _ref9.apply(this, arguments);
606
+ return _ref10.apply(this, arguments);
566
607
  };
567
608
  }());
568
609
  /**
@@ -571,10 +612,10 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
571
612
  * @type {TMetadataResolverFunc<AssetMetadata>}
572
613
  */
573
614
  _defineProperty(_this, "fallbackMetadataResolver", /*#__PURE__*/function () {
574
- var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(assetIds) {
615
+ var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(assetIds) {
575
616
  var map;
576
- return _regeneratorRuntime().wrap(function _callee10$(_context10) {
577
- while (1) switch (_context10.prev = _context10.next) {
617
+ return _regeneratorRuntime().wrap(function _callee11$(_context11) {
618
+ while (1) switch (_context11.prev = _context11.next) {
578
619
  case 0:
579
620
  map = new Map();
580
621
  assetIds.forEach(function (id) {
@@ -583,15 +624,15 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
583
624
  decimals: 6
584
625
  });
585
626
  });
586
- return _context10.abrupt("return", map);
627
+ return _context11.abrupt("return", map);
587
628
  case 3:
588
629
  case "end":
589
- return _context10.stop();
630
+ return _context11.stop();
590
631
  }
591
- }, _callee10);
632
+ }, _callee11);
592
633
  }));
593
634
  return function (_x4) {
594
- return _ref10.apply(this, arguments);
635
+ return _ref11.apply(this, arguments);
595
636
  };
596
637
  }());
597
638
  _this._options = (0, _merge["default"])({
@@ -657,25 +698,25 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
657
698
  * @returns {Promise<WalletObserverUtils>} Resolves to a WalletObserverUtils class.
658
699
  */
659
700
  function () {
660
- var _getUtils = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {
661
- return _regeneratorRuntime().wrap(function _callee11$(_context11) {
662
- while (1) switch (_context11.prev = _context11.next) {
701
+ var _getUtils = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {
702
+ return _regeneratorRuntime().wrap(function _callee12$(_context12) {
703
+ while (1) switch (_context12.prev = _context12.next) {
663
704
  case 0:
664
705
  if (this.utils) {
665
- _context11.next = 4;
706
+ _context12.next = 4;
666
707
  break;
667
708
  }
668
- _context11.next = 3;
709
+ _context12.next = 3;
669
710
  return _WalletObserverUtilsClass.WalletObserverUtils["new"](this.network);
670
711
  case 3:
671
- this.utils = _context11.sent;
712
+ this.utils = _context12.sent;
672
713
  case 4:
673
- return _context11.abrupt("return", this.utils);
714
+ return _context12.abrupt("return", this.utils);
674
715
  case 5:
675
716
  case "end":
676
- return _context11.stop();
717
+ return _context12.stop();
677
718
  }
678
- }, _callee11, this);
719
+ }, _callee12, this);
679
720
  }));
680
721
  function getUtils() {
681
722
  return _getUtils.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"WalletObserver.class.js","names":["_asset","require","_merge","_interopRequireDefault","_events","_getLibs","_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","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","test","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","bind","_inherits","_setPrototypeOf","_defineProperty","_toPrimitive","toPrimitive","String","Number","WalletObserver","exports","_WalletObserverEvent","options","_this","Map","_callee","newNetwork","_yield$Promise$all","_yield$Promise$all2","newBalanceMap","newUsedAddresses","newUnusedAddresses","result","_callee$","_context","api","_performingSync","dispatch","EWalletObserverEvents","SYNCING_WALLET_START","getNetwork","t0","syncApi","t1","SYNCING_WALLET_END","all","getBalanceMap","getUsedAddresses","getUnusedAddresses","balanceMap","usedAddresses","unusedAddresses","network","_ref2","_callee2","activeWallet","attempts","selectedWallet","_window$cardano","_callee2$","_context2","undefined","_activeWallet","window","cardano","enable","getNetworkId","res","setTimeout","_x","_options","_ref3","_callee3","extension","_window$cardano2","extensionObject","_this$peerConnectInst","_window$cardano3","seed","_callee3$","_context3","CONNECT_WALLET_START","includes","peerConnectInstance","shutdownServer","connectTimeout","persistence","localStorage","setItem","PERSISTENCE_CACHE_KEY","JSON","stringify","CONNECT_WALLET_END","_x2","_callee4","_yield$getPeerConnect","DAppPeerConnect","_callee4$","_context4","getPeerConnect","peerConnectArgs","dAppInfo","icon","getIdenticon","instance","_cachedMetadata","_supportedExtensions","removeItem","DISCONNECT","_callee5","_data$multiasset$keys","_data$multiasset","_data$multiasset$entr","_data$multiasset2","_yield$Promise$all3","_yield$Promise$all4","cbor","Serialization","typedHex","data","multiassetKeys","metadata","multiassetEntries","_iterator","_step","_step$value","id","amount","_callee5$","_context5","GET_BALANCE_MAP_START","getBalance","getCardanoCore","getCardanoUtil","Value","fromCbor","multiasset","__metadataResolverWithCache","ADA_ASSET_ID","concat","WalletBalanceMap","set","AssetAmount","coin","get","entries","err","GET_BALANCE_MAP_END","_callee6","val","_callee6$","_context6","_callee7","_yield$Promise$all5","_yield$Promise$all6","Cardano","_callee7$","_context7","map","Address","fromBytes","toBech32","_callee8","_yield$Promise$all7","_yield$Promise$all8","_callee8$","_context8","_ref9","_callee9","assetIds","cachedKeys","inputKeys","newMetadata","_callee9$","_context9","Set","size","every","has","metadataResolver","_x3","_ref10","_callee10","_callee10$","_context10","assetId","decimals","_x4","merge","fallbackMetadataResolver","url","location","hostname","onApiEject","address","_options$peerConnectA","_options$peerConnectA2","disconnect","onApiInject","_options$peerConnectA3","_options$peerConnectA4","connectWallet","verifyConnection","walletInfo","callback","_walletInfo$requestAu","requestAutoconnect","useWalletDiscovery","announce","savedWallet","getItem","parse","isSyncing","_getUtils","_callee11","_callee11$","_context11","utils","WalletObserverUtils","getUtils","WalletObserverEvent"],"sources":["../../../src/classes/WalletObserver.class.ts"],"sourcesContent":["import type { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport { AssetAmount, type IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport merge from \"lodash/merge.js\";\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 {\n getCardanoCore,\n getCardanoUtil,\n getPeerConnect,\n} from \"../utils/getLibs.js\";\nimport { WalletBalanceMap } from \"./WalletBalanceMap.class.js\";\nimport { WalletObserverEvent } from \"./WalletObserverEvent.js\";\nimport { WalletObserverUtils } from \"./WalletObserverUtils.class.js\";\n\n/**\n * Class representing the Wallet Observer. This is the main interface\n * for interacting with a wallet extension that is available in the\n * browser window. It handles all the deserialization required when\n * querying raw data from a CIP-30 API, and converts it to readable and\n * usable interfaces.\n *\n * Notably, it extends the WalletObserverEvent class which\n * acts as an internal event handler to hook into actions, such as connecting,\n * syncing, and disconnecting.\n *\n * @template AssetMetadata - Type extending IAssetAmountMetadata.\n * @extends {WalletObserverEvent}\n */\nexport class WalletObserver<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> extends WalletObserverEvent {\n static PERSISTENCE_CACHE_KEY = \"walletObserver\";\n static ADA_ASSET_ID = \"ada.lovelace\";\n public network: number = 0;\n public api?: Cip30WalletApi;\n public utils?: WalletObserverUtils;\n public peerConnectInstance?: import(\"@fabianbormann/cardano-peer-connect\").DAppPeerConnect;\n\n private _performingSync: boolean = false;\n private _activeWallet?: TSupportedWalletExtensions;\n private _options: IResolvedWalletObserverOptions<AssetMetadata>;\n private _supportedExtensions: TSupportedWalletExtensions[] = [\n \"eternl\",\n \"lace\",\n \"typhon\",\n \"sorbet\",\n \"flint\",\n \"nami\",\n ];\n\n // Caching\n private _cachedMetadata: Map<string, AssetMetadata> = new Map();\n\n /**\n * Creates an instance of WalletObserver.\n *\n * @param {Partial<TWalletObserverOptions<AssetMetadata>>} [options] - Options for the wallet observer.\n */\n constructor(options?: Partial<TWalletObserverOptions<AssetMetadata>>) {\n super();\n\n // Set options.\n this._options = merge<IResolvedWalletObserverOptions, typeof options>(\n {\n metadataResolver: this.fallbackMetadataResolver,\n persistence: false,\n connectTimeout: 10000,\n peerConnectArgs: {\n dAppInfo: {\n name: \"Placeholder dApp Connecter Name\",\n url: window.location.hostname,\n },\n onApiEject: (name, address) => {\n options?.peerConnectArgs?.onApiEject?.(name, address);\n this.disconnect();\n },\n onApiInject: (name, address) => {\n options?.peerConnectArgs?.onApiInject?.(name, address);\n this.connectWallet(name as TSupportedWalletExtensions);\n },\n verifyConnection(walletInfo, callback) {\n return callback(true, walletInfo.requestAutoconnect ?? true);\n },\n useWalletDiscovery: true,\n announce: [\n \"wss://tracker.de-5.eternl.art\",\n \"wss://tracker.de-6.eternl.art\",\n \"wss://tracker.us-5.eternl.art\",\n ],\n },\n },\n options\n );\n\n if (!this._options.persistence) {\n return;\n }\n\n const savedWallet = window.localStorage.getItem(\n WalletObserver.PERSISTENCE_CACHE_KEY\n );\n\n if (!savedWallet) {\n return;\n }\n\n // Init connection\n const seed: IWalletObserverSeed = JSON.parse(savedWallet);\n this.connectWallet(seed.activeWallet);\n }\n\n /**\n * Synchronizes the wallet. This method handles syncing the class\n * against the currently selected active wallet. If the wallet has\n * changed networks, or if the account within the wallet has changed,\n * this method will automatically attempt to reconcile this error before\n * eventually throwing.\n *\n * In the event that a promise will not resolve due to external issues,\n * after 7 seconds, a timeout function will fire that resets the API and tries again.\n *\n * @returns {Promise<IWalletObserverSync>} - A promise that resolves to the wallet sync data.\n */\n sync = async (): Promise<IWalletObserverSync> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to perform a sync operation without a connected wallet.\"\n );\n }\n\n this._performingSync = true;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_START);\n\n let newNetwork: number;\n try {\n newNetwork = await this.getNetwork();\n } catch (e) {\n try {\n await this.syncApi();\n newNetwork = await this.getNetwork();\n } catch (e) {\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this._performingSync = false;\n throw e;\n }\n }\n\n const [newBalanceMap, newUsedAddresses, newUnusedAddresses] =\n await Promise.all([\n this.getBalanceMap(),\n this.getUsedAddresses(),\n this.getUnusedAddresses(),\n ]);\n\n const result = {\n balanceMap: newBalanceMap,\n usedAddresses: newUsedAddresses,\n unusedAddresses: newUnusedAddresses,\n network: newNetwork,\n };\n\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);\n this._performingSync = false;\n\n return result;\n };\n\n /**\n * Helper method to check if the class is currently performing a sync\n * operation. This is useful to avoid duplicate calls, but does not\n * prevent it within the class.\n *\n * @returns {boolean}\n */\n isSyncing(): boolean {\n return this._performingSync;\n }\n\n /**\n * Synchronizes the API with the wallet. This is useful if the account has changed,\n * but the underlying intent has not.\n *\n * @param {TSupportedWalletExtensions} [activeWallet] - The wallet to sync with.\n * @returns {Promise<Cip30WalletApi>} - A promise that resolves to the API instance.\n */\n syncApi = async (activeWallet?: TSupportedWalletExtensions): Promise<any> => {\n let attempts = 0;\n this.api = undefined;\n if (!activeWallet && !this._activeWallet) {\n throw new Error(\n \"A wallet is required to be passed as a parameter, or to be defined in the class.\"\n );\n }\n\n const selectedWallet =\n activeWallet || (this._activeWallet as TSupportedWalletExtensions);\n\n while (!this.api) {\n if (attempts === 10) {\n throw new Error(\n \"Could not reconnect to the selected wallet. Please check your extension.\"\n );\n }\n\n try {\n const api = await window.cardano?.[selectedWallet]?.enable();\n\n if (!api) {\n throw Error;\n }\n\n this.api = api;\n this.network = await api.getNetworkId();\n } catch (e) {\n await new Promise((res) => setTimeout(res, 200));\n attempts++;\n }\n }\n\n return this.api;\n };\n\n /**\n * Gets the options for the wallet observer.\n *\n * @returns {TWalletObserverOptions} - The wallet observer options.\n */\n getOptions = (): TWalletObserverOptions => {\n return this._options;\n };\n\n /**\n * Attempts to connect a wallet using the global window\n * reference. If no reference is found, it will retry for\n * 10 seconds before throw an error.\n *\n * @param {string} extension The name of the extension to enable.\n * @return {Promise<void>}\n */\n connectWallet = async (\n extension: TSupportedWalletExtensions\n ): Promise<void> => {\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_START);\n\n let attempts = 0;\n let extensionObject = window.cardano?.[extension];\n\n // Disconnect any CIP45 connections.\n if (!extension?.includes(\"p2p\")) {\n this.peerConnectInstance?.shutdownServer();\n }\n\n while (typeof extensionObject === \"undefined\") {\n if (attempts === 40) {\n break;\n }\n\n await new Promise((res) =>\n setTimeout(res, (this._options.connectTimeout as number) / 40)\n );\n extensionObject = window.cardano?.[extension];\n attempts++;\n }\n\n if (!extensionObject) {\n throw new Error(\"Wallet extension not found in the global context.\");\n }\n\n await this.syncApi(extension);\n\n this._activeWallet = extension;\n if (this._options.persistence) {\n const seed: IWalletObserverSeed = {\n activeWallet: extension,\n };\n\n window.localStorage.setItem(\n WalletObserver.PERSISTENCE_CACHE_KEY,\n JSON.stringify(seed)\n );\n }\n\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END, {\n extension,\n });\n };\n\n getCip45Instance = async () => {\n if (!this.peerConnectInstance) {\n const { DAppPeerConnect } = await getPeerConnect();\n this.peerConnectInstance = new DAppPeerConnect(\n this._options.peerConnectArgs\n );\n }\n\n return {\n name: this._options.peerConnectArgs.dAppInfo.name,\n icon: this.peerConnectInstance.getIdenticon(),\n instance: this.peerConnectInstance,\n };\n };\n\n /**\n * Helper function to retrieve currently active wallet connection, if present.\n *\n * @returns {TSupportedWalletExtensions | undefined}\n */\n getActiveWallet = (): TSupportedWalletExtensions | undefined => {\n return this._activeWallet;\n };\n\n /**\n * Helper function to retrieve the currently cached metadata.\n *\n * @returns {Map<string, AssetMetadata>}\n */\n getCachedAssetMetadata = (): Map<string, AssetMetadata> =>\n this._cachedMetadata;\n\n /**\n * Helper function to retrieve a list of supported wallet extensions.\n *\n * @returns {keyof TSupportedWalletExtensions[] | undefined}\n */\n getSupportedExtensions = (): TSupportedWalletExtensions[] => {\n return this._supportedExtensions;\n };\n\n /**\n * Helper function to restore the class instance to its initial state.\n *\n * @returns {void}\n */\n disconnect = (): void => {\n this._activeWallet = undefined;\n this.api = undefined;\n this._cachedMetadata = new Map();\n window.localStorage.removeItem(WalletObserver.PERSISTENCE_CACHE_KEY);\n this.dispatch(EWalletObserverEvents.DISCONNECT);\n };\n\n /**\n * Retrieves the balance of the wallet, including metadata for each asset.\n *\n * @returns {Promise<WalletBalanceMap<AssetMetadata>>} - A promise that resolves to a map of asset amounts keyed by asset IDs.\n */\n getBalanceMap = async (): Promise<WalletBalanceMap<AssetMetadata>> => {\n if (!this.api) {\n throw new Error(\"Attempted to query balance without an API instance.\");\n }\n\n 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(id, new AssetAmount(amount, metadata.get(id)));\n }\n }\n\n this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_END, {\n balanceMap,\n });\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 val = await this.api.getNetworkId();\n this.network = val;\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 [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 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 [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 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 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 return this._cachedMetadata;\n }\n }\n\n const newMetadata = await this._options.metadataResolver(assetIds);\n this._cachedMetadata = newMetadata;\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(id, {\n assetId: 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":["_asset","require","_merge","_interopRequireDefault","_events","_getLibs","_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","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","test","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","bind","_inherits","_setPrototypeOf","_defineProperty","_toPrimitive","toPrimitive","String","Number","WalletObserver","exports","_WalletObserverEvent","options","_this","Map","_callee","newNetwork","_yield$Promise$all","_yield$Promise$all2","newBalanceMap","newUsedAddresses","newUnusedAddresses","newOutputs","result","_callee$","_context","api","_performingSync","dispatch","EWalletObserverEvents","SYNCING_WALLET_START","getNetwork","t0","syncApi","t1","SYNCING_WALLET_END","all","getBalanceMap","getUsedAddresses","getUnusedAddresses","getUtxos","balanceMap","usedAddresses","unusedAddresses","utxos","network","_ref2","_callee2","activeWallet","attempts","selectedWallet","_window$cardano","_callee2$","_context2","undefined","_activeWallet","window","cardano","enable","getNetworkId","res","setTimeout","_x","_options","_ref3","_callee3","extension","_window$cardano2","extensionObject","_this$peerConnectInst","_window$cardano3","seed","_callee3$","_context3","CONNECT_WALLET_START","includes","peerConnectInstance","shutdownServer","connectTimeout","persistence","localStorage","setItem","PERSISTENCE_CACHE_KEY","JSON","stringify","CONNECT_WALLET_END","_x2","_callee4","_yield$getPeerConnect","DAppPeerConnect","_callee4$","_context4","getPeerConnect","peerConnectArgs","dAppInfo","icon","getIdenticon","instance","_cachedMetadata","_supportedExtensions","removeItem","DISCONNECT","_callee5","_data$multiasset$keys","_data$multiasset","_data$multiasset$entr","_data$multiasset2","_yield$Promise$all3","_yield$Promise$all4","cbor","Serialization","typedHex","data","multiassetKeys","metadata","multiassetEntries","_iterator","_step","_step$value","id","amount","_callee5$","_context5","GET_BALANCE_MAP_START","getBalance","getCardanoCore","getCardanoUtil","Value","fromCbor","multiasset","__metadataResolverWithCache","ADA_ASSET_ID","concat","WalletBalanceMap","set","AssetAmount","coin","get","entries","err","GET_BALANCE_MAP_END","_callee6","val","_callee6$","_context6","_callee7","_yield$Promise$all5","_yield$Promise$all6","Cardano","_callee7$","_context7","map","Address","fromBytes","toBech32","_callee8","_yield$Promise$all7","_yield$Promise$all8","_callee8$","_context8","_callee9","_yield$Promise$all9","_yield$Promise$all10","_callee9$","_context9","txOutput","TransactionUnspentOutput","input","output","_ref10","_callee10","assetIds","cachedKeys","inputKeys","newMetadata","_callee10$","_context10","Set","size","every","has","metadataResolver","_x3","_ref11","_callee11","_callee11$","_context11","assetId","decimals","_x4","merge","fallbackMetadataResolver","url","location","hostname","onApiEject","address","_options$peerConnectA","_options$peerConnectA2","disconnect","onApiInject","_options$peerConnectA3","_options$peerConnectA4","connectWallet","verifyConnection","walletInfo","callback","_walletInfo$requestAu","requestAutoconnect","useWalletDiscovery","announce","savedWallet","getItem","parse","isSyncing","_getUtils","_callee12","_callee12$","_context12","utils","WalletObserverUtils","getUtils","WalletObserverEvent"],"sources":["../../../src/classes/WalletObserver.class.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { Cip30WalletApi } 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 {\n getCardanoCore,\n getCardanoUtil,\n getPeerConnect,\n} from \"../utils/getLibs.js\";\nimport { WalletBalanceMap } from \"./WalletBalanceMap.class.js\";\nimport { WalletObserverEvent } from \"./WalletObserverEvent.js\";\nimport { WalletObserverUtils } from \"./WalletObserverUtils.class.js\";\n\n/**\n * Class representing the Wallet Observer. This is the main interface\n * for interacting with a wallet extension that is available in the\n * browser window. It handles all the deserialization required when\n * querying raw data from a CIP-30 API, and converts it to readable and\n * usable interfaces.\n *\n * Notably, it extends the WalletObserverEvent class which\n * acts as an internal event handler to hook into actions, such as connecting,\n * syncing, and disconnecting.\n *\n * @template AssetMetadata - Type extending IAssetAmountMetadata.\n * @extends {WalletObserverEvent}\n */\nexport class WalletObserver<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> extends WalletObserverEvent {\n static PERSISTENCE_CACHE_KEY = \"walletObserver\";\n static ADA_ASSET_ID = \"ada.lovelace\";\n public network: number = 0;\n public api?: Cip30WalletApi;\n public utils?: WalletObserverUtils;\n public peerConnectInstance?: import(\"@fabianbormann/cardano-peer-connect\").DAppPeerConnect;\n\n private _performingSync: boolean = false;\n private _activeWallet?: TSupportedWalletExtensions;\n private _options: IResolvedWalletObserverOptions<AssetMetadata>;\n private _supportedExtensions: TSupportedWalletExtensions[] = [\n \"eternl\",\n \"lace\",\n \"typhon\",\n \"sorbet\",\n \"flint\",\n \"nami\",\n ];\n\n // Caching\n private _cachedMetadata: Map<string, AssetMetadata> = new Map();\n\n /**\n * Creates an instance of WalletObserver.\n *\n * @param {Partial<TWalletObserverOptions<AssetMetadata>>} [options] - Options for the wallet observer.\n */\n constructor(options?: Partial<TWalletObserverOptions<AssetMetadata>>) {\n super();\n\n // Set options.\n this._options = merge<IResolvedWalletObserverOptions, typeof options>(\n {\n metadataResolver: this.fallbackMetadataResolver,\n persistence: false,\n connectTimeout: 10000,\n peerConnectArgs: {\n dAppInfo: {\n name: \"Placeholder dApp Connecter Name\",\n url: window.location.hostname,\n },\n onApiEject: (name, address) => {\n options?.peerConnectArgs?.onApiEject?.(name, address);\n this.disconnect();\n },\n onApiInject: (name, address) => {\n options?.peerConnectArgs?.onApiInject?.(name, address);\n this.connectWallet(name as TSupportedWalletExtensions);\n },\n verifyConnection(walletInfo, callback) {\n return callback(true, walletInfo.requestAutoconnect ?? true);\n },\n useWalletDiscovery: true,\n announce: [\n \"wss://tracker.de-5.eternl.art\",\n \"wss://tracker.de-6.eternl.art\",\n \"wss://tracker.us-5.eternl.art\",\n ],\n },\n },\n options\n );\n\n if (!this._options.persistence) {\n return;\n }\n\n const savedWallet = window.localStorage.getItem(\n WalletObserver.PERSISTENCE_CACHE_KEY\n );\n\n if (!savedWallet) {\n return;\n }\n\n // Init connection\n const seed: IWalletObserverSeed = JSON.parse(savedWallet);\n this.connectWallet(seed.activeWallet);\n }\n\n /**\n * Synchronizes the wallet. This method handles syncing the class\n * against the currently selected active wallet. If the wallet has\n * changed networks, or if the account within the wallet has changed,\n * this method will automatically attempt to reconcile this error before\n * eventually throwing.\n *\n * In the event that a promise will not resolve due to external issues,\n * after 7 seconds, a timeout function will fire that resets the API and tries again.\n *\n * @returns {Promise<IWalletObserverSync>} - A promise that resolves to the wallet sync data.\n */\n sync = async (): Promise<IWalletObserverSync> => {\n if (!this.api) {\n throw new Error(\n \"Attempted to perform a sync operation without a connected wallet.\"\n );\n }\n\n this._performingSync = true;\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_START);\n\n let newNetwork: number;\n try {\n newNetwork = await this.getNetwork();\n } catch (e) {\n try {\n await this.syncApi();\n newNetwork = await this.getNetwork();\n } catch (e) {\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END);\n this._performingSync = false;\n throw e;\n }\n }\n\n const [newBalanceMap, newUsedAddresses, newUnusedAddresses, newOutputs] =\n await Promise.all([\n this.getBalanceMap(),\n this.getUsedAddresses(),\n this.getUnusedAddresses(),\n this.getUtxos(),\n ]);\n\n const result = {\n balanceMap: newBalanceMap,\n usedAddresses: newUsedAddresses,\n unusedAddresses: newUnusedAddresses,\n utxos: newOutputs,\n network: newNetwork,\n };\n\n this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);\n this._performingSync = false;\n\n return result;\n };\n\n /**\n * Helper method to check if the class is currently performing a sync\n * operation. This is useful to avoid duplicate calls, but does not\n * prevent it within the class.\n *\n * @returns {boolean}\n */\n isSyncing(): boolean {\n return this._performingSync;\n }\n\n /**\n * Synchronizes the API with the wallet. This is useful if the account has changed,\n * but the underlying intent has not.\n *\n * @param {TSupportedWalletExtensions} [activeWallet] - The wallet to sync with.\n * @returns {Promise<Cip30WalletApi>} - A promise that resolves to the API instance.\n */\n syncApi = async (activeWallet?: TSupportedWalletExtensions): Promise<any> => {\n let attempts = 0;\n this.api = undefined;\n if (!activeWallet && !this._activeWallet) {\n throw new Error(\n \"A wallet is required to be passed as a parameter, or to be defined in the class.\"\n );\n }\n\n const selectedWallet =\n activeWallet || (this._activeWallet as TSupportedWalletExtensions);\n\n while (!this.api) {\n if (attempts === 10) {\n throw new Error(\n \"Could not reconnect to the selected wallet. Please check your extension.\"\n );\n }\n\n try {\n const api = await window.cardano?.[selectedWallet]?.enable();\n\n if (!api) {\n throw Error;\n }\n\n this.api = api;\n this.network = await api.getNetworkId();\n } catch (e) {\n await new Promise((res) => setTimeout(res, 200));\n attempts++;\n }\n }\n\n return this.api;\n };\n\n /**\n * Gets the options for the wallet observer.\n *\n * @returns {TWalletObserverOptions} - The wallet observer options.\n */\n getOptions = (): TWalletObserverOptions => {\n return this._options;\n };\n\n /**\n * Attempts to connect a wallet using the global window\n * reference. If no reference is found, it will retry for\n * 10 seconds before throw an error.\n *\n * @param {string} extension The name of the extension to enable.\n * @return {Promise<void>}\n */\n connectWallet = async (\n extension: TSupportedWalletExtensions\n ): Promise<void> => {\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_START);\n\n let attempts = 0;\n let extensionObject = window.cardano?.[extension];\n\n // Disconnect any CIP45 connections.\n if (!extension?.includes(\"p2p\")) {\n this.peerConnectInstance?.shutdownServer();\n }\n\n while (typeof extensionObject === \"undefined\") {\n if (attempts === 40) {\n break;\n }\n\n await new Promise((res) =>\n setTimeout(res, (this._options.connectTimeout as number) / 40)\n );\n extensionObject = window.cardano?.[extension];\n attempts++;\n }\n\n if (!extensionObject) {\n throw new Error(\"Wallet extension not found in the global context.\");\n }\n\n await this.syncApi(extension);\n\n this._activeWallet = extension;\n if (this._options.persistence) {\n const seed: IWalletObserverSeed = {\n activeWallet: extension,\n };\n\n window.localStorage.setItem(\n WalletObserver.PERSISTENCE_CACHE_KEY,\n JSON.stringify(seed)\n );\n }\n\n this.dispatch(EWalletObserverEvents.CONNECT_WALLET_END, {\n extension,\n });\n };\n\n getCip45Instance = async () => {\n if (!this.peerConnectInstance) {\n const { DAppPeerConnect } = await getPeerConnect();\n this.peerConnectInstance = new DAppPeerConnect(\n this._options.peerConnectArgs\n );\n }\n\n return {\n name: this._options.peerConnectArgs.dAppInfo.name,\n icon: this.peerConnectInstance.getIdenticon(),\n instance: this.peerConnectInstance,\n };\n };\n\n /**\n * Helper function to retrieve currently active wallet connection, if present.\n *\n * @returns {TSupportedWalletExtensions | undefined}\n */\n getActiveWallet = (): TSupportedWalletExtensions | undefined => {\n return this._activeWallet;\n };\n\n /**\n * Helper function to retrieve the currently cached metadata.\n *\n * @returns {Map<string, AssetMetadata>}\n */\n getCachedAssetMetadata = (): Map<string, AssetMetadata> =>\n this._cachedMetadata;\n\n /**\n * Helper function to retrieve a list of supported wallet extensions.\n *\n * @returns {keyof TSupportedWalletExtensions[] | undefined}\n */\n getSupportedExtensions = (): TSupportedWalletExtensions[] => {\n return this._supportedExtensions;\n };\n\n /**\n * Helper function to restore the class instance to its initial state.\n *\n * @returns {void}\n */\n disconnect = (): void => {\n this._activeWallet = undefined;\n this.api = undefined;\n this._cachedMetadata = new Map();\n window.localStorage.removeItem(WalletObserver.PERSISTENCE_CACHE_KEY);\n this.dispatch(EWalletObserverEvents.DISCONNECT);\n };\n\n /**\n * Retrieves the balance of the wallet, including metadata for each asset.\n *\n * @returns {Promise<WalletBalanceMap<AssetMetadata>>} - A promise that resolves to a map of asset amounts keyed by asset IDs.\n */\n getBalanceMap = async (): Promise<WalletBalanceMap<AssetMetadata>> => {\n if (!this.api) {\n throw new Error(\"Attempted to query balance without an API instance.\");\n }\n\n 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(id, new AssetAmount(amount, metadata.get(id)));\n }\n }\n\n this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_END, {\n balanceMap,\n });\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 val = await this.api.getNetworkId();\n this.network = val;\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 [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 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 [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 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 [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 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 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 return this._cachedMetadata;\n }\n }\n\n const newMetadata = await this._options.metadataResolver(assetIds);\n this._cachedMetadata = newMetadata;\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(id, {\n assetId: 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":[]}
@@ -55,14 +55,18 @@ var useWalletObserverState = exports.useWalletObserverState = function useWallet
55
55
  _useState14 = _slicedToArray(_useState13, 2),
56
56
  unusedAddresses = _useState14[0],
57
57
  setUnusedAddresses = _useState14[1];
58
- var _useState15 = (0, _react.useState)(false),
58
+ var _useState15 = (0, _react.useState)(),
59
59
  _useState16 = _slicedToArray(_useState15, 2),
60
- ready = _useState16[0],
61
- setReady = _useState16[1];
60
+ utxos = _useState16[0],
61
+ setUtxos = _useState16[1];
62
62
  var _useState17 = (0, _react.useState)(false),
63
63
  _useState18 = _slicedToArray(_useState17, 2),
64
- isCip45 = _useState18[0],
65
- setIsCip45 = _useState18[1];
64
+ ready = _useState18[0],
65
+ setReady = _useState18[1];
66
+ var _useState19 = (0, _react.useState)(false),
67
+ _useState20 = _slicedToArray(_useState19, 2),
68
+ isCip45 = _useState20[0],
69
+ setIsCip45 = _useState20[1];
66
70
  var syncWallet = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
67
71
  var newWallet, freshData, newAdaBalance;
68
72
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -76,7 +80,7 @@ var useWalletObserverState = exports.useWalletObserverState = function useWallet
76
80
  case 2:
77
81
  newWallet = observer.getActiveWallet();
78
82
  if (newWallet) {
79
- _context.next = 11;
83
+ _context.next = 12;
80
84
  break;
81
85
  }
82
86
  setAdaBalance(new _asset.AssetAmount(0n));
@@ -85,15 +89,16 @@ var useWalletObserverState = exports.useWalletObserverState = function useWallet
85
89
  setUnusedAddresses([]);
86
90
  setActiveWallet(undefined);
87
91
  setNetwork(undefined);
92
+ setUtxos(undefined);
88
93
  return _context.abrupt("return");
89
- case 11:
94
+ case 12:
90
95
  prevActiveWallet.current = newWallet;
91
96
  setActiveWallet(function (prevWallet) {
92
97
  return newWallet === prevWallet ? prevWallet : newWallet;
93
98
  });
94
- _context.next = 15;
99
+ _context.next = 16;
95
100
  return observer.sync();
96
- case 15:
101
+ case 16:
97
102
  freshData = _context.sent;
98
103
  newAdaBalance = freshData.balanceMap.get(_WalletObserverClass.WalletObserver.ADA_ASSET_ID);
99
104
  if (newAdaBalance) {
@@ -113,9 +118,22 @@ var useWalletObserverState = exports.useWalletObserverState = function useWallet
113
118
  setNetwork(function (prevValue) {
114
119
  return prevValue === freshData.network ? prevValue : freshData.network;
115
120
  });
121
+ setUtxos(function (prevValue) {
122
+ var _freshData$utxos;
123
+ var prevValueRep = prevValue === null || prevValue === void 0 ? void 0 : prevValue.map(function (v) {
124
+ return v.toCbor();
125
+ });
126
+ var newValueRep = (_freshData$utxos = freshData.utxos) === null || _freshData$utxos === void 0 ? void 0 : _freshData$utxos.map(function (v) {
127
+ return v.toCbor();
128
+ });
129
+ if (prevValueRep !== newValueRep) {
130
+ return freshData.utxos;
131
+ }
132
+ return prevValue;
133
+ });
116
134
  setReady(true);
117
135
  setIsCip45(newWallet.includes("p2p"));
118
- case 24:
136
+ case 26:
119
137
  case "end":
120
138
  return _context.stop();
121
139
  }
@@ -138,6 +156,8 @@ var useWalletObserverState = exports.useWalletObserverState = function useWallet
138
156
  setUnusedAddresses: setUnusedAddresses,
139
157
  usedAddresses: usedAddresses,
140
158
  setUsedAddresses: setUsedAddresses,
159
+ utxos: utxos,
160
+ setUtxos: setUtxos,
141
161
  syncWallet: syncWallet,
142
162
  ready: ready,
143
163
  setReady: setReady