@sundaeswap/wallet-lite 0.0.16 → 0.0.18

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 (70) hide show
  1. package/dist/cjs/@types/observer.js.map +1 -1
  2. package/dist/cjs/classes/WalletAssetMap.class.js +74 -0
  3. package/dist/cjs/classes/WalletAssetMap.class.js.map +1 -0
  4. package/dist/cjs/classes/WalletBalanceMap.class.js +9 -11
  5. package/dist/cjs/classes/WalletBalanceMap.class.js.map +1 -1
  6. package/dist/cjs/classes/WalletObserver.class.js +78 -36
  7. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  8. package/dist/cjs/index.js +24 -0
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +32 -11
  11. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  12. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  13. package/dist/cjs/react-components/hooks/useWalletHandles.js +26 -21
  14. package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
  15. package/dist/cjs/react-components/hooks/useWalletObserver.js +2 -1
  16. package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
  17. package/dist/cjs/utils/assets.js +35 -0
  18. package/dist/cjs/utils/assets.js.map +1 -0
  19. package/dist/esm/@types/observer.js.map +1 -1
  20. package/dist/esm/classes/WalletAssetMap.class.js +38 -0
  21. package/dist/esm/classes/WalletAssetMap.class.js.map +1 -0
  22. package/dist/esm/classes/WalletBalanceMap.class.js +5 -4
  23. package/dist/esm/classes/WalletBalanceMap.class.js.map +1 -1
  24. package/dist/esm/classes/WalletObserver.class.js +31 -5
  25. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  26. package/dist/esm/index.js +2 -0
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +14 -1
  29. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  30. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  31. package/dist/esm/react-components/hooks/useWalletHandles.js +11 -10
  32. package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
  33. package/dist/esm/react-components/hooks/useWalletObserver.js +2 -1
  34. package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
  35. package/dist/esm/utils/assets.js +28 -0
  36. package/dist/esm/utils/assets.js.map +1 -0
  37. package/dist/types/@types/observer.d.ts +5 -3
  38. package/dist/types/@types/observer.d.ts.map +1 -1
  39. package/dist/types/classes/WalletAssetMap.class.d.ts +29 -0
  40. package/dist/types/classes/WalletAssetMap.class.d.ts.map +1 -0
  41. package/dist/types/classes/WalletBalanceMap.class.d.ts +3 -2
  42. package/dist/types/classes/WalletBalanceMap.class.d.ts.map +1 -1
  43. package/dist/types/classes/WalletObserver.class.d.ts +6 -0
  44. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  45. package/dist/types/index.d.ts +2 -0
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +2 -0
  48. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  49. package/dist/types/react-components/contexts/observer/types.d.ts +3 -1
  50. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  51. package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
  52. package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
  53. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  54. package/dist/types/utils/assets.d.ts +15 -0
  55. package/dist/types/utils/assets.d.ts.map +1 -0
  56. package/package.json +1 -1
  57. package/src/@types/observer.ts +9 -3
  58. package/src/__data__/assets.ts +3 -2
  59. package/src/classes/WalletAssetMap.class.ts +40 -0
  60. package/src/classes/WalletBalanceMap.class.ts +5 -4
  61. package/src/classes/WalletObserver.class.ts +56 -11
  62. package/src/classes/__tests__/WalletBalanceMap.test.ts +2 -1
  63. package/src/classes/__tests__/WalletObserver.test.ts +10 -3
  64. package/src/index.ts +2 -0
  65. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +16 -1
  66. package/src/react-components/__tests__/__snapshots__/RenderWalletHandles.test.tsx.snap +2 -2
  67. package/src/react-components/contexts/observer/types.ts +5 -0
  68. package/src/react-components/hooks/useWalletHandles.ts +35 -29
  69. package/src/react-components/hooks/useWalletObserver.ts +2 -0
  70. package/src/utils/assets.ts +31 -0
@@ -1 +1 @@
1
- {"version":3,"file":"observer.js","names":[],"sources":["../../../src/@types/observer.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport type { DAppPeerConnect } from \"@fabianbormann/cardano-peer-connect\";\nimport type { DAppPeerConnectParameters } from \"@fabianbormann/cardano-peer-connect/dist/src/types.js\";\nimport type { 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":[]}
1
+ {"version":3,"file":"observer.js","names":[],"sources":["../../../src/@types/observer.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport type { DAppPeerConnect } from \"@fabianbormann/cardano-peer-connect\";\nimport type { DAppPeerConnectParameters } from \"@fabianbormann/cardano-peer-connect/dist/src/types.js\";\nimport type { IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { WalletAssetMap } from \"../classes/WalletAssetMap.class.js\";\nimport { WalletBalanceMap } from \"../classes/WalletBalanceMap.class.js\";\nimport { isAdaAsset, normalizeAssetIdWithDot } from \"../utils/assets.js\";\n\n/**\n * A list of support CIP-30 wallet extensions in the browser.\n */\nexport type TSupportedWalletExtensions =\n | \"nami\"\n | \"eternl\"\n | \"typhoncip30\"\n | \"ccvault\"\n | \"typhon\"\n | \"yoroi\"\n | \"flint\"\n | \"gerowallet\"\n | \"cardwallet\"\n | \"nufi\"\n | \"begin\"\n | \"lace\"\n | \"sorbet\";\n\n/**\n * Interface to describe window extension.\n */\nexport interface IWindowCip30Extension {\n apiVersion: string;\n enable: () => Promise<Cip30WalletApi>;\n icon: string;\n isEnabled: () => Promise<boolean>;\n name: TSupportedWalletExtensions;\n}\n\n/**\n * Interface to describe our expected window configuration.\n */\nexport type TWindowCardano = {\n [K in TSupportedWalletExtensions]?: IWindowCip30Extension;\n};\n\n/**\n * The metadata resolver should return a map composed of\n * the asset ID as the key, and the metadata as the value.\n */\nexport type TMetadataResolverFunc<\n T extends IAssetAmountMetadata = IAssetAmountMetadata\n> = (\n assetIds: string[],\n normalizeAssetIdFunc: typeof normalizeAssetIdWithDot,\n isAdaAssetFunc: typeof isAdaAsset\n) => Promise<Map<string, T>>;\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport interface IResolvedWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n metadataResolver: TMetadataResolverFunc<AssetMetadata>;\n persistence: boolean;\n peerConnectArgs: DAppPeerConnectParameters;\n connectTimeout: number;\n}\n\n/**\n * Options that are passed to the WalletObserver instance.\n */\nexport type TWalletObserverOptions<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> = Partial<IResolvedWalletObserverOptions<AssetMetadata>>;\n\n/**\n * Interface describing the Map type of an asset.\n */\nexport type TAssetAmountMap<\n T extends IAssetAmountMetadata = IAssetAmountMetadata\n> = WalletAssetMap<T>;\n\n/**\n * Interface describing the structure of the persistent\n * data located in local storage.\n */\nexport interface IWalletObserverSeed {\n activeWallet: TSupportedWalletExtensions;\n}\n\n/**\n * The return type for the WalletObserver.getCip45Instance\n * method.\n */\nexport type TGetPeerConnectInstance = () => {\n name: string;\n icon: string | null;\n instance: DAppPeerConnect;\n};\n\nexport interface IWalletObserverSync<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> {\n balanceMap: WalletBalanceMap<AssetMetadata>;\n usedAddresses: string[];\n unusedAddresses: string[];\n utxos?: TransactionUnspentOutput[];\n network: number;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.WalletAssetMap = void 0;
8
+ var _assets = require("../utils/assets");
9
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
10
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
11
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
13
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
14
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
15
+ function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
16
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
17
+ function _get() { return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); }
18
+ function _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t));); return t; }
19
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
20
+ function _wrapNativeSuper(t) { var r = "function" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function _wrapNativeSuper(t) { if (null === t || !_isNativeFunction(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); }
21
+ function _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; }
22
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
23
+ function _isNativeFunction(t) { try { return -1 !== Function.toString.call(t).indexOf("[native code]"); } catch (n) { return "function" == typeof t; } }
24
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
25
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
26
+ /**
27
+ * Map wrapper to enforce asset id normalization when setting and getting assets.
28
+ */
29
+ var WalletAssetMap = exports.WalletAssetMap = /*#__PURE__*/function (_Map) {
30
+ function WalletAssetMap() {
31
+ _classCallCheck(this, WalletAssetMap);
32
+ return _callSuper(this, WalletAssetMap, arguments);
33
+ }
34
+ _inherits(WalletAssetMap, _Map);
35
+ return _createClass(WalletAssetMap, [{
36
+ key: "get",
37
+ value:
38
+ /**
39
+ * Overlay to enforce asset ID normalization.
40
+ *
41
+ * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).
42
+ * @returns {AssetAmount<AssetMetadata> | undefined}
43
+ */
44
+ function get(key) {
45
+ return _get(_getPrototypeOf(WalletAssetMap.prototype), "get", this).call(this, (0, _assets.normalizeAssetIdWithDot)(key));
46
+ }
47
+
48
+ /**
49
+ * Overlay to enforce asset ID normalization.
50
+ *
51
+ * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).
52
+ * @param {AssetAmount<AssetMetadata>} key Retrieve the asset ID as a HEX string (either with dot or without).
53
+ * @returns {this}
54
+ */
55
+ }, {
56
+ key: "set",
57
+ value: function set(key, value) {
58
+ return _get(_getPrototypeOf(WalletAssetMap.prototype), "set", this).call(this, (0, _assets.normalizeAssetIdWithDot)(key), value);
59
+ }
60
+
61
+ /**
62
+ * Overlay to enforce asset ID normalization.
63
+ *
64
+ * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).
65
+ * @returns {AssetAmount<AssetMetadata> | undefined}
66
+ */
67
+ }, {
68
+ key: "has",
69
+ value: function has(key) {
70
+ return _get(_getPrototypeOf(WalletAssetMap.prototype), "has", this).call(this, (0, _assets.normalizeAssetIdWithDot)(key));
71
+ }
72
+ }]);
73
+ }( /*#__PURE__*/_wrapNativeSuper(Map));
74
+ //# sourceMappingURL=WalletAssetMap.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletAssetMap.class.js","names":["_assets","require","_classCallCheck","a","n","TypeError","_defineProperties","e","r","t","length","o","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","prototype","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","String","Number","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","apply","_assertThisInitialized","ReferenceError","_get","get","bind","p","_superPropBase","getOwnPropertyDescriptor","arguments","value","hasOwnProperty","_inherits","create","_setPrototypeOf","_wrapNativeSuper","Map","_isNativeFunction","has","set","Wrapper","_construct","push","Boolean","valueOf","Function","toString","indexOf","setPrototypeOf","__proto__","getPrototypeOf","WalletAssetMap","exports","_Map","normalizeAssetIdWithDot"],"sources":["../../../src/classes/WalletAssetMap.class.ts"],"sourcesContent":["import { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { normalizeAssetIdWithDot } from \"../utils/assets\";\n\n/**\n * Map wrapper to enforce asset id normalization when setting and getting assets.\n */\nexport class WalletAssetMap<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> extends Map<string, AssetAmount<AssetMetadata>> {\n /**\n * Overlay to enforce asset ID normalization.\n *\n * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @returns {AssetAmount<AssetMetadata> | undefined}\n */\n get(key: string): AssetAmount<AssetMetadata> | undefined {\n return super.get(normalizeAssetIdWithDot(key));\n }\n\n /**\n * Overlay to enforce asset ID normalization.\n *\n * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @param {AssetAmount<AssetMetadata>} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @returns {this}\n */\n set(key: string, value: AssetAmount<AssetMetadata>): this {\n return super.set(normalizeAssetIdWithDot(key), value);\n }\n\n /**\n * Overlay to enforce asset ID normalization.\n *\n * @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).\n * @returns {AssetAmount<AssetMetadata> | undefined}\n */\n has(key: string): boolean {\n return super.has(normalizeAssetIdWithDot(key));\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.WalletBalanceMap = void 0;
7
+ var _WalletAssetMapClass = require("./WalletAssetMap.class.js");
7
8
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
9
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
9
10
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -21,13 +22,10 @@ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Can
21
22
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
22
23
  function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
23
24
  function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
24
- function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
25
- function _wrapNativeSuper(t) { var r = "function" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function _wrapNativeSuper(t) { if (null === t || !_isNativeFunction(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); }
26
- function _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; }
27
25
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
28
- function _isNativeFunction(t) { try { return -1 !== Function.toString.call(t).indexOf("[native code]"); } catch (n) { return "function" == typeof t; } }
29
- function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
30
26
  function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
27
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
28
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
31
29
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
32
30
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
33
31
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -39,7 +37,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
39
37
  * @template AssetMetadata - Type extending IAssetAmountMetadata.
40
38
  * @extends {Map<string, AssetAmount<AssetMetadata>>}
41
39
  */
42
- var WalletBalanceMap = exports.WalletBalanceMap = /*#__PURE__*/function (_Map) {
40
+ var WalletBalanceMap = exports.WalletBalanceMap = /*#__PURE__*/function (_WalletAssetMap) {
43
41
  /**
44
42
  * Creates an instance of WalletBalanceMap.
45
43
  * @param {WalletObserver} _observer - An instance of the associated WalletObserver.
@@ -67,7 +65,7 @@ var WalletBalanceMap = exports.WalletBalanceMap = /*#__PURE__*/function (_Map) {
67
65
  * @returns {TAssetAmountMap<AssetMetadata>} A map of fungible tokens.
68
66
  */
69
67
  _defineProperty(_this, "getFungibleTokens", function () {
70
- var map = new Map();
68
+ var map = new _WalletAssetMapClass.WalletAssetMap();
71
69
  _toConsumableArray(_this.entries()).forEach(function (_ref) {
72
70
  var _ref2 = _slicedToArray(_ref, 2),
73
71
  key = _ref2[0],
@@ -85,7 +83,7 @@ var WalletBalanceMap = exports.WalletBalanceMap = /*#__PURE__*/function (_Map) {
85
83
  * @returns {TAssetAmountMap<AssetMetadata>} A map of handle assets.
86
84
  */
87
85
  _defineProperty(_this, "getHandles", function () {
88
- var map = new Map();
86
+ var map = new _WalletAssetMapClass.WalletAssetMap();
89
87
  _toConsumableArray(_this.entries()).forEach(function (_ref3) {
90
88
  var _ref4 = _slicedToArray(_ref3, 2),
91
89
  key = _ref4[0],
@@ -107,7 +105,7 @@ var WalletBalanceMap = exports.WalletBalanceMap = /*#__PURE__*/function (_Map) {
107
105
  * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.
108
106
  */
109
107
  _defineProperty(_this, "getNonFungibleTokens", function (withHandles) {
110
- var map = new Map();
108
+ var map = new _WalletAssetMapClass.WalletAssetMap();
111
109
  _toConsumableArray(_this.entries()).forEach(function (_ref5) {
112
110
  var _ref6 = _slicedToArray(_ref5, 2),
113
111
  key = _ref6[0],
@@ -134,7 +132,7 @@ var WalletBalanceMap = exports.WalletBalanceMap = /*#__PURE__*/function (_Map) {
134
132
  });
135
133
  return _this;
136
134
  }
137
- _inherits(WalletBalanceMap, _Map);
135
+ _inherits(WalletBalanceMap, _WalletAssetMap);
138
136
  return _createClass(WalletBalanceMap);
139
- }( /*#__PURE__*/_wrapNativeSuper(Map));
137
+ }(_WalletAssetMapClass.WalletAssetMap);
140
138
  //# sourceMappingURL=WalletBalanceMap.class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WalletBalanceMap.class.js","names":["WalletBalanceMap","exports","_Map","_observer","_this","_classCallCheck","_callSuper","_defineProperty","map","Map","_toConsumableArray","entries","forEach","_ref","_ref2","_slicedToArray","key","asset","metadata","decimals","set","_ref3","_ref4","isHandle","_handlePolicyIds","network","some","policyId","assetId","includes","withHandles","_ref5","_ref6","amount","getNonFungibleTokens","_inherits","_createClass","_wrapNativeSuper"],"sources":["../../../src/classes/WalletBalanceMap.class.ts"],"sourcesContent":["import { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { TAssetAmountMap } from \"../@types/observer.js\";\nimport { WalletObserver } from \"./WalletObserver.class.js\";\n\n/**\n * A custom Map instance that describes a list of assets and their metadata,\n * including the asset's wallet balance. It also includes associated helper methods\n * for convenience when querying against the map.\n *\n * @template AssetMetadata - Type extending IAssetAmountMetadata.\n * @extends {Map<string, AssetAmount<AssetMetadata>>}\n */\nexport class WalletBalanceMap<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> extends Map<string, AssetAmount<AssetMetadata>> {\n /**\n * @private\n * @type {Record<number, string[]>}\n * @description Handle policy IDs mapped by network number. We use this\n * manually since the SDK includes the necessity of an instance and we\n * don't really need all the extra stuff yet.\n */\n private _handlePolicyIds: Record<number, string[]> = {\n 0: [\"8d18d786e92776c824607fd8e193ec535c79dc61ea2405ddf3b09fe3\"],\n 1: [\"f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a\"],\n };\n\n /**\n * Creates an instance of WalletBalanceMap.\n * @param {WalletObserver} _observer - An instance of the associated WalletObserver.\n */\n constructor(private _observer: WalletObserver) {\n super();\n }\n\n /**\n * Get only fungible assets from the wallet balance map\n * and return them as a subset Map.\n *\n * @returns {TAssetAmountMap<AssetMetadata>} A map of fungible tokens.\n */\n getFungibleTokens = (): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new Map();\n [...this.entries()].forEach(([key, asset]) => {\n if (asset.metadata.decimals > 0) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Get only Handle NFTs from the wallet balance map\n * and return them as a subset Map.\n *\n * @returns {TAssetAmountMap<AssetMetadata>} A map of handle assets.\n */\n getHandles = (): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new Map();\n [...this.entries()].forEach(([key, asset]) => {\n const isHandle = this._handlePolicyIds[this._observer.network].some(\n (policyId) => asset.metadata.assetId.includes(policyId)\n );\n\n if (isHandle) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Get only non-fungible tokens (NFTs) from the wallet balance map\n * and return them as a subset.\n *\n * @param {boolean} [withHandles] - Optional parameter to include Handles. Defaults to false.\n * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.\n */\n getNonFungibleTokens = (\n withHandles?: boolean\n ): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new Map();\n [...this.entries()].forEach(([key, asset]) => {\n if (\n !withHandles &&\n this._handlePolicyIds[this._observer.network].some((policyId) =>\n asset.metadata.assetId.includes(policyId)\n )\n ) {\n return;\n }\n\n if (asset.metadata.decimals === 0 && asset.amount === 1n) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Alias for getNonFungibleTokens.\n *\n * @param {boolean} [withHandles] - Optional parameter to include Handles. Defaults to false.\n * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.\n */\n getNFTs = (withHandles?: boolean): TAssetAmountMap<AssetMetadata> =>\n this.getNonFungibleTokens(withHandles);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WalletBalanceMap.class.js","names":["_WalletAssetMapClass","require","_typeof","o","Symbol","iterator","constructor","prototype","_slicedToArray","r","e","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","l","t","n","i","u","a","f","call","next","Object","done","push","value","length","Array","isArray","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_arrayLikeToArray","toString","slice","name","from","test","_defineProperties","enumerable","configurable","writable","defineProperty","_toPropertyKey","key","_createClass","_classCallCheck","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","_defineProperty","_toPrimitive","toPrimitive","String","Number","WalletBalanceMap","exports","_WalletAssetMap","_observer","_this","map","WalletAssetMap","entries","forEach","_ref","_ref2","asset","metadata","decimals","set","_ref3","_ref4","isHandle","_handlePolicyIds","network","some","policyId","assetId","includes","withHandles","_ref5","_ref6","amount","getNonFungibleTokens"],"sources":["../../../src/classes/WalletBalanceMap.class.ts"],"sourcesContent":["import { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { TAssetAmountMap } from \"../@types/observer.js\";\nimport { WalletAssetMap } from \"./WalletAssetMap.class.js\";\nimport { WalletObserver } from \"./WalletObserver.class.js\";\n\n/**\n * A custom Map instance that describes a list of assets and their metadata,\n * including the asset's wallet balance. It also includes associated helper methods\n * for convenience when querying against the map.\n *\n * @template AssetMetadata - Type extending IAssetAmountMetadata.\n * @extends {Map<string, AssetAmount<AssetMetadata>>}\n */\nexport class WalletBalanceMap<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> extends WalletAssetMap<AssetMetadata> {\n /**\n * @private\n * @type {Record<number, string[]>}\n * @description Handle policy IDs mapped by network number. We use this\n * manually since the SDK includes the necessity of an instance and we\n * don't really need all the extra stuff yet.\n */\n private _handlePolicyIds: Record<number, string[]> = {\n 0: [\"8d18d786e92776c824607fd8e193ec535c79dc61ea2405ddf3b09fe3\"],\n 1: [\"f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a\"],\n };\n\n /**\n * Creates an instance of WalletBalanceMap.\n * @param {WalletObserver} _observer - An instance of the associated WalletObserver.\n */\n constructor(private _observer: WalletObserver) {\n super();\n }\n\n /**\n * Get only fungible assets from the wallet balance map\n * and return them as a subset Map.\n *\n * @returns {TAssetAmountMap<AssetMetadata>} A map of fungible tokens.\n */\n getFungibleTokens = (): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n if (asset.metadata.decimals > 0) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Get only Handle NFTs from the wallet balance map\n * and return them as a subset Map.\n *\n * @returns {TAssetAmountMap<AssetMetadata>} A map of handle assets.\n */\n getHandles = (): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n const isHandle = this._handlePolicyIds[this._observer.network].some(\n (policyId) => asset.metadata.assetId.includes(policyId)\n );\n\n if (isHandle) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Get only non-fungible tokens (NFTs) from the wallet balance map\n * and return them as a subset.\n *\n * @param {boolean} [withHandles] - Optional parameter to include Handles. Defaults to false.\n * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.\n */\n getNonFungibleTokens = (\n withHandles?: boolean\n ): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n if (\n !withHandles &&\n this._handlePolicyIds[this._observer.network].some((policyId) =>\n asset.metadata.assetId.includes(policyId)\n )\n ) {\n return;\n }\n\n if (asset.metadata.decimals === 0 && asset.amount === 1n) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Alias for getNonFungibleTokens.\n *\n * @param {boolean} [withHandles] - Optional parameter to include Handles. Defaults to false.\n * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.\n */\n getNFTs = (withHandles?: boolean): TAssetAmountMap<AssetMetadata> =>\n this.getNonFungibleTokens(withHandles);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.WalletObserver = void 0;
7
7
  var _asset = require("@sundaeswap/asset");
8
8
  var _merge = _interopRequireDefault(require("lodash/merge.js"));
9
9
  var _events = require("../@types/events.js");
10
+ var _assets = require("../utils/assets.js");
10
11
  var _getLibs = require("../utils/getLibs.js");
11
12
  var _WalletBalanceMapClass = require("./WalletBalanceMap.class.js");
12
13
  var _WalletObserverEvent2 = require("./WalletObserverEvent.js");
@@ -89,7 +90,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
89
90
  * @returns {Promise<IWalletObserverSync>} - A promise that resolves to the wallet sync data.
90
91
  */
91
92
  _defineProperty(_this, "sync", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
92
- var newNetwork, _yield$Promise$all, _yield$Promise$all2, newBalanceMap, newUsedAddresses, newUnusedAddresses, newOutputs, result;
93
+ var newNetwork, _yield$Promise$all, _yield$Promise$all2, newBalanceMap, newUsedAddresses, newUnusedAddresses, newOutputs, newCollateral, result;
93
94
  return _regeneratorRuntime().wrap(function _callee$(_context) {
94
95
  while (1) switch (_context.prev = _context.next) {
95
96
  case 0:
@@ -129,25 +130,27 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
129
130
  throw _context.t1;
130
131
  case 25:
131
132
  _context.next = 27;
132
- return Promise.all([_this.getBalanceMap(), _this.getUsedAddresses(), _this.getUnusedAddresses(), _this.getUtxos()]);
133
+ return Promise.all([_this.getBalanceMap(), _this.getUsedAddresses(), _this.getUnusedAddresses(), _this.getUtxos(), _this.getCollateral()]);
133
134
  case 27:
134
135
  _yield$Promise$all = _context.sent;
135
- _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 4);
136
+ _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 5);
136
137
  newBalanceMap = _yield$Promise$all2[0];
137
138
  newUsedAddresses = _yield$Promise$all2[1];
138
139
  newUnusedAddresses = _yield$Promise$all2[2];
139
140
  newOutputs = _yield$Promise$all2[3];
141
+ newCollateral = _yield$Promise$all2[4];
140
142
  result = {
141
143
  balanceMap: newBalanceMap,
142
144
  usedAddresses: newUsedAddresses,
143
145
  unusedAddresses: newUnusedAddresses,
144
146
  utxos: newOutputs,
147
+ collateral: newCollateral,
145
148
  network: newNetwork
146
149
  };
147
150
  _this.dispatch(_events.EWalletObserverEvents.SYNCING_WALLET_END, result);
148
151
  _this._performingSync = false;
149
152
  return _context.abrupt("return", result);
150
- case 37:
153
+ case 38:
151
154
  case "end":
152
155
  return _context.stop();
153
156
  }
@@ -410,7 +413,7 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
410
413
  try {
411
414
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
412
415
  _step$value = _slicedToArray(_step.value, 2), id = _step$value[0], amount = _step$value[1];
413
- balanceMap.set(id, new _asset.AssetAmount(amount, metadata.get(id)));
416
+ balanceMap.set(id, new _asset.AssetAmount(amount, metadata.get((0, _assets.normalizeAssetIdWithDot)(id))));
414
417
  }
415
418
  } catch (err) {
416
419
  _iterator.e(err);
@@ -563,6 +566,45 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
563
566
  }
564
567
  }, _callee9);
565
568
  })));
569
+ /**
570
+ * Gets a list of wallet UTXOs suitable for collateral.
571
+ *
572
+ * @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.
573
+ */
574
+ _defineProperty(_this, "getCollateral", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
575
+ var _yield$Promise$all11, _yield$Promise$all12, cbor, Serialization, typedHex, data;
576
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
577
+ while (1) switch (_context10.prev = _context10.next) {
578
+ case 0:
579
+ if (_this.api) {
580
+ _context10.next = 2;
581
+ break;
582
+ }
583
+ throw new Error("Attempted to query UTXOs without an API instance.");
584
+ case 2:
585
+ _context10.next = 4;
586
+ return Promise.all([_this.api.getCollateral(), (0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
587
+ case 4:
588
+ _yield$Promise$all11 = _context10.sent;
589
+ _yield$Promise$all12 = _slicedToArray(_yield$Promise$all11, 3);
590
+ cbor = _yield$Promise$all12[0];
591
+ Serialization = _yield$Promise$all12[1].Serialization;
592
+ typedHex = _yield$Promise$all12[2].typedHex;
593
+ data = cbor === null || cbor === void 0 ? void 0 : cbor.map(function (val) {
594
+ var txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
595
+
596
+ // These methods must be bound to their initial creation instance.
597
+ txOutput.input = txOutput.input.bind(txOutput);
598
+ txOutput.output = txOutput.output.bind(txOutput);
599
+ return txOutput;
600
+ });
601
+ return _context10.abrupt("return", data);
602
+ case 11:
603
+ case "end":
604
+ return _context10.stop();
605
+ }
606
+ }, _callee10);
607
+ })));
566
608
  /**
567
609
  * Resolves metadata for the given asset IDs, using a cached version if available.
568
610
  *
@@ -571,13 +613,13 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
571
613
  * @returns {Promise<Map<string, AssetMetadata>>} - A promise that resolves to a map of asset metadata.
572
614
  */
573
615
  _defineProperty(_this, "__metadataResolverWithCache", /*#__PURE__*/function () {
574
- var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(assetIds) {
616
+ var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(assetIds) {
575
617
  var cachedKeys, inputKeys, newMetadata;
576
- return _regeneratorRuntime().wrap(function _callee10$(_context10) {
577
- while (1) switch (_context10.prev = _context10.next) {
618
+ return _regeneratorRuntime().wrap(function _callee11$(_context11) {
619
+ while (1) switch (_context11.prev = _context11.next) {
578
620
  case 0:
579
621
  if (!_this._cachedMetadata) {
580
- _context10.next = 5;
622
+ _context11.next = 5;
581
623
  break;
582
624
  }
583
625
  cachedKeys = new Set(_this._cachedMetadata.keys());
@@ -585,25 +627,25 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
585
627
  if (!(cachedKeys.size === inputKeys.size && _toConsumableArray(cachedKeys).every(function (key) {
586
628
  return inputKeys.has(key);
587
629
  }))) {
588
- _context10.next = 5;
630
+ _context11.next = 5;
589
631
  break;
590
632
  }
591
- return _context10.abrupt("return", _this._cachedMetadata);
633
+ return _context11.abrupt("return", _this._cachedMetadata);
592
634
  case 5:
593
- _context10.next = 7;
594
- return _this._options.metadataResolver(assetIds);
635
+ _context11.next = 7;
636
+ return _this._options.metadataResolver(assetIds.map(_assets.normalizeAssetIdWithDot), _assets.normalizeAssetIdWithDot, _assets.isAdaAsset);
595
637
  case 7:
596
- newMetadata = _context10.sent;
638
+ newMetadata = _context11.sent;
597
639
  _this._cachedMetadata = newMetadata;
598
- return _context10.abrupt("return", newMetadata);
640
+ return _context11.abrupt("return", newMetadata);
599
641
  case 10:
600
642
  case "end":
601
- return _context10.stop();
643
+ return _context11.stop();
602
644
  }
603
- }, _callee10);
645
+ }, _callee11);
604
646
  }));
605
647
  return function (_x3) {
606
- return _ref10.apply(this, arguments);
648
+ return _ref11.apply(this, arguments);
607
649
  };
608
650
  }());
609
651
  /**
@@ -612,27 +654,27 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
612
654
  * @type {TMetadataResolverFunc<AssetMetadata>}
613
655
  */
614
656
  _defineProperty(_this, "fallbackMetadataResolver", /*#__PURE__*/function () {
615
- var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(assetIds) {
657
+ var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(assetIds) {
616
658
  var map;
617
- return _regeneratorRuntime().wrap(function _callee11$(_context11) {
618
- while (1) switch (_context11.prev = _context11.next) {
659
+ return _regeneratorRuntime().wrap(function _callee12$(_context12) {
660
+ while (1) switch (_context12.prev = _context12.next) {
619
661
  case 0:
620
662
  map = new Map();
621
663
  assetIds.forEach(function (id) {
622
- return map.set(id, {
623
- assetId: id,
664
+ return map.set((0, _assets.normalizeAssetIdWithDot)(id), {
665
+ assetId: (0, _assets.normalizeAssetIdWithDot)(id),
624
666
  decimals: 6
625
667
  });
626
668
  });
627
- return _context11.abrupt("return", map);
669
+ return _context12.abrupt("return", map);
628
670
  case 3:
629
671
  case "end":
630
- return _context11.stop();
672
+ return _context12.stop();
631
673
  }
632
- }, _callee11);
674
+ }, _callee12);
633
675
  }));
634
676
  return function (_x4) {
635
- return _ref11.apply(this, arguments);
677
+ return _ref12.apply(this, arguments);
636
678
  };
637
679
  }());
638
680
  _this._options = (0, _merge["default"])({
@@ -698,25 +740,25 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
698
740
  * @returns {Promise<WalletObserverUtils>} Resolves to a WalletObserverUtils class.
699
741
  */
700
742
  function () {
701
- var _getUtils = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {
702
- return _regeneratorRuntime().wrap(function _callee12$(_context12) {
703
- while (1) switch (_context12.prev = _context12.next) {
743
+ var _getUtils = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {
744
+ return _regeneratorRuntime().wrap(function _callee13$(_context13) {
745
+ while (1) switch (_context13.prev = _context13.next) {
704
746
  case 0:
705
747
  if (this.utils) {
706
- _context12.next = 4;
748
+ _context13.next = 4;
707
749
  break;
708
750
  }
709
- _context12.next = 3;
751
+ _context13.next = 3;
710
752
  return _WalletObserverUtilsClass.WalletObserverUtils["new"](this.network);
711
753
  case 3:
712
- this.utils = _context12.sent;
754
+ this.utils = _context13.sent;
713
755
  case 4:
714
- return _context12.abrupt("return", this.utils);
756
+ return _context13.abrupt("return", this.utils);
715
757
  case 5:
716
758
  case "end":
717
- return _context12.stop();
759
+ return _context13.stop();
718
760
  }
719
- }, _callee12, this);
761
+ }, _callee13, this);
720
762
  }));
721
763
  function getUtils() {
722
764
  return _getUtils.apply(this, arguments);