@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.
- package/dist/cjs/@types/observer.js.map +1 -1
- package/dist/cjs/classes/WalletAssetMap.class.js +74 -0
- package/dist/cjs/classes/WalletAssetMap.class.js.map +1 -0
- package/dist/cjs/classes/WalletBalanceMap.class.js +9 -11
- package/dist/cjs/classes/WalletBalanceMap.class.js.map +1 -1
- package/dist/cjs/classes/WalletObserver.class.js +78 -36
- package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
- package/dist/cjs/index.js +24 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +32 -11
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletHandles.js +26 -21
- package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
- package/dist/cjs/react-components/hooks/useWalletObserver.js +2 -1
- package/dist/cjs/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/cjs/utils/assets.js +35 -0
- package/dist/cjs/utils/assets.js.map +1 -0
- package/dist/esm/@types/observer.js.map +1 -1
- package/dist/esm/classes/WalletAssetMap.class.js +38 -0
- package/dist/esm/classes/WalletAssetMap.class.js.map +1 -0
- package/dist/esm/classes/WalletBalanceMap.class.js +5 -4
- package/dist/esm/classes/WalletBalanceMap.class.js.map +1 -1
- package/dist/esm/classes/WalletObserver.class.js +31 -5
- package/dist/esm/classes/WalletObserver.class.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +14 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
- package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletHandles.js +11 -10
- package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletObserver.js +2 -1
- package/dist/esm/react-components/hooks/useWalletObserver.js.map +1 -1
- package/dist/esm/utils/assets.js +28 -0
- package/dist/esm/utils/assets.js.map +1 -0
- package/dist/types/@types/observer.d.ts +5 -3
- package/dist/types/@types/observer.d.ts.map +1 -1
- package/dist/types/classes/WalletAssetMap.class.d.ts +29 -0
- package/dist/types/classes/WalletAssetMap.class.d.ts.map +1 -0
- package/dist/types/classes/WalletBalanceMap.class.d.ts +3 -2
- package/dist/types/classes/WalletBalanceMap.class.d.ts.map +1 -1
- package/dist/types/classes/WalletObserver.class.d.ts +6 -0
- package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +2 -0
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
- package/dist/types/react-components/contexts/observer/types.d.ts +3 -1
- package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
- package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
- package/dist/types/react-components/hooks/useWalletObserver.d.ts.map +1 -1
- package/dist/types/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/utils/assets.d.ts +15 -0
- package/dist/types/utils/assets.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/@types/observer.ts +9 -3
- package/src/__data__/assets.ts +3 -2
- package/src/classes/WalletAssetMap.class.ts +40 -0
- package/src/classes/WalletBalanceMap.class.ts +5 -4
- package/src/classes/WalletObserver.class.ts +56 -11
- package/src/classes/__tests__/WalletBalanceMap.test.ts +2 -1
- package/src/classes/__tests__/WalletObserver.test.ts +10 -3
- package/src/index.ts +2 -0
- package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +16 -1
- package/src/react-components/__tests__/__snapshots__/RenderWalletHandles.test.tsx.snap +2 -2
- package/src/react-components/contexts/observer/types.ts +5 -0
- package/src/react-components/hooks/useWalletHandles.ts +35 -29
- package/src/react-components/hooks/useWalletObserver.ts +2 -0
- package/src/utils/assets.ts +31 -0
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.useWalletHandles = void 0;
|
|
8
8
|
var _react = require("react");
|
|
9
|
+
var _WalletAssetMapClass = require("../../classes/WalletAssetMap.class.js");
|
|
10
|
+
var _assets = require("../../utils/assets.js");
|
|
9
11
|
var _useWalletObserver = require("./useWalletObserver.js");
|
|
10
12
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
11
13
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
@@ -34,7 +36,7 @@ var useWalletHandles = exports.useWalletHandles = function useWalletHandles() {
|
|
|
34
36
|
_useState2 = _slicedToArray(_useState, 2),
|
|
35
37
|
loadingHandles = _useState2[0],
|
|
36
38
|
setLoadingHandles = _useState2[1];
|
|
37
|
-
var _useState3 = (0, _react.useState)(new
|
|
39
|
+
var _useState3 = (0, _react.useState)(new _WalletAssetMapClass.WalletAssetMap()),
|
|
38
40
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
39
41
|
handles = _useState4[0],
|
|
40
42
|
setHandles = _useState4[1];
|
|
@@ -47,20 +49,19 @@ var useWalletHandles = exports.useWalletHandles = function useWalletHandles() {
|
|
|
47
49
|
while (1) switch (_context.prev = _context.next) {
|
|
48
50
|
case 0:
|
|
49
51
|
// Make a copy of our wallet map.
|
|
50
|
-
walletHandles = new
|
|
52
|
+
walletHandles = new _WalletAssetMapClass.WalletAssetMap(_toConsumableArray(state.balance.getHandles()));
|
|
51
53
|
if (!(walletHandles.size === 0)) {
|
|
52
|
-
_context.next =
|
|
54
|
+
_context.next = 3;
|
|
53
55
|
break;
|
|
54
56
|
}
|
|
55
|
-
setLoadingHandles(false);
|
|
56
57
|
return _context.abrupt("return", walletHandles);
|
|
57
|
-
case
|
|
58
|
-
_context.prev =
|
|
59
|
-
_context.next =
|
|
58
|
+
case 3:
|
|
59
|
+
_context.prev = 3;
|
|
60
|
+
_context.next = 6;
|
|
60
61
|
return Promise.resolve().then(function () {
|
|
61
62
|
return _interopRequireWildcard(require("@koralabs/adahandle-sdk"));
|
|
62
63
|
});
|
|
63
|
-
case
|
|
64
|
+
case 6:
|
|
64
65
|
_yield$import = _context.sent;
|
|
65
66
|
HandleClient = _yield$import["default"];
|
|
66
67
|
HandleClientContext = _yield$import.HandleClientContext;
|
|
@@ -71,15 +72,15 @@ var useWalletHandles = exports.useWalletHandles = function useWalletHandles() {
|
|
|
71
72
|
provider: new KoraLabsProvider(context)
|
|
72
73
|
}); // Restore once SDK updated
|
|
73
74
|
walletHandlesWithDataArray = _toConsumableArray(walletHandles.entries());
|
|
74
|
-
_context.next =
|
|
75
|
+
_context.next = 15;
|
|
75
76
|
return sdk.provider().getAllDataBatch(walletHandlesWithDataArray.map(function (_ref2) {
|
|
76
77
|
var _ref3 = _slicedToArray(_ref2, 1),
|
|
77
78
|
key = _ref3[0];
|
|
78
79
|
return {
|
|
79
|
-
value: key.
|
|
80
|
+
value: key.split(".")[1]
|
|
80
81
|
};
|
|
81
82
|
}));
|
|
82
|
-
case
|
|
83
|
+
case 15:
|
|
83
84
|
walletHandleDataArray = _context.sent;
|
|
84
85
|
walletHandlesWithDataArray.forEach(function (_ref4) {
|
|
85
86
|
var _ref5 = _slicedToArray(_ref4, 2),
|
|
@@ -87,25 +88,24 @@ var useWalletHandles = exports.useWalletHandles = function useWalletHandles() {
|
|
|
87
88
|
asset = _ref5[1];
|
|
88
89
|
var matchingData = walletHandleDataArray.find(function (_ref6) {
|
|
89
90
|
var hex = _ref6.hex;
|
|
90
|
-
return hex === key.
|
|
91
|
+
return hex === key.split(".")[1];
|
|
91
92
|
});
|
|
92
|
-
walletHandles.set(key, asset.withMetadata(_objectSpread(_objectSpread(_objectSpread({}, matchingData), asset.metadata), {}, {
|
|
93
|
+
walletHandles.set((0, _assets.normalizeAssetIdWithDot)(key), asset.withMetadata(_objectSpread(_objectSpread(_objectSpread({}, matchingData), asset.metadata), {}, {
|
|
94
|
+
assetId: (0, _assets.normalizeAssetIdWithDot)(asset.metadata.assetId),
|
|
93
95
|
decimals: 0
|
|
94
96
|
})).withAmount(1n));
|
|
95
97
|
});
|
|
96
|
-
setLoadingHandles(false);
|
|
97
98
|
return _context.abrupt("return", walletHandles);
|
|
98
|
-
case
|
|
99
|
-
_context.prev =
|
|
100
|
-
_context.t0 = _context["catch"](
|
|
101
|
-
setLoadingHandles(false);
|
|
99
|
+
case 20:
|
|
100
|
+
_context.prev = 20;
|
|
101
|
+
_context.t0 = _context["catch"](3);
|
|
102
102
|
console.log(_context.t0);
|
|
103
103
|
return _context.abrupt("return", walletHandles);
|
|
104
|
-
case
|
|
104
|
+
case 24:
|
|
105
105
|
case "end":
|
|
106
106
|
return _context.stop();
|
|
107
107
|
}
|
|
108
|
-
}, _callee, null, [[
|
|
108
|
+
}, _callee, null, [[3, 20]]);
|
|
109
109
|
})), [state.balance, setLoadingHandles]);
|
|
110
110
|
(0, _react.useEffect)(function () {
|
|
111
111
|
syncHandles().then(function (newHandles) {
|
|
@@ -137,14 +137,19 @@ var useWalletHandles = exports.useWalletHandles = function useWalletHandles() {
|
|
|
137
137
|
}
|
|
138
138
|
return newHandles;
|
|
139
139
|
});
|
|
140
|
+
}).then(function () {
|
|
141
|
+
return setLoadingHandles(function (prevValue) {
|
|
142
|
+
return !prevValue;
|
|
143
|
+
});
|
|
140
144
|
});
|
|
141
|
-
}, [memoizedHandleDep, syncHandles, setHandles]);
|
|
145
|
+
}, [memoizedHandleDep, syncHandles, setHandles, setLoadingHandles]);
|
|
142
146
|
var data = (0, _react.useMemo)(function () {
|
|
143
147
|
return {
|
|
144
148
|
handles: handles,
|
|
145
149
|
loadingHandles: loadingHandles
|
|
146
150
|
};
|
|
147
151
|
}, [handles, loadingHandles]);
|
|
152
|
+
console.log(handles, loadingHandles);
|
|
148
153
|
return data;
|
|
149
154
|
};
|
|
150
155
|
//# sourceMappingURL=useWalletHandles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletHandles.js","names":["_react","require","_useWalletObserver","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_regeneratorRuntime","Object","prototype","hasOwnProperty","defineProperty","i","c","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","_getRequireWildcardCache","WeakMap","_interopRequireWildcard","__esModule","has","get","set","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","test","useWalletHandles","exports","state","useWalletObserver","_useState","useState","_useState2","loadingHandles","setLoadingHandles","_useState3","Map","_useState4","handles","setHandles","memoizedHandleDep","useMemo","balance","getHandles","syncHandles","useCallback","_callee","walletHandles","_yield$import","HandleClient","HandleClientContext","KoraLabsProvider","context","sdk","walletHandlesWithDataArray","walletHandleDataArray","_callee$","_context","size","network","MAINNET","PREVIEW","provider","entries","getAllDataBatch","map","_ref2","_ref3","key","_ref4","_ref5","asset","matchingData","find","_ref6","hex","withMetadata","metadata","decimals","withAmount","t0","console","log","useEffect","newHandles","prevHandles","handleMetadataChanged","_iterator","_step","_prevHandles$get","_step$value","val","amount","err","data"],"sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { IHandle } from \"@koralabs/adahandle-sdk\";\nimport { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { TAssetAmountMap } from \"../../@types/observer.js\";\nimport { THandleMetadata } from \"../contexts/observer/types.js\";\nimport { useWalletObserver } from \"./useWalletObserver.js\";\n\nexport const useWalletHandles = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>() => {\n const state = useWalletObserver<THandleMetadata<AssetMetadata>>();\n const [loadingHandles, setLoadingHandles] = useState(true);\n const [handles, setHandles] = useState<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(new Map());\n const memoizedHandleDep = useMemo(\n () => [...state.balance.getHandles().keys()],\n [state.balance]\n );\n\n const syncHandles = useCallback<\n () => Promise<TAssetAmountMap<THandleMetadata<AssetMetadata>>>\n >(async () => {\n // Make a copy of our wallet map.\n const walletHandles: TAssetAmountMap<THandleMetadata<AssetMetadata>> =\n new Map([...state.balance.getHandles()]);\n\n if (walletHandles.size === 0) {\n setLoadingHandles(false);\n return walletHandles;\n }\n\n try {\n const {\n default: HandleClient,\n HandleClientContext,\n KoraLabsProvider,\n } = await import(\"@koralabs/adahandle-sdk\");\n const context =\n state.network === 1\n ? HandleClientContext.MAINNET\n : HandleClientContext.PREVIEW;\n\n // @ts-ignore Type isn't exported from default.\n const sdk = new HandleClient({\n context,\n provider: new KoraLabsProvider(context),\n });\n\n // Restore once SDK updated\n const walletHandlesWithDataArray = [...walletHandles.entries()];\n const walletHandleDataArray: IHandle[] = await sdk\n .provider()\n .getAllDataBatch(\n walletHandlesWithDataArray.map(([key]) => ({ value: key.slice(56) }))\n );\n\n walletHandlesWithDataArray.forEach(([key, asset]) => {\n const matchingData = walletHandleDataArray.find(\n ({ hex }) => hex === key.slice(56)\n ) as IHandle;\n\n walletHandles.set(\n key,\n asset\n .withMetadata({\n ...matchingData,\n ...asset.metadata,\n decimals: 0,\n })\n .withAmount(1n)\n );\n });\n\n setLoadingHandles(false);\n return walletHandles;\n } catch (e) {\n setLoadingHandles(false);\n console.log(e);\n return walletHandles;\n }\n // We only want to update the callback if the Handle keys change.\n }, [state.balance, setLoadingHandles]);\n\n useEffect(() => {\n syncHandles().then((newHandles) => {\n setHandles((prevHandles) => {\n let handleMetadataChanged = false;\n\n if (newHandles.size !== prevHandles?.size) {\n handleMetadataChanged = true;\n } else {\n for (const [key, val] of newHandles) {\n if (\n !prevHandles.has(key) ||\n prevHandles.get(key)?.amount !== val?.amount\n ) {\n handleMetadataChanged = true;\n }\n }\n }\n\n if (!handleMetadataChanged) {\n return prevHandles;\n }\n\n return newHandles;\n });\n });\n }, [memoizedHandleDep, syncHandles, setHandles]);\n\n const data = useMemo(\n () => ({\n handles,\n loadingHandles,\n }),\n [handles, loadingHandles]\n );\n\n return data;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useWalletHandles.js","names":["_react","require","_WalletAssetMapClass","_assets","_useWalletObserver","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_regeneratorRuntime","Object","prototype","hasOwnProperty","defineProperty","i","c","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","_getRequireWildcardCache","WeakMap","_interopRequireWildcard","__esModule","has","get","set","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","test","useWalletHandles","exports","state","useWalletObserver","_useState","useState","_useState2","loadingHandles","setLoadingHandles","_useState3","WalletAssetMap","_useState4","handles","setHandles","memoizedHandleDep","useMemo","balance","getHandles","syncHandles","useCallback","_callee","walletHandles","_yield$import","HandleClient","HandleClientContext","KoraLabsProvider","context","sdk","walletHandlesWithDataArray","walletHandleDataArray","_callee$","_context","size","network","MAINNET","PREVIEW","provider","entries","getAllDataBatch","map","_ref2","_ref3","key","split","_ref4","_ref5","asset","matchingData","find","_ref6","hex","normalizeAssetIdWithDot","withMetadata","metadata","assetId","decimals","withAmount","t0","console","log","useEffect","newHandles","prevHandles","handleMetadataChanged","_iterator","_step","_prevHandles$get","_step$value","val","amount","err","prevValue","data"],"sources":["../../../../src/react-components/hooks/useWalletHandles.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { IHandle } from \"@koralabs/adahandle-sdk\";\nimport { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { TAssetAmountMap } from \"../../@types/observer.js\";\nimport { WalletAssetMap } from \"../../classes/WalletAssetMap.class.js\";\nimport { normalizeAssetIdWithDot } from \"../../utils/assets.js\";\nimport { THandleMetadata } from \"../contexts/observer/types.js\";\nimport { useWalletObserver } from \"./useWalletObserver.js\";\n\nexport const useWalletHandles = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>() => {\n const state = useWalletObserver<THandleMetadata<AssetMetadata>>();\n const [loadingHandles, setLoadingHandles] = useState(true);\n const [handles, setHandles] = useState<\n TAssetAmountMap<THandleMetadata<AssetMetadata>>\n >(new WalletAssetMap());\n const memoizedHandleDep = useMemo(\n () => [...state.balance.getHandles().keys()],\n [state.balance]\n );\n\n const syncHandles = useCallback<\n () => Promise<TAssetAmountMap<THandleMetadata<AssetMetadata>>>\n >(async () => {\n // Make a copy of our wallet map.\n const walletHandles: TAssetAmountMap<THandleMetadata<AssetMetadata>> =\n new WalletAssetMap([...state.balance.getHandles()]);\n\n if (walletHandles.size === 0) {\n return walletHandles;\n }\n\n try {\n const {\n default: HandleClient,\n HandleClientContext,\n KoraLabsProvider,\n } = await import(\"@koralabs/adahandle-sdk\");\n const context =\n state.network === 1\n ? HandleClientContext.MAINNET\n : HandleClientContext.PREVIEW;\n\n // @ts-ignore Type isn't exported from default.\n const sdk = new HandleClient({\n context,\n provider: new KoraLabsProvider(context),\n });\n\n // Restore once SDK updated\n const walletHandlesWithDataArray = [...walletHandles.entries()];\n const walletHandleDataArray: IHandle[] = await sdk\n .provider()\n .getAllDataBatch(\n walletHandlesWithDataArray.map(([key]) => ({\n value: key.split(\".\")[1],\n }))\n );\n\n walletHandlesWithDataArray.forEach(([key, asset]) => {\n const matchingData = walletHandleDataArray.find(\n ({ hex }) => hex === key.split(\".\")[1]\n ) as IHandle;\n\n walletHandles.set(\n normalizeAssetIdWithDot(key),\n asset\n .withMetadata({\n ...matchingData,\n ...asset.metadata,\n assetId: normalizeAssetIdWithDot(asset.metadata.assetId),\n decimals: 0,\n })\n .withAmount(1n)\n );\n });\n\n return walletHandles;\n } catch (e) {\n console.log(e);\n return walletHandles;\n }\n // We only want to update the callback if the Handle keys change.\n }, [state.balance, setLoadingHandles]);\n\n useEffect(() => {\n syncHandles()\n .then((newHandles) => {\n setHandles((prevHandles) => {\n let handleMetadataChanged = false;\n\n if (newHandles.size !== prevHandles?.size) {\n handleMetadataChanged = true;\n } else {\n for (const [key, val] of newHandles) {\n if (\n !prevHandles.has(key) ||\n prevHandles.get(key)?.amount !== val?.amount\n ) {\n handleMetadataChanged = true;\n }\n }\n }\n\n if (!handleMetadataChanged) {\n return prevHandles;\n }\n\n return newHandles;\n });\n })\n .then(() => setLoadingHandles((prevValue) => !prevValue));\n }, [memoizedHandleDep, syncHandles, setHandles, setLoadingHandles]);\n\n const data = useMemo(\n () => ({\n handles,\n loadingHandles,\n }),\n [handles, loadingHandles]\n );\n\n console.log(handles, loadingHandles);\n\n return data;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,kBAAA,GAAAH,OAAA;AAA2D,SAAAI,2BAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,yBAAAC,MAAA,IAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,CAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,CAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,CAAA,IAAAD,CAAA,uBAAAA,CAAA,CAAAQ,MAAA,IAAAN,CAAA,KAAAF,CAAA,GAAAE,CAAA,OAAAO,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,WAAAH,EAAA,IAAAT,CAAA,CAAAQ,MAAA,KAAAK,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAAd,CAAA,CAAAS,EAAA,UAAAR,CAAA,WAAAA,EAAAD,CAAA,UAAAA,CAAA,KAAAe,CAAA,EAAAL,CAAA,gBAAAM,SAAA,iJAAAC,CAAA,EAAAC,CAAA,OAAAC,CAAA,gBAAAR,CAAA,WAAAA,EAAA,IAAAT,CAAA,GAAAA,CAAA,CAAAkB,IAAA,CAAApB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAZ,CAAA,GAAAE,CAAA,CAAAmB,IAAA,WAAAH,CAAA,GAAAlB,CAAA,CAAAa,IAAA,EAAAb,CAAA,KAAAC,CAAA,WAAAA,EAAAD,CAAA,IAAAmB,CAAA,OAAAF,CAAA,GAAAjB,CAAA,KAAAe,CAAA,WAAAA,EAAA,UAAAG,CAAA,YAAAhB,CAAA,cAAAA,CAAA,8BAAAiB,CAAA,QAAAF,CAAA;AAAA,SAAAK,oBAAA,kBAP3D,qJAAAA,mBAAA,YAAAA,oBAAA,WAAArB,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAD,CAAA,GAAAuB,MAAA,CAAAC,SAAA,EAAAZ,CAAA,GAAAZ,CAAA,CAAAyB,cAAA,EAAAR,CAAA,GAAAM,MAAA,CAAAG,cAAA,cAAAxB,CAAA,EAAAD,CAAA,EAAAD,CAAA,IAAAE,CAAA,CAAAD,CAAA,IAAAD,CAAA,CAAAc,KAAA,KAAAa,CAAA,wBAAAxB,MAAA,GAAAA,MAAA,OAAAe,CAAA,GAAAS,CAAA,CAAAvB,QAAA,kBAAAwB,CAAA,GAAAD,CAAA,CAAAE,aAAA,uBAAAV,CAAA,GAAAQ,CAAA,CAAAG,WAAA,8BAAAC,OAAA7B,CAAA,EAAAD,CAAA,EAAAD,CAAA,WAAAuB,MAAA,CAAAG,cAAA,CAAAxB,CAAA,EAAAD,CAAA,IAAAa,KAAA,EAAAd,CAAA,EAAAgC,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAAhC,CAAA,CAAAD,CAAA,WAAA8B,MAAA,mBAAA7B,CAAA,IAAA6B,MAAA,YAAAA,OAAA7B,CAAA,EAAAD,CAAA,EAAAD,CAAA,WAAAE,CAAA,CAAAD,CAAA,IAAAD,CAAA,gBAAAmC,KAAAjC,CAAA,EAAAD,CAAA,EAAAD,CAAA,EAAAY,CAAA,QAAAe,CAAA,GAAA1B,CAAA,IAAAA,CAAA,CAAAuB,SAAA,YAAAY,SAAA,GAAAnC,CAAA,GAAAmC,SAAA,EAAAlB,CAAA,GAAAK,MAAA,CAAAc,MAAA,CAAAV,CAAA,CAAAH,SAAA,GAAAI,CAAA,OAAAU,OAAA,CAAA1B,CAAA,gBAAAK,CAAA,CAAAC,CAAA,eAAAJ,KAAA,EAAAyB,gBAAA,CAAArC,CAAA,EAAAF,CAAA,EAAA4B,CAAA,MAAAV,CAAA,aAAAsB,SAAAtC,CAAA,EAAAD,CAAA,EAAAD,CAAA,mBAAAyC,IAAA,YAAAC,GAAA,EAAAxC,CAAA,CAAAkB,IAAA,CAAAnB,CAAA,EAAAD,CAAA,cAAAE,CAAA,aAAAuC,IAAA,WAAAC,GAAA,EAAAxC,CAAA,QAAAD,CAAA,CAAAkC,IAAA,GAAAA,IAAA,MAAAQ,CAAA,qBAAAC,CAAA,qBAAA7B,CAAA,gBAAAJ,CAAA,gBAAAkC,CAAA,gBAAAT,UAAA,cAAAU,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAAjB,MAAA,CAAAiB,CAAA,EAAA9B,CAAA,qCAAA+B,CAAA,GAAA1B,MAAA,CAAA2B,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAnD,CAAA,IAAAY,CAAA,CAAAQ,IAAA,CAAA+B,CAAA,EAAAjC,CAAA,MAAA8B,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAAvB,SAAA,GAAAY,SAAA,CAAAZ,SAAA,GAAAD,MAAA,CAAAc,MAAA,CAAAW,CAAA,YAAAM,sBAAApD,CAAA,gCAAAqD,OAAA,WAAAtD,CAAA,IAAA8B,MAAA,CAAA7B,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAAsD,OAAA,CAAAvD,CAAA,EAAAC,CAAA,sBAAAuD,cAAAvD,CAAA,EAAAD,CAAA,aAAAyD,OAAA1D,CAAA,EAAAiB,CAAA,EAAAU,CAAA,EAAAT,CAAA,QAAAU,CAAA,GAAAY,QAAA,CAAAtC,CAAA,CAAAF,CAAA,GAAAE,CAAA,EAAAe,CAAA,mBAAAW,CAAA,CAAAa,IAAA,QAAAtB,CAAA,GAAAS,CAAA,CAAAc,GAAA,EAAAC,CAAA,GAAAxB,CAAA,CAAAL,KAAA,SAAA6B,CAAA,gBAAAgB,OAAA,CAAAhB,CAAA,KAAA/B,CAAA,CAAAQ,IAAA,CAAAuB,CAAA,eAAA1C,CAAA,CAAA2D,OAAA,CAAAjB,CAAA,CAAAkB,OAAA,EAAAC,IAAA,WAAA5D,CAAA,IAAAwD,MAAA,SAAAxD,CAAA,EAAAyB,CAAA,EAAAT,CAAA,gBAAAhB,CAAA,IAAAwD,MAAA,UAAAxD,CAAA,EAAAyB,CAAA,EAAAT,CAAA,QAAAjB,CAAA,CAAA2D,OAAA,CAAAjB,CAAA,EAAAmB,IAAA,WAAA5D,CAAA,IAAAiB,CAAA,CAAAL,KAAA,GAAAZ,CAAA,EAAAyB,CAAA,CAAAR,CAAA,gBAAAjB,CAAA,WAAAwD,MAAA,UAAAxD,CAAA,EAAAyB,CAAA,EAAAT,CAAA,SAAAA,CAAA,CAAAU,CAAA,CAAAc,GAAA,SAAA1C,CAAA,EAAAiB,CAAA,oBAAAH,KAAA,WAAAA,MAAAZ,CAAA,EAAAU,CAAA,aAAAmD,2BAAA,eAAA9D,CAAA,WAAAA,CAAA,EAAAD,CAAA,IAAA0D,MAAA,CAAAxD,CAAA,EAAAU,CAAA,EAAAX,CAAA,EAAAD,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAA8D,IAAA,CAAAC,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAAxB,iBAAAtC,CAAA,EAAAD,CAAA,EAAAY,CAAA,QAAAK,CAAA,GAAA0B,CAAA,mBAAAhB,CAAA,EAAAT,CAAA,QAAAD,CAAA,KAAAF,CAAA,QAAAiD,KAAA,sCAAA/C,CAAA,KAAAN,CAAA,oBAAAgB,CAAA,QAAAT,CAAA,WAAAJ,KAAA,EAAAZ,CAAA,EAAAW,IAAA,eAAAD,CAAA,CAAAqD,MAAA,GAAAtC,CAAA,EAAAf,CAAA,CAAA8B,GAAA,GAAAxB,CAAA,UAAAU,CAAA,GAAAhB,CAAA,CAAAsD,QAAA,MAAAtC,CAAA,QAAAT,CAAA,GAAAgD,mBAAA,CAAAvC,CAAA,EAAAhB,CAAA,OAAAO,CAAA,QAAAA,CAAA,KAAA0B,CAAA,mBAAA1B,CAAA,qBAAAP,CAAA,CAAAqD,MAAA,EAAArD,CAAA,CAAAwD,IAAA,GAAAxD,CAAA,CAAAyD,KAAA,GAAAzD,CAAA,CAAA8B,GAAA,sBAAA9B,CAAA,CAAAqD,MAAA,QAAAhD,CAAA,KAAA0B,CAAA,QAAA1B,CAAA,GAAAN,CAAA,EAAAC,CAAA,CAAA8B,GAAA,EAAA9B,CAAA,CAAA0D,iBAAA,CAAA1D,CAAA,CAAA8B,GAAA,uBAAA9B,CAAA,CAAAqD,MAAA,IAAArD,CAAA,CAAA2D,MAAA,WAAA3D,CAAA,CAAA8B,GAAA,GAAAzB,CAAA,GAAAF,CAAA,MAAAiC,CAAA,GAAAR,QAAA,CAAAvC,CAAA,EAAAD,CAAA,EAAAY,CAAA,oBAAAoC,CAAA,CAAAP,IAAA,QAAAxB,CAAA,GAAAL,CAAA,CAAAC,IAAA,GAAAF,CAAA,GAAAiC,CAAA,EAAAI,CAAA,CAAAN,GAAA,KAAAG,CAAA,qBAAA/B,KAAA,EAAAkC,CAAA,CAAAN,GAAA,EAAA7B,IAAA,EAAAD,CAAA,CAAAC,IAAA,kBAAAmC,CAAA,CAAAP,IAAA,KAAAxB,CAAA,GAAAN,CAAA,EAAAC,CAAA,CAAAqD,MAAA,YAAArD,CAAA,CAAA8B,GAAA,GAAAM,CAAA,CAAAN,GAAA,mBAAAyB,oBAAAlE,CAAA,EAAAD,CAAA,QAAAY,CAAA,GAAAZ,CAAA,CAAAiE,MAAA,EAAAhD,CAAA,GAAAhB,CAAA,CAAAG,QAAA,CAAAQ,CAAA,OAAAK,CAAA,KAAAf,CAAA,SAAAF,CAAA,CAAAkE,QAAA,qBAAAtD,CAAA,IAAAX,CAAA,CAAAG,QAAA,eAAAJ,CAAA,CAAAiE,MAAA,aAAAjE,CAAA,CAAA0C,GAAA,GAAAxC,CAAA,EAAAiE,mBAAA,CAAAlE,CAAA,EAAAD,CAAA,eAAAA,CAAA,CAAAiE,MAAA,kBAAArD,CAAA,KAAAZ,CAAA,CAAAiE,MAAA,YAAAjE,CAAA,CAAA0C,GAAA,OAAA1B,SAAA,uCAAAJ,CAAA,iBAAAiC,CAAA,MAAAlB,CAAA,GAAAa,QAAA,CAAAvB,CAAA,EAAAhB,CAAA,CAAAG,QAAA,EAAAJ,CAAA,CAAA0C,GAAA,mBAAAf,CAAA,CAAAc,IAAA,SAAAzC,CAAA,CAAAiE,MAAA,YAAAjE,CAAA,CAAA0C,GAAA,GAAAf,CAAA,CAAAe,GAAA,EAAA1C,CAAA,CAAAkE,QAAA,SAAArB,CAAA,MAAA3B,CAAA,GAAAS,CAAA,CAAAe,GAAA,SAAAxB,CAAA,GAAAA,CAAA,CAAAL,IAAA,IAAAb,CAAA,CAAAC,CAAA,CAAAuE,UAAA,IAAAtD,CAAA,CAAAJ,KAAA,EAAAd,CAAA,CAAAqB,IAAA,GAAApB,CAAA,CAAAwE,OAAA,eAAAzE,CAAA,CAAAiE,MAAA,KAAAjE,CAAA,CAAAiE,MAAA,WAAAjE,CAAA,CAAA0C,GAAA,GAAAxC,CAAA,GAAAF,CAAA,CAAAkE,QAAA,SAAArB,CAAA,IAAA3B,CAAA,IAAAlB,CAAA,CAAAiE,MAAA,YAAAjE,CAAA,CAAA0C,GAAA,OAAA1B,SAAA,sCAAAhB,CAAA,CAAAkE,QAAA,SAAArB,CAAA,cAAA6B,aAAAxE,CAAA,QAAAD,CAAA,KAAA0E,MAAA,EAAAzE,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAA2E,QAAA,GAAA1E,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAA4E,UAAA,GAAA3E,CAAA,KAAAD,CAAA,CAAA6E,QAAA,GAAA5E,CAAA,WAAA6E,UAAA,CAAAC,IAAA,CAAA/E,CAAA,cAAAgF,cAAA/E,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAAgF,UAAA,QAAAjF,CAAA,CAAAwC,IAAA,oBAAAxC,CAAA,CAAAyC,GAAA,EAAAxC,CAAA,CAAAgF,UAAA,GAAAjF,CAAA,aAAAqC,QAAApC,CAAA,SAAA6E,UAAA,MAAAJ,MAAA,aAAAzE,CAAA,CAAAqD,OAAA,CAAAmB,YAAA,cAAAS,KAAA,iBAAA/B,OAAAnD,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAAiB,CAAA,OAAAlB,CAAA,SAAAA,CAAA,CAAAoB,IAAA,CAAAnB,CAAA,4BAAAA,CAAA,CAAAoB,IAAA,SAAApB,CAAA,OAAAmF,KAAA,CAAAnF,CAAA,CAAAO,MAAA,SAAAS,CAAA,OAAAU,CAAA,YAAAN,KAAA,aAAAJ,CAAA,GAAAhB,CAAA,CAAAO,MAAA,OAAAI,CAAA,CAAAQ,IAAA,CAAAnB,CAAA,EAAAgB,CAAA,UAAAI,IAAA,CAAAP,KAAA,GAAAb,CAAA,CAAAgB,CAAA,GAAAI,IAAA,CAAAR,IAAA,OAAAQ,IAAA,SAAAA,IAAA,CAAAP,KAAA,GAAAZ,CAAA,EAAAmB,IAAA,CAAAR,IAAA,OAAAQ,IAAA,YAAAM,CAAA,CAAAN,IAAA,GAAAM,CAAA,gBAAAX,SAAA,CAAA2C,OAAA,CAAA1D,CAAA,kCAAA6C,iBAAA,CAAAtB,SAAA,GAAAuB,0BAAA,EAAA9B,CAAA,CAAAoC,CAAA,mBAAAvC,KAAA,EAAAiC,0BAAA,EAAAd,YAAA,SAAAhB,CAAA,CAAA8B,0BAAA,mBAAAjC,KAAA,EAAAgC,iBAAA,EAAAb,YAAA,SAAAa,iBAAA,CAAAuC,WAAA,GAAAtD,MAAA,CAAAgB,0BAAA,EAAA5B,CAAA,wBAAAlB,CAAA,CAAAqF,mBAAA,aAAApF,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAqF,WAAA,WAAAtF,CAAA,KAAAA,CAAA,KAAA6C,iBAAA,6BAAA7C,CAAA,CAAAoF,WAAA,IAAApF,CAAA,CAAAuF,IAAA,OAAAvF,CAAA,CAAAwF,IAAA,aAAAvF,CAAA,WAAAqB,MAAA,CAAAmE,cAAA,GAAAnE,MAAA,CAAAmE,cAAA,CAAAxF,CAAA,EAAA6C,0BAAA,KAAA7C,CAAA,CAAAyF,SAAA,GAAA5C,0BAAA,EAAAhB,MAAA,CAAA7B,CAAA,EAAAiB,CAAA,yBAAAjB,CAAA,CAAAsB,SAAA,GAAAD,MAAA,CAAAc,MAAA,CAAAgB,CAAA,GAAAnD,CAAA,KAAAD,CAAA,CAAA2F,KAAA,aAAA1F,CAAA,aAAA2D,OAAA,EAAA3D,CAAA,OAAAoD,qBAAA,CAAAG,aAAA,CAAAjC,SAAA,GAAAO,MAAA,CAAA0B,aAAA,CAAAjC,SAAA,EAAAI,CAAA,iCAAA3B,CAAA,CAAAwD,aAAA,GAAAA,aAAA,EAAAxD,CAAA,CAAA4F,KAAA,aAAA3F,CAAA,EAAAF,CAAA,EAAAY,CAAA,EAAAK,CAAA,EAAAU,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAAmE,OAAA,OAAA5E,CAAA,OAAAuC,aAAA,CAAAtB,IAAA,CAAAjC,CAAA,EAAAF,CAAA,EAAAY,CAAA,EAAAK,CAAA,GAAAU,CAAA,UAAA1B,CAAA,CAAAqF,mBAAA,CAAAtF,CAAA,IAAAkB,CAAA,GAAAA,CAAA,CAAAG,IAAA,GAAAyC,IAAA,WAAA5D,CAAA,WAAAA,CAAA,CAAAW,IAAA,GAAAX,CAAA,CAAAY,KAAA,GAAAI,CAAA,CAAAG,IAAA,WAAAiC,qBAAA,CAAAD,CAAA,GAAAtB,MAAA,CAAAsB,CAAA,EAAAlC,CAAA,gBAAAY,MAAA,CAAAsB,CAAA,EAAAnC,CAAA,iCAAAa,MAAA,CAAAsB,CAAA,6DAAApD,CAAA,CAAA8F,IAAA,aAAA7F,CAAA,QAAAD,CAAA,GAAAsB,MAAA,CAAArB,CAAA,GAAAF,CAAA,gBAAAY,CAAA,IAAAX,CAAA,EAAAD,CAAA,CAAAgF,IAAA,CAAApE,CAAA,UAAAZ,CAAA,CAAAgG,OAAA,aAAA3E,KAAA,WAAArB,CAAA,CAAAQ,MAAA,SAAAN,CAAA,GAAAF,CAAA,CAAAiG,GAAA,QAAA/F,CAAA,IAAAD,CAAA,SAAAoB,IAAA,CAAAP,KAAA,GAAAZ,CAAA,EAAAmB,IAAA,CAAAR,IAAA,OAAAQ,IAAA,WAAAA,IAAA,CAAAR,IAAA,OAAAQ,IAAA,QAAApB,CAAA,CAAAmD,MAAA,GAAAA,MAAA,EAAAd,OAAA,CAAAd,SAAA,KAAA+D,WAAA,EAAAjD,OAAA,EAAA6C,KAAA,WAAAA,MAAAlF,CAAA,aAAAiG,IAAA,WAAA7E,IAAA,WAAA+C,IAAA,QAAAC,KAAA,GAAAnE,CAAA,OAAAW,IAAA,YAAAqD,QAAA,cAAAD,MAAA,gBAAAvB,GAAA,GAAAxC,CAAA,OAAA6E,UAAA,CAAAxB,OAAA,CAAA0B,aAAA,IAAAhF,CAAA,WAAAD,CAAA,kBAAAA,CAAA,CAAAmG,MAAA,OAAAvF,CAAA,CAAAQ,IAAA,OAAApB,CAAA,MAAAoF,KAAA,EAAApF,CAAA,CAAAoG,KAAA,cAAApG,CAAA,IAAAE,CAAA,MAAAmG,IAAA,WAAAA,KAAA,SAAAxF,IAAA,WAAAX,CAAA,QAAA6E,UAAA,IAAAG,UAAA,kBAAAhF,CAAA,CAAAuC,IAAA,QAAAvC,CAAA,CAAAwC,GAAA,cAAA4D,IAAA,KAAAhC,iBAAA,WAAAA,kBAAArE,CAAA,aAAAY,IAAA,QAAAZ,CAAA,MAAAD,CAAA,kBAAAuG,OAAA3F,CAAA,EAAAK,CAAA,WAAAC,CAAA,CAAAuB,IAAA,YAAAvB,CAAA,CAAAwB,GAAA,GAAAzC,CAAA,EAAAD,CAAA,CAAAqB,IAAA,GAAAT,CAAA,EAAAK,CAAA,KAAAjB,CAAA,CAAAiE,MAAA,WAAAjE,CAAA,CAAA0C,GAAA,GAAAxC,CAAA,KAAAe,CAAA,aAAAA,CAAA,QAAA8D,UAAA,CAAAvE,MAAA,MAAAS,CAAA,SAAAA,CAAA,QAAAU,CAAA,QAAAoD,UAAA,CAAA9D,CAAA,GAAAC,CAAA,GAAAS,CAAA,CAAAuD,UAAA,iBAAAvD,CAAA,CAAAgD,MAAA,SAAA4B,MAAA,aAAA5E,CAAA,CAAAgD,MAAA,SAAAuB,IAAA,QAAAtE,CAAA,GAAAhB,CAAA,CAAAQ,IAAA,CAAAO,CAAA,eAAAR,CAAA,GAAAP,CAAA,CAAAQ,IAAA,CAAAO,CAAA,qBAAAC,CAAA,IAAAT,CAAA,aAAA+E,IAAA,GAAAvE,CAAA,CAAAiD,QAAA,SAAA2B,MAAA,CAAA5E,CAAA,CAAAiD,QAAA,gBAAAsB,IAAA,GAAAvE,CAAA,CAAAkD,UAAA,SAAA0B,MAAA,CAAA5E,CAAA,CAAAkD,UAAA,cAAAjD,CAAA,aAAAsE,IAAA,GAAAvE,CAAA,CAAAiD,QAAA,SAAA2B,MAAA,CAAA5E,CAAA,CAAAiD,QAAA,qBAAAzD,CAAA,QAAA6C,KAAA,qDAAAkC,IAAA,GAAAvE,CAAA,CAAAkD,UAAA,SAAA0B,MAAA,CAAA5E,CAAA,CAAAkD,UAAA,YAAAN,MAAA,WAAAA,OAAArE,CAAA,EAAAD,CAAA,aAAAD,CAAA,QAAA+E,UAAA,CAAAvE,MAAA,MAAAR,CAAA,SAAAA,CAAA,QAAAiB,CAAA,QAAA8D,UAAA,CAAA/E,CAAA,OAAAiB,CAAA,CAAA0D,MAAA,SAAAuB,IAAA,IAAAtF,CAAA,CAAAQ,IAAA,CAAAH,CAAA,wBAAAiF,IAAA,GAAAjF,CAAA,CAAA4D,UAAA,QAAAlD,CAAA,GAAAV,CAAA,aAAAU,CAAA,iBAAAzB,CAAA,mBAAAA,CAAA,KAAAyB,CAAA,CAAAgD,MAAA,IAAA1E,CAAA,IAAAA,CAAA,IAAA0B,CAAA,CAAAkD,UAAA,KAAAlD,CAAA,cAAAT,CAAA,GAAAS,CAAA,GAAAA,CAAA,CAAAuD,UAAA,cAAAhE,CAAA,CAAAuB,IAAA,GAAAvC,CAAA,EAAAgB,CAAA,CAAAwB,GAAA,GAAAzC,CAAA,EAAA0B,CAAA,SAAAsC,MAAA,gBAAA5C,IAAA,GAAAM,CAAA,CAAAkD,UAAA,EAAAhC,CAAA,SAAA2D,QAAA,CAAAtF,CAAA,MAAAsF,QAAA,WAAAA,SAAAtG,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAAuC,IAAA,QAAAvC,CAAA,CAAAwC,GAAA,qBAAAxC,CAAA,CAAAuC,IAAA,mBAAAvC,CAAA,CAAAuC,IAAA,QAAApB,IAAA,GAAAnB,CAAA,CAAAwC,GAAA,gBAAAxC,CAAA,CAAAuC,IAAA,SAAA6D,IAAA,QAAA5D,GAAA,GAAAxC,CAAA,CAAAwC,GAAA,OAAAuB,MAAA,kBAAA5C,IAAA,yBAAAnB,CAAA,CAAAuC,IAAA,IAAAxC,CAAA,UAAAoB,IAAA,GAAApB,CAAA,GAAA4C,CAAA,KAAA4D,MAAA,WAAAA,OAAAvG,CAAA,aAAAD,CAAA,QAAA8E,UAAA,CAAAvE,MAAA,MAAAP,CAAA,SAAAA,CAAA,QAAAD,CAAA,QAAA+E,UAAA,CAAA9E,CAAA,OAAAD,CAAA,CAAA6E,UAAA,KAAA3E,CAAA,cAAAsG,QAAA,CAAAxG,CAAA,CAAAkF,UAAA,EAAAlF,CAAA,CAAA8E,QAAA,GAAAG,aAAA,CAAAjF,CAAA,GAAA6C,CAAA,yBAAA6D,OAAAxG,CAAA,aAAAD,CAAA,QAAA8E,UAAA,CAAAvE,MAAA,MAAAP,CAAA,SAAAA,CAAA,QAAAD,CAAA,QAAA+E,UAAA,CAAA9E,CAAA,OAAAD,CAAA,CAAA2E,MAAA,KAAAzE,CAAA,QAAAU,CAAA,GAAAZ,CAAA,CAAAkF,UAAA,kBAAAtE,CAAA,CAAA6B,IAAA,QAAAxB,CAAA,GAAAL,CAAA,CAAA8B,GAAA,EAAAuC,aAAA,CAAAjF,CAAA,YAAAiB,CAAA,YAAA+C,KAAA,8BAAA2C,aAAA,WAAAA,cAAA1G,CAAA,EAAAD,CAAA,EAAAY,CAAA,gBAAAsD,QAAA,KAAA9D,QAAA,EAAAgD,MAAA,CAAAnD,CAAA,GAAAuE,UAAA,EAAAxE,CAAA,EAAAyE,OAAA,EAAA7D,CAAA,oBAAAqD,MAAA,UAAAvB,GAAA,GAAAxC,CAAA,GAAA2C,CAAA,OAAA5C,CAAA;AAAA,SAAA2G,QAAA3G,CAAA,EAAAD,CAAA,QAAAE,CAAA,GAAAqB,MAAA,CAAAwE,IAAA,CAAA9F,CAAA,OAAAsB,MAAA,CAAAsF,qBAAA,QAAA5F,CAAA,GAAAM,MAAA,CAAAsF,qBAAA,CAAA5G,CAAA,GAAAD,CAAA,KAAAiB,CAAA,GAAAA,CAAA,CAAA6F,MAAA,WAAA9G,CAAA,WAAAuB,MAAA,CAAAwF,wBAAA,CAAA9G,CAAA,EAAAD,CAAA,EAAAgC,UAAA,OAAA9B,CAAA,CAAA8E,IAAA,CAAAgC,KAAA,CAAA9G,CAAA,EAAAe,CAAA,YAAAf,CAAA;AAAA,SAAA+G,cAAAhH,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAkH,SAAA,CAAA1G,MAAA,EAAAR,CAAA,UAAAE,CAAA,WAAAgH,SAAA,CAAAlH,CAAA,IAAAkH,SAAA,CAAAlH,CAAA,QAAAA,CAAA,OAAA4G,OAAA,CAAArF,MAAA,CAAArB,CAAA,OAAAqD,OAAA,WAAAvD,CAAA,IAAAmH,eAAA,CAAAlH,CAAA,EAAAD,CAAA,EAAAE,CAAA,CAAAF,CAAA,SAAAuB,MAAA,CAAA6F,yBAAA,GAAA7F,MAAA,CAAA8F,gBAAA,CAAApH,CAAA,EAAAsB,MAAA,CAAA6F,yBAAA,CAAAlH,CAAA,KAAA0G,OAAA,CAAArF,MAAA,CAAArB,CAAA,GAAAqD,OAAA,WAAAvD,CAAA,IAAAuB,MAAA,CAAAG,cAAA,CAAAzB,CAAA,EAAAD,CAAA,EAAAuB,MAAA,CAAAwF,wBAAA,CAAA7G,CAAA,EAAAF,CAAA,iBAAAC,CAAA;AAAA,SAAAkH,gBAAAlH,CAAA,EAAAD,CAAA,EAAAE,CAAA,YAAAF,CAAA,GAAAsH,cAAA,CAAAtH,CAAA,MAAAC,CAAA,GAAAsB,MAAA,CAAAG,cAAA,CAAAzB,CAAA,EAAAD,CAAA,IAAAc,KAAA,EAAAZ,CAAA,EAAA8B,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAjC,CAAA,CAAAD,CAAA,IAAAE,CAAA,EAAAD,CAAA;AAAA,SAAAqH,eAAApH,CAAA,QAAAyB,CAAA,GAAA4F,YAAA,CAAArH,CAAA,gCAAAyD,OAAA,CAAAhC,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAA4F,aAAArH,CAAA,EAAAF,CAAA,oBAAA2D,OAAA,CAAAzD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAC,MAAA,CAAAqH,WAAA,kBAAAvH,CAAA,QAAA0B,CAAA,GAAA1B,CAAA,CAAAmB,IAAA,CAAAlB,CAAA,EAAAF,CAAA,gCAAA2D,OAAA,CAAAhC,CAAA,UAAAA,CAAA,YAAAX,SAAA,yEAAAhB,CAAA,GAAAyH,MAAA,GAAAC,MAAA,EAAAxH,CAAA;AAAA,SAAAyH,yBAAA1H,CAAA,6BAAA2H,OAAA,mBAAA5H,CAAA,OAAA4H,OAAA,IAAA1H,CAAA,OAAA0H,OAAA,YAAAD,wBAAA,YAAAA,yBAAA1H,CAAA,WAAAA,CAAA,GAAAC,CAAA,GAAAF,CAAA,KAAAC,CAAA;AAAA,SAAA4H,wBAAA5H,CAAA,EAAAD,CAAA,SAAAA,CAAA,IAAAC,CAAA,IAAAA,CAAA,CAAA6H,UAAA,SAAA7H,CAAA,eAAAA,CAAA,gBAAA0D,OAAA,CAAA1D,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAC,CAAA,GAAAyH,wBAAA,CAAA3H,CAAA,OAAAE,CAAA,IAAAA,CAAA,CAAA6H,GAAA,CAAA9H,CAAA,UAAAC,CAAA,CAAA8H,GAAA,CAAA/H,CAAA,OAAAW,CAAA,KAAA+E,SAAA,UAAAzE,CAAA,GAAAK,MAAA,CAAAG,cAAA,IAAAH,MAAA,CAAAwF,wBAAA,WAAA5F,CAAA,IAAAlB,CAAA,oBAAAkB,CAAA,OAAAM,cAAA,CAAAL,IAAA,CAAAnB,CAAA,EAAAkB,CAAA,SAAAQ,CAAA,GAAAT,CAAA,GAAAK,MAAA,CAAAwF,wBAAA,CAAA9G,CAAA,EAAAkB,CAAA,UAAAQ,CAAA,KAAAA,CAAA,CAAAqG,GAAA,IAAArG,CAAA,CAAAsG,GAAA,IAAA1G,MAAA,CAAAG,cAAA,CAAAd,CAAA,EAAAO,CAAA,EAAAQ,CAAA,IAAAf,CAAA,CAAAO,CAAA,IAAAlB,CAAA,CAAAkB,CAAA,YAAAP,CAAA,cAAAX,CAAA,EAAAC,CAAA,IAAAA,CAAA,CAAA+H,GAAA,CAAAhI,CAAA,EAAAW,CAAA,GAAAA,CAAA;AAAA,SAAAsH,mBAAAtH,CAAA,EAAAV,CAAA,EAAAD,CAAA,EAAAD,CAAA,EAAAiB,CAAA,EAAAC,CAAA,EAAAU,CAAA,cAAAD,CAAA,GAAAf,CAAA,CAAAM,CAAA,EAAAU,CAAA,GAAAT,CAAA,GAAAQ,CAAA,CAAAb,KAAA,WAAAF,CAAA,gBAAAX,CAAA,CAAAW,CAAA,KAAAe,CAAA,CAAAd,IAAA,GAAAX,CAAA,CAAAiB,CAAA,IAAA2E,OAAA,CAAAlC,OAAA,CAAAzC,CAAA,EAAA2C,IAAA,CAAA9D,CAAA,EAAAiB,CAAA;AAAA,SAAAkH,kBAAAvH,CAAA,6BAAAV,CAAA,SAAAD,CAAA,GAAAiH,SAAA,aAAApB,OAAA,WAAA9F,CAAA,EAAAiB,CAAA,QAAAC,CAAA,GAAAN,CAAA,CAAAoG,KAAA,CAAA9G,CAAA,EAAAD,CAAA,YAAAmI,MAAAxH,CAAA,IAAAsH,kBAAA,CAAAhH,CAAA,EAAAlB,CAAA,EAAAiB,CAAA,EAAAmH,KAAA,EAAAC,MAAA,UAAAzH,CAAA,cAAAyH,OAAAzH,CAAA,IAAAsH,kBAAA,CAAAhH,CAAA,EAAAlB,CAAA,EAAAiB,CAAA,EAAAmH,KAAA,EAAAC,MAAA,WAAAzH,CAAA,KAAAwH,KAAA;AAAA,SAAAE,mBAAAtI,CAAA,WAAAuI,kBAAA,CAAAvI,CAAA,KAAAwI,gBAAA,CAAAxI,CAAA,KAAAO,2BAAA,CAAAP,CAAA,KAAAyI,kBAAA;AAAA,SAAAA,mBAAA,cAAAzH,SAAA;AAAA,SAAAwH,iBAAAxI,CAAA,8BAAAG,MAAA,YAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,aAAAJ,CAAA,uBAAAK,KAAA,CAAAqI,IAAA,CAAA1I,CAAA;AAAA,SAAAuI,mBAAAvI,CAAA,QAAAK,KAAA,CAAAC,OAAA,CAAAN,CAAA,UAAA2I,iBAAA,CAAA3I,CAAA;AAAA,SAAA4I,eAAA5I,CAAA,EAAAC,CAAA,WAAA4I,eAAA,CAAA7I,CAAA,KAAA8I,qBAAA,CAAA9I,CAAA,EAAAC,CAAA,KAAAM,2BAAA,CAAAP,CAAA,EAAAC,CAAA,KAAA8I,gBAAA;AAAA,SAAAA,iBAAA,cAAA/H,SAAA;AAAA,SAAAT,4BAAAP,CAAA,EAAAkB,CAAA,QAAAlB,CAAA,2BAAAA,CAAA,SAAA2I,iBAAA,CAAA3I,CAAA,EAAAkB,CAAA,OAAAhB,CAAA,MAAA8I,QAAA,CAAA5H,IAAA,CAAApB,CAAA,EAAAoG,KAAA,6BAAAlG,CAAA,IAAAF,CAAA,CAAAuF,WAAA,KAAArF,CAAA,GAAAF,CAAA,CAAAuF,WAAA,CAAAC,IAAA,aAAAtF,CAAA,cAAAA,CAAA,GAAAG,KAAA,CAAAqI,IAAA,CAAA1I,CAAA,oBAAAE,CAAA,+CAAA+I,IAAA,CAAA/I,CAAA,IAAAyI,iBAAA,CAAA3I,CAAA,EAAAkB,CAAA;AAAA,SAAAyH,kBAAA3I,CAAA,EAAAkB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,MAAAU,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,YAAAP,CAAA,MAAAW,CAAA,GAAAP,KAAA,CAAAa,CAAA,GAAAjB,CAAA,GAAAiB,CAAA,EAAAjB,CAAA,IAAAW,CAAA,CAAAX,CAAA,IAAAD,CAAA,CAAAC,CAAA,UAAAW,CAAA;AAAA,SAAAkI,sBAAA9I,CAAA,EAAA4C,CAAA,QAAA1C,CAAA,WAAAF,CAAA,gCAAAG,MAAA,IAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,4BAAAE,CAAA,QAAAD,CAAA,EAAAW,CAAA,EAAAe,CAAA,EAAAR,CAAA,EAAAD,CAAA,OAAAH,CAAA,OAAAE,CAAA,iBAAAU,CAAA,IAAAzB,CAAA,GAAAA,CAAA,CAAAkB,IAAA,CAAApB,CAAA,GAAAqB,IAAA,QAAAuB,CAAA,QAAArB,MAAA,CAAArB,CAAA,MAAAA,CAAA,UAAAa,CAAA,uBAAAA,CAAA,IAAAd,CAAA,GAAA0B,CAAA,CAAAP,IAAA,CAAAlB,CAAA,GAAAW,IAAA,MAAAK,CAAA,CAAA8D,IAAA,CAAA/E,CAAA,CAAAa,KAAA,GAAAI,CAAA,CAAAV,MAAA,KAAAoC,CAAA,GAAA7B,CAAA,iBAAAf,CAAA,IAAAiB,CAAA,OAAAL,CAAA,GAAAZ,CAAA,yBAAAe,CAAA,YAAAb,CAAA,eAAAiB,CAAA,GAAAjB,CAAA,cAAAqB,MAAA,CAAAJ,CAAA,MAAAA,CAAA,2BAAAF,CAAA,QAAAL,CAAA,aAAAM,CAAA;AAAA,SAAA2H,gBAAA7I,CAAA,QAAAK,KAAA,CAAAC,OAAA,CAAAN,CAAA,UAAAA,CAAA;AASO,IAAMkJ,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAA,EAEtB;EACL,IAAME,KAAK,GAAG,IAAAC,oCAAiB,EAAiC,CAAC;EACjE,IAAAC,SAAA,GAA4C,IAAAC,eAAQ,EAAC,IAAI,CAAC;IAAAC,UAAA,GAAAZ,cAAA,CAAAU,SAAA;IAAnDG,cAAc,GAAAD,UAAA;IAAEE,iBAAiB,GAAAF,UAAA;EACxC,IAAAG,UAAA,GAA8B,IAAAJ,eAAQ,EAEpC,IAAIK,mCAAc,CAAC,CAAC,CAAC;IAAAC,UAAA,GAAAjB,cAAA,CAAAe,UAAA;IAFhBG,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAG1B,IAAMG,iBAAiB,GAAG,IAAAC,cAAO,EAC/B;IAAA,OAAA3B,kBAAA,CAAUc,KAAK,CAACc,OAAO,CAACC,UAAU,CAAC,CAAC,CAACpE,IAAI,CAAC,CAAC;EAAA,CAAC,EAC5C,CAACqD,KAAK,CAACc,OAAO,CAChB,CAAC;EAED,IAAME,WAAW,GAAG,IAAAC,kBAAW,gBAAAlC,iBAAA,eAAA7G,mBAAA,GAAAmE,IAAA,CAE7B,SAAA6E,QAAA;IAAA,IAAAC,aAAA,EAAAC,aAAA,EAAAC,YAAA,EAAAC,mBAAA,EAAAC,gBAAA,EAAAC,OAAA,EAAAC,GAAA,EAAAC,0BAAA,EAAAC,qBAAA;IAAA,OAAAzJ,mBAAA,GAAAa,IAAA,UAAA6I,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAA/E,IAAA,GAAA+E,QAAA,CAAA5J,IAAA;QAAA;UACA;UACMkJ,aAA8D,GAClE,IAAIX,mCAAc,CAAAtB,kBAAA,CAAKc,KAAK,CAACc,OAAO,CAACC,UAAU,CAAC,CAAC,CAAC,CAAC;UAAA,MAEjDI,aAAa,CAACW,IAAI,KAAK,CAAC;YAAAD,QAAA,CAAA5J,IAAA;YAAA;UAAA;UAAA,OAAA4J,QAAA,CAAA1G,MAAA,WACnBgG,aAAa;QAAA;UAAAU,QAAA,CAAA/E,IAAA;UAAA+E,QAAA,CAAA5J,IAAA;UAAA,OAAAyE,OAAA,CAAAlC,OAAA,GAAAE,IAAA;YAAA,OAAA+D,uBAAA,CAAAlI,OAAA,CAQH,yBAAyB;UAAA;QAAA;UAAA6K,aAAA,GAAAS,QAAA,CAAA7G,IAAA;UAH/BqG,YAAY,GAAAD,aAAA;UACrBE,mBAAmB,GAAAF,aAAA,CAAnBE,mBAAmB;UACnBC,gBAAgB,GAAAH,aAAA,CAAhBG,gBAAgB;UAEZC,OAAO,GACXxB,KAAK,CAAC+B,OAAO,KAAK,CAAC,GACfT,mBAAmB,CAACU,OAAO,GAC3BV,mBAAmB,CAACW,OAAO,EAEjC;UACMR,GAAG,GAAG,IAAIJ,YAAY,CAAC;YAC3BG,OAAO,EAAPA,OAAO;YACPU,QAAQ,EAAE,IAAIX,gBAAgB,CAACC,OAAO;UACxC,CAAC,CAAC,EAEF;UACME,0BAA0B,GAAAxC,kBAAA,CAAOiC,aAAa,CAACgB,OAAO,CAAC,CAAC;UAAAN,QAAA,CAAA5J,IAAA;UAAA,OACfwJ,GAAG,CAC/CS,QAAQ,CAAC,CAAC,CACVE,eAAe,CACdV,0BAA0B,CAACW,GAAG,CAAC,UAAAC,KAAA;YAAA,IAAAC,KAAA,GAAA/C,cAAA,CAAA8C,KAAA;cAAEE,GAAG,GAAAD,KAAA;YAAA,OAAO;cACzC7K,KAAK,EAAE8K,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,CAAC;UAAA,CAAC,CACJ,CAAC;QAAA;UANGd,qBAAgC,GAAAE,QAAA,CAAA7G,IAAA;UAQtC0G,0BAA0B,CAACvH,OAAO,CAAC,UAAAuI,KAAA,EAAkB;YAAA,IAAAC,KAAA,GAAAnD,cAAA,CAAAkD,KAAA;cAAhBF,GAAG,GAAAG,KAAA;cAAEC,KAAK,GAAAD,KAAA;YAC7C,IAAME,YAAY,GAAGlB,qBAAqB,CAACmB,IAAI,CAC7C,UAAAC,KAAA;cAAA,IAAGC,GAAG,GAAAD,KAAA,CAAHC,GAAG;cAAA,OAAOA,GAAG,KAAKR,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAA,CACxC,CAAY;YAEZtB,aAAa,CAACtC,GAAG,CACf,IAAAoE,+BAAuB,EAACT,GAAG,CAAC,EAC5BI,KAAK,CACFM,YAAY,CAAArF,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACRgF,YAAY,GACZD,KAAK,CAACO,QAAQ;cACjBC,OAAO,EAAE,IAAAH,+BAAuB,EAACL,KAAK,CAACO,QAAQ,CAACC,OAAO,CAAC;cACxDC,QAAQ,EAAE;YAAC,EACZ,CAAC,CACDC,UAAU,CAAC,EAAE,CAClB,CAAC;UACH,CAAC,CAAC;UAAC,OAAAzB,QAAA,CAAA1G,MAAA,WAEIgG,aAAa;QAAA;UAAAU,QAAA,CAAA/E,IAAA;UAAA+E,QAAA,CAAA0B,EAAA,GAAA1B,QAAA;UAEpB2B,OAAO,CAACC,GAAG,CAAA5B,QAAA,CAAA0B,EAAE,CAAC;UAAC,OAAA1B,QAAA,CAAA1G,MAAA,WACRgG,aAAa;QAAA;QAAA;UAAA,OAAAU,QAAA,CAAA5E,IAAA;MAAA;IAAA,GAAAiE,OAAA;EAAA,CAGvB,IAAE,CAAClB,KAAK,CAACc,OAAO,EAAER,iBAAiB,CAAC,CAAC;EAEtC,IAAAoD,gBAAS,EAAC,YAAM;IACd1C,WAAW,CAAC,CAAC,CACVtG,IAAI,CAAC,UAACiJ,UAAU,EAAK;MACpBhD,UAAU,CAAC,UAACiD,WAAW,EAAK;QAC1B,IAAIC,qBAAqB,GAAG,KAAK;QAEjC,IAAIF,UAAU,CAAC7B,IAAI,MAAK8B,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE9B,IAAI,GAAE;UACzC+B,qBAAqB,GAAG,IAAI;QAC9B,CAAC,MAAM;UAAA,IAAAC,SAAA,GAAAnN,0BAAA,CACoBgN,UAAU;YAAAI,KAAA;UAAA;YAAnC,KAAAD,SAAA,CAAAvM,CAAA,MAAAwM,KAAA,GAAAD,SAAA,CAAAtM,CAAA,IAAAC,IAAA,GAAqC;cAAA,IAAAuM,gBAAA;cAAA,IAAAC,WAAA,GAAAzE,cAAA,CAAAuE,KAAA,CAAArM,KAAA;gBAAzB8K,GAAG,GAAAyB,WAAA;gBAAEC,GAAG,GAAAD,WAAA;cAClB,IACE,CAACL,WAAW,CAACjF,GAAG,CAAC6D,GAAG,CAAC,IACrB,EAAAwB,gBAAA,GAAAJ,WAAW,CAAChF,GAAG,CAAC4D,GAAG,CAAC,cAAAwB,gBAAA,uBAApBA,gBAAA,CAAsBG,MAAM,OAAKD,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEC,MAAM,GAC5C;gBACAN,qBAAqB,GAAG,IAAI;cAC9B;YACF;UAAC,SAAAO,GAAA;YAAAN,SAAA,CAAAjN,CAAA,CAAAuN,GAAA;UAAA;YAAAN,SAAA,CAAAnM,CAAA;UAAA;QACH;QAEA,IAAI,CAACkM,qBAAqB,EAAE;UAC1B,OAAOD,WAAW;QACpB;QAEA,OAAOD,UAAU;MACnB,CAAC,CAAC;IACJ,CAAC,CAAC,CACDjJ,IAAI,CAAC;MAAA,OAAM4F,iBAAiB,CAAC,UAAC+D,SAAS;QAAA,OAAK,CAACA,SAAS;MAAA,EAAC;IAAA,EAAC;EAC7D,CAAC,EAAE,CAACzD,iBAAiB,EAAEI,WAAW,EAAEL,UAAU,EAAEL,iBAAiB,CAAC,CAAC;EAEnE,IAAMgE,IAAI,GAAG,IAAAzD,cAAO,EAClB;IAAA,OAAO;MACLH,OAAO,EAAPA,OAAO;MACPL,cAAc,EAAdA;IACF,CAAC;EAAA,CAAC,EACF,CAACK,OAAO,EAAEL,cAAc,CAC1B,CAAC;EAEDmD,OAAO,CAACC,GAAG,CAAC/C,OAAO,EAAEL,cAAc,CAAC;EAEpC,OAAOiE,IAAI;AACb,CAAC","ignoreList":[]}
|
|
@@ -25,13 +25,14 @@ var useWalletObserver = exports.useWalletObserver = function useWalletObserver()
|
|
|
25
25
|
stakeAddress: state.stakeAddress,
|
|
26
26
|
network: state.network,
|
|
27
27
|
utxos: state.utxos,
|
|
28
|
+
collateral: state.collateral,
|
|
28
29
|
observer: state.observer,
|
|
29
30
|
syncWallet: state.syncWallet,
|
|
30
31
|
unusedAddresses: state.unusedAddresses,
|
|
31
32
|
usedAddresses: state.usedAddresses
|
|
32
33
|
};
|
|
33
34
|
return result;
|
|
34
|
-
}, [state.activeWallet, state.adaBalance, state.balance, state.mainAddress, state.stakeAddress, state.network, state.observer, state.syncWallet, state.unusedAddresses, state.usedAddresses, state.utxos, state.ready, state.isCip45]);
|
|
35
|
+
}, [state.activeWallet, state.adaBalance, state.balance, state.mainAddress, state.stakeAddress, state.network, state.observer, state.syncWallet, state.unusedAddresses, state.usedAddresses, state.utxos, state.collateral, state.ready, state.isCip45]);
|
|
35
36
|
return memoizedState;
|
|
36
37
|
};
|
|
37
38
|
//# sourceMappingURL=useWalletObserver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWalletObserver.js","names":["_react","require","_index","useWalletObserver","exports","_useWalletObserverCon","useWalletObserverContext","state","memoizedState","useMemo","result","ready","Boolean","activeWallet","observer","api","isCip45","adaBalance","balance","mainAddress","stakeAddress","network","utxos","syncWallet","unusedAddresses","usedAddresses"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useMemo } from \"react\";\n\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {TUseWalletObserverState<AssetMetadata>}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>(): TUseWalletObserverState<AssetMetadata> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const memoizedState = useMemo(() => {\n const result: TUseWalletObserverState<AssetMetadata> = {\n ready: Boolean(state.activeWallet && state.observer.api),\n isCip45: state.isCip45,\n activeWallet: state.activeWallet,\n adaBalance: state.adaBalance,\n balance: state.balance,\n mainAddress: state.mainAddress,\n stakeAddress: state.stakeAddress,\n network: state.network,\n utxos: state.utxos,\n observer: state.observer,\n syncWallet: state.syncWallet,\n unusedAddresses: state.unusedAddresses,\n usedAddresses: state.usedAddresses,\n };\n\n return result;\n }, [\n state.activeWallet,\n state.adaBalance,\n state.balance,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.observer,\n state.syncWallet,\n state.unusedAddresses,\n state.usedAddresses,\n state.utxos,\n state.ready,\n state.isCip45,\n ]);\n\n return memoizedState;\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAKA;AACA;AACA;AACA;AACA;AACO,IAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAA,EAEiB;EAC7C,IAAAE,qBAAA,GAAkB,IAAAC,+BAAwB,EAAgB,CAAC;IAAnDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;EAEb,IAAMC,aAAa,GAAG,IAAAC,cAAO,EAAC,YAAM;IAClC,IAAMC,MAA8C,GAAG;MACrDC,KAAK,EAAEC,OAAO,CAACL,KAAK,CAACM,YAAY,IAAIN,KAAK,CAACO,QAAQ,CAACC,GAAG,CAAC;MACxDC,OAAO,EAAET,KAAK,CAACS,OAAO;MACtBH,YAAY,EAAEN,KAAK,CAACM,YAAY;MAChCI,UAAU,EAAEV,KAAK,CAACU,UAAU;MAC5BC,OAAO,EAAEX,KAAK,CAACW,OAAO;MACtBC,WAAW,EAAEZ,KAAK,CAACY,WAAW;MAC9BC,YAAY,EAAEb,KAAK,CAACa,YAAY;MAChCC,OAAO,EAAEd,KAAK,CAACc,OAAO;MACtBC,KAAK,EAAEf,KAAK,CAACe,KAAK;
|
|
1
|
+
{"version":3,"file":"useWalletObserver.js","names":["_react","require","_index","useWalletObserver","exports","_useWalletObserverCon","useWalletObserverContext","state","memoizedState","useMemo","result","ready","Boolean","activeWallet","observer","api","isCip45","adaBalance","balance","mainAddress","stakeAddress","network","utxos","collateral","syncWallet","unusedAddresses","usedAddresses"],"sources":["../../../../src/react-components/hooks/useWalletObserver.ts"],"sourcesContent":["import { IAssetAmountMetadata } from \"@sundaeswap/asset\";\nimport { useMemo } from \"react\";\n\nimport {\n TUseWalletObserverState,\n useWalletObserverContext,\n} from \"../contexts/observer/index.js\";\n\n/**\n * Exposes the WalletObserver state.\n *\n * @returns {TUseWalletObserverState<AssetMetadata>}\n */\nexport const useWalletObserver = <\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n>(): TUseWalletObserverState<AssetMetadata> => {\n const { state } = useWalletObserverContext<AssetMetadata>();\n\n const memoizedState = useMemo(() => {\n const result: TUseWalletObserverState<AssetMetadata> = {\n ready: Boolean(state.activeWallet && state.observer.api),\n isCip45: state.isCip45,\n activeWallet: state.activeWallet,\n adaBalance: state.adaBalance,\n balance: state.balance,\n mainAddress: state.mainAddress,\n stakeAddress: state.stakeAddress,\n network: state.network,\n utxos: state.utxos,\n collateral: state.collateral,\n observer: state.observer,\n syncWallet: state.syncWallet,\n unusedAddresses: state.unusedAddresses,\n usedAddresses: state.usedAddresses,\n };\n\n return result;\n }, [\n state.activeWallet,\n state.adaBalance,\n state.balance,\n state.mainAddress,\n state.stakeAddress,\n state.network,\n state.observer,\n state.syncWallet,\n state.unusedAddresses,\n state.usedAddresses,\n state.utxos,\n state.collateral,\n state.ready,\n state.isCip45,\n ]);\n\n return memoizedState;\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAKA;AACA;AACA;AACA;AACA;AACO,IAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAA,EAEiB;EAC7C,IAAAE,qBAAA,GAAkB,IAAAC,+BAAwB,EAAgB,CAAC;IAAnDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;EAEb,IAAMC,aAAa,GAAG,IAAAC,cAAO,EAAC,YAAM;IAClC,IAAMC,MAA8C,GAAG;MACrDC,KAAK,EAAEC,OAAO,CAACL,KAAK,CAACM,YAAY,IAAIN,KAAK,CAACO,QAAQ,CAACC,GAAG,CAAC;MACxDC,OAAO,EAAET,KAAK,CAACS,OAAO;MACtBH,YAAY,EAAEN,KAAK,CAACM,YAAY;MAChCI,UAAU,EAAEV,KAAK,CAACU,UAAU;MAC5BC,OAAO,EAAEX,KAAK,CAACW,OAAO;MACtBC,WAAW,EAAEZ,KAAK,CAACY,WAAW;MAC9BC,YAAY,EAAEb,KAAK,CAACa,YAAY;MAChCC,OAAO,EAAEd,KAAK,CAACc,OAAO;MACtBC,KAAK,EAAEf,KAAK,CAACe,KAAK;MAClBC,UAAU,EAAEhB,KAAK,CAACgB,UAAU;MAC5BT,QAAQ,EAAEP,KAAK,CAACO,QAAQ;MACxBU,UAAU,EAAEjB,KAAK,CAACiB,UAAU;MAC5BC,eAAe,EAAElB,KAAK,CAACkB,eAAe;MACtCC,aAAa,EAAEnB,KAAK,CAACmB;IACvB,CAAC;IAED,OAAOhB,MAAM;EACf,CAAC,EAAE,CACDH,KAAK,CAACM,YAAY,EAClBN,KAAK,CAACU,UAAU,EAChBV,KAAK,CAACW,OAAO,EACbX,KAAK,CAACY,WAAW,EACjBZ,KAAK,CAACa,YAAY,EAClBb,KAAK,CAACc,OAAO,EACbd,KAAK,CAACO,QAAQ,EACdP,KAAK,CAACiB,UAAU,EAChBjB,KAAK,CAACkB,eAAe,EACrBlB,KAAK,CAACmB,aAAa,EACnBnB,KAAK,CAACe,KAAK,EACXf,KAAK,CAACgB,UAAU,EAChBhB,KAAK,CAACI,KAAK,EACXJ,KAAK,CAACS,OAAO,CACd,CAAC;EAEF,OAAOR,aAAa;AACtB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.normalizeAssetIdWithDot = exports.isAdaAsset = void 0;
|
|
7
|
+
var _WalletObserverClass = require("../classes/WalletObserver.class.js");
|
|
8
|
+
/**
|
|
9
|
+
* Helper function to normalize asset ID notation.
|
|
10
|
+
*
|
|
11
|
+
* @param {string} assetId The asset ID as a HEX string (either with dot or without).
|
|
12
|
+
* @returns {string}
|
|
13
|
+
*/
|
|
14
|
+
var normalizeAssetIdWithDot = exports.normalizeAssetIdWithDot = function normalizeAssetIdWithDot(assetId) {
|
|
15
|
+
if (assetId.includes(".") || assetId === _WalletObserverClass.WalletObserver.ADA_ASSET_ID) {
|
|
16
|
+
return assetId;
|
|
17
|
+
}
|
|
18
|
+
var policyId = assetId.slice(0, 56);
|
|
19
|
+
var assetName = assetId.slice(56);
|
|
20
|
+
if (assetName) {
|
|
21
|
+
return "".concat(policyId, ".").concat(assetName);
|
|
22
|
+
}
|
|
23
|
+
return policyId;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Helper function to internally check if an asset is ADA.
|
|
28
|
+
*
|
|
29
|
+
* @param {string} id The asset id.
|
|
30
|
+
* @returns {boolean}
|
|
31
|
+
*/
|
|
32
|
+
var isAdaAsset = exports.isAdaAsset = function isAdaAsset(id) {
|
|
33
|
+
return id === _WalletObserverClass.WalletObserver.ADA_ASSET_ID;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.js","names":["_WalletObserverClass","require","normalizeAssetIdWithDot","exports","assetId","includes","WalletObserver","ADA_ASSET_ID","policyId","slice","assetName","concat","isAdaAsset","id"],"sources":["../../../src/utils/assets.ts"],"sourcesContent":["import { WalletObserver } from \"../classes/WalletObserver.class.js\";\n\n/**\n * Helper function to normalize asset ID notation.\n *\n * @param {string} assetId The asset ID as a HEX string (either with dot or without).\n * @returns {string}\n */\nexport const normalizeAssetIdWithDot = (assetId: string): string => {\n if (assetId.includes(\".\") || assetId === WalletObserver.ADA_ASSET_ID) {\n return assetId;\n }\n\n const policyId = assetId.slice(0, 56);\n const assetName = assetId.slice(56);\n\n if (assetName) {\n return `${policyId}.${assetName}`;\n }\n\n return policyId;\n};\n\n/**\n * Helper function to internally check if an asset is ADA.\n *\n * @param {string} id The asset id.\n * @returns {boolean}\n */\nexport const isAdaAsset = (id: string): boolean =>\n id === WalletObserver.ADA_ASSET_ID;\n"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAIE,OAAe,EAAa;EAClE,IAAIA,OAAO,CAACC,QAAQ,CAAC,GAAG,CAAC,IAAID,OAAO,KAAKE,mCAAc,CAACC,YAAY,EAAE;IACpE,OAAOH,OAAO;EAChB;EAEA,IAAMI,QAAQ,GAAGJ,OAAO,CAACK,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EACrC,IAAMC,SAAS,GAAGN,OAAO,CAACK,KAAK,CAAC,EAAE,CAAC;EAEnC,IAAIC,SAAS,EAAE;IACb,UAAAC,MAAA,CAAUH,QAAQ,OAAAG,MAAA,CAAID,SAAS;EACjC;EAEA,OAAOF,QAAQ;AACjB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,IAAMI,UAAU,GAAAT,OAAA,CAAAS,UAAA,GAAG,SAAbA,UAAUA,CAAIC,EAAU;EAAA,OACnCA,EAAE,KAAKP,mCAAc,CAACC,YAAY;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observer.js","names":[],"sources":["../../../src/@types/observer.ts"],"sourcesContent":["import type { TransactionUnspentOutput } from \"@cardano-sdk/core/dist/cjs/Serialization/index.js\";\nimport type { Cip30WalletApi } from \"@cardano-sdk/dapp-connector\";\nimport type { DAppPeerConnect } from \"@fabianbormann/cardano-peer-connect\";\nimport type { DAppPeerConnectParameters } from \"@fabianbormann/cardano-peer-connect/dist/src/types.js\";\nimport type {
|
|
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,38 @@
|
|
|
1
|
+
import { normalizeAssetIdWithDot } from "../utils/assets";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Map wrapper to enforce asset id normalization when setting and getting assets.
|
|
5
|
+
*/
|
|
6
|
+
export class WalletAssetMap extends Map {
|
|
7
|
+
/**
|
|
8
|
+
* Overlay to enforce asset ID normalization.
|
|
9
|
+
*
|
|
10
|
+
* @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).
|
|
11
|
+
* @returns {AssetAmount<AssetMetadata> | undefined}
|
|
12
|
+
*/
|
|
13
|
+
get(key) {
|
|
14
|
+
return super.get(normalizeAssetIdWithDot(key));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Overlay to enforce asset ID normalization.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).
|
|
21
|
+
* @param {AssetAmount<AssetMetadata>} key Retrieve the asset ID as a HEX string (either with dot or without).
|
|
22
|
+
* @returns {this}
|
|
23
|
+
*/
|
|
24
|
+
set(key, value) {
|
|
25
|
+
return super.set(normalizeAssetIdWithDot(key), value);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Overlay to enforce asset ID normalization.
|
|
30
|
+
*
|
|
31
|
+
* @param {string} key Retrieve the asset ID as a HEX string (either with dot or without).
|
|
32
|
+
* @returns {AssetAmount<AssetMetadata> | undefined}
|
|
33
|
+
*/
|
|
34
|
+
has(key) {
|
|
35
|
+
return super.has(normalizeAssetIdWithDot(key));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=WalletAssetMap.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletAssetMap.class.js","names":["normalizeAssetIdWithDot","WalletAssetMap","Map","get","key","set","value","has"],"sources":["../../../src/classes/WalletAssetMap.class.ts"],"sourcesContent":["import { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\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":"AACA,SAASA,uBAAuB,QAAQ,iBAAiB;;AAEzD;AACA;AACA;AACA,OAAO,MAAMC,cAAc,SAEjBC,GAAG,CAAqC;EAChD;AACF;AACA;AACA;AACA;AACA;EACEC,GAAGA,CAACC,GAAW,EAA0C;IACvD,OAAO,KAAK,CAACD,GAAG,CAACH,uBAAuB,CAACI,GAAG,CAAC,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,GAAGA,CAACD,GAAW,EAAEE,KAAiC,EAAQ;IACxD,OAAO,KAAK,CAACD,GAAG,CAACL,uBAAuB,CAACI,GAAG,CAAC,EAAEE,KAAK,CAAC;EACvD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEC,GAAGA,CAACH,GAAW,EAAW;IACxB,OAAO,KAAK,CAACG,GAAG,CAACP,uBAAuB,CAACI,GAAG,CAAC,CAAC;EAChD;AACF","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
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; }
|
|
2
2
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
3
|
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); }
|
|
4
|
+
import { WalletAssetMap } from "./WalletAssetMap.class.js";
|
|
4
5
|
/**
|
|
5
6
|
* A custom Map instance that describes a list of assets and their metadata,
|
|
6
7
|
* including the asset's wallet balance. It also includes associated helper methods
|
|
@@ -9,7 +10,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
9
10
|
* @template AssetMetadata - Type extending IAssetAmountMetadata.
|
|
10
11
|
* @extends {Map<string, AssetAmount<AssetMetadata>>}
|
|
11
12
|
*/
|
|
12
|
-
export class WalletBalanceMap extends
|
|
13
|
+
export class WalletBalanceMap extends WalletAssetMap {
|
|
13
14
|
/**
|
|
14
15
|
* Creates an instance of WalletBalanceMap.
|
|
15
16
|
* @param {WalletObserver} _observer - An instance of the associated WalletObserver.
|
|
@@ -35,7 +36,7 @@ export class WalletBalanceMap extends Map {
|
|
|
35
36
|
* @returns {TAssetAmountMap<AssetMetadata>} A map of fungible tokens.
|
|
36
37
|
*/
|
|
37
38
|
_defineProperty(this, "getFungibleTokens", () => {
|
|
38
|
-
const map = new
|
|
39
|
+
const map = new WalletAssetMap();
|
|
39
40
|
[...this.entries()].forEach(([key, asset]) => {
|
|
40
41
|
if (asset.metadata.decimals > 0) {
|
|
41
42
|
map.set(key, asset);
|
|
@@ -50,7 +51,7 @@ export class WalletBalanceMap extends Map {
|
|
|
50
51
|
* @returns {TAssetAmountMap<AssetMetadata>} A map of handle assets.
|
|
51
52
|
*/
|
|
52
53
|
_defineProperty(this, "getHandles", () => {
|
|
53
|
-
const map = new
|
|
54
|
+
const map = new WalletAssetMap();
|
|
54
55
|
[...this.entries()].forEach(([key, asset]) => {
|
|
55
56
|
const isHandle = this._handlePolicyIds[this._observer.network].some(policyId => asset.metadata.assetId.includes(policyId));
|
|
56
57
|
if (isHandle) {
|
|
@@ -67,7 +68,7 @@ export class WalletBalanceMap extends Map {
|
|
|
67
68
|
* @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.
|
|
68
69
|
*/
|
|
69
70
|
_defineProperty(this, "getNonFungibleTokens", withHandles => {
|
|
70
|
-
const map = new
|
|
71
|
+
const map = new WalletAssetMap();
|
|
71
72
|
[...this.entries()].forEach(([key, asset]) => {
|
|
72
73
|
if (!withHandles && this._handlePolicyIds[this._observer.network].some(policyId => asset.metadata.assetId.includes(policyId))) {
|
|
73
74
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletBalanceMap.class.js","names":["
|
|
1
|
+
{"version":3,"file":"WalletBalanceMap.class.js","names":["WalletAssetMap","WalletBalanceMap","constructor","_observer","_defineProperty","map","entries","forEach","key","asset","metadata","decimals","set","isHandle","_handlePolicyIds","network","some","policyId","assetId","includes","withHandles","amount","getNonFungibleTokens"],"sources":["../../../src/classes/WalletBalanceMap.class.ts"],"sourcesContent":["import { AssetAmount, IAssetAmountMetadata } from \"@sundaeswap/asset\";\n\nimport { TAssetAmountMap } from \"../@types/observer.js\";\nimport { WalletAssetMap } from \"./WalletAssetMap.class.js\";\nimport { WalletObserver } from \"./WalletObserver.class.js\";\n\n/**\n * A custom Map instance that describes a list of assets and their metadata,\n * including the asset's wallet balance. It also includes associated helper methods\n * for convenience when querying against the map.\n *\n * @template AssetMetadata - Type extending IAssetAmountMetadata.\n * @extends {Map<string, AssetAmount<AssetMetadata>>}\n */\nexport class WalletBalanceMap<\n AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata\n> extends WalletAssetMap<AssetMetadata> {\n /**\n * @private\n * @type {Record<number, string[]>}\n * @description Handle policy IDs mapped by network number. We use this\n * manually since the SDK includes the necessity of an instance and we\n * don't really need all the extra stuff yet.\n */\n private _handlePolicyIds: Record<number, string[]> = {\n 0: [\"8d18d786e92776c824607fd8e193ec535c79dc61ea2405ddf3b09fe3\"],\n 1: [\"f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a\"],\n };\n\n /**\n * Creates an instance of WalletBalanceMap.\n * @param {WalletObserver} _observer - An instance of the associated WalletObserver.\n */\n constructor(private _observer: WalletObserver) {\n super();\n }\n\n /**\n * Get only fungible assets from the wallet balance map\n * and return them as a subset Map.\n *\n * @returns {TAssetAmountMap<AssetMetadata>} A map of fungible tokens.\n */\n getFungibleTokens = (): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n if (asset.metadata.decimals > 0) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Get only Handle NFTs from the wallet balance map\n * and return them as a subset Map.\n *\n * @returns {TAssetAmountMap<AssetMetadata>} A map of handle assets.\n */\n getHandles = (): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n const isHandle = this._handlePolicyIds[this._observer.network].some(\n (policyId) => asset.metadata.assetId.includes(policyId)\n );\n\n if (isHandle) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Get only non-fungible tokens (NFTs) from the wallet balance map\n * and return them as a subset.\n *\n * @param {boolean} [withHandles] - Optional parameter to include Handles. Defaults to false.\n * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.\n */\n getNonFungibleTokens = (\n withHandles?: boolean\n ): TAssetAmountMap<AssetMetadata> => {\n const map: TAssetAmountMap<AssetMetadata> = new WalletAssetMap();\n [...this.entries()].forEach(([key, asset]) => {\n if (\n !withHandles &&\n this._handlePolicyIds[this._observer.network].some((policyId) =>\n asset.metadata.assetId.includes(policyId)\n )\n ) {\n return;\n }\n\n if (asset.metadata.decimals === 0 && asset.amount === 1n) {\n map.set(key, asset);\n }\n });\n\n return map;\n };\n\n /**\n * Alias for getNonFungibleTokens.\n *\n * @param {boolean} [withHandles] - Optional parameter to include Handles. Defaults to false.\n * @returns {TAssetAmountMap<AssetMetadata>} A map of non-fungible tokens.\n */\n getNFTs = (withHandles?: boolean): TAssetAmountMap<AssetMetadata> =>\n this.getNonFungibleTokens(withHandles);\n}\n"],"mappings":";;;AAGA,SAASA,cAAc,QAAQ,2BAA2B;AAG1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,SAEnBD,cAAc,CAAgB;EAatC;AACF;AACA;AACA;EACEE,WAAWA,CAASC,SAAyB,EAAE;IAC7C,KAAK,CAAC,CAAC;IAAC,KADUA,SAAyB,GAAzBA,SAAyB;IAhB7C;AACF;AACA;AACA;AACA;AACA;AACA;IANEC,eAAA,2BAOqD;MACnD,CAAC,EAAE,CAAC,0DAA0D,CAAC;MAC/D,CAAC,EAAE,CAAC,0DAA0D;IAChE,CAAC;IAUD;AACF;AACA;AACA;AACA;AACA;IALEA,eAAA,4BAMoB,MAAsC;MACxD,MAAMC,GAAmC,GAAG,IAAIL,cAAc,CAAC,CAAC;MAChE,CAAC,GAAG,IAAI,CAACM,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;QAC5C,IAAIA,KAAK,CAACC,QAAQ,CAACC,QAAQ,GAAG,CAAC,EAAE;UAC/BN,GAAG,CAACO,GAAG,CAACJ,GAAG,EAAEC,KAAK,CAAC;QACrB;MACF,CAAC,CAAC;MAEF,OAAOJ,GAAG;IACZ,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;IALED,eAAA,qBAMa,MAAsC;MACjD,MAAMC,GAAmC,GAAG,IAAIL,cAAc,CAAC,CAAC;MAChE,CAAC,GAAG,IAAI,CAACM,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;QAC5C,MAAMI,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAACX,SAAS,CAACY,OAAO,CAAC,CAACC,IAAI,CAChEC,QAAQ,IAAKR,KAAK,CAACC,QAAQ,CAACQ,OAAO,CAACC,QAAQ,CAACF,QAAQ,CACxD,CAAC;QAED,IAAIJ,QAAQ,EAAE;UACZR,GAAG,CAACO,GAAG,CAACJ,GAAG,EAAEC,KAAK,CAAC;QACrB;MACF,CAAC,CAAC;MAEF,OAAOJ,GAAG;IACZ,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;AACA;IANED,eAAA,+BAQEgB,WAAqB,IACc;MACnC,MAAMf,GAAmC,GAAG,IAAIL,cAAc,CAAC,CAAC;MAChE,CAAC,GAAG,IAAI,CAACM,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;QAC5C,IACE,CAACW,WAAW,IACZ,IAAI,CAACN,gBAAgB,CAAC,IAAI,CAACX,SAAS,CAACY,OAAO,CAAC,CAACC,IAAI,CAAEC,QAAQ,IAC1DR,KAAK,CAACC,QAAQ,CAACQ,OAAO,CAACC,QAAQ,CAACF,QAAQ,CAC1C,CAAC,EACD;UACA;QACF;QAEA,IAAIR,KAAK,CAACC,QAAQ,CAACC,QAAQ,KAAK,CAAC,IAAIF,KAAK,CAACY,MAAM,KAAK,EAAE,EAAE;UACxDhB,GAAG,CAACO,GAAG,CAACJ,GAAG,EAAEC,KAAK,CAAC;QACrB;MACF,CAAC,CAAC;MAEF,OAAOJ,GAAG;IACZ,CAAC;IAED;AACF;AACA;AACA;AACA;AACA;IALED,eAAA,kBAMWgB,WAAqB,IAC9B,IAAI,CAACE,oBAAoB,CAACF,WAAW,CAAC;EA5ExC;AA6EF","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
4
4
|
import { AssetAmount } from "@sundaeswap/asset";
|
|
5
5
|
import merge from "lodash/merge.js";
|
|
6
6
|
import { EWalletObserverEvents } from "../@types/events.js";
|
|
7
|
+
import { isAdaAsset, normalizeAssetIdWithDot } from "../utils/assets.js";
|
|
7
8
|
import { getCardanoCore, getCardanoUtil, getPeerConnect } from "../utils/getLibs.js";
|
|
8
9
|
import { WalletBalanceMap } from "./WalletBalanceMap.class.js";
|
|
9
10
|
import { WalletObserverEvent } from "./WalletObserverEvent.js";
|
|
@@ -74,12 +75,13 @@ export class WalletObserver extends WalletObserverEvent {
|
|
|
74
75
|
throw e;
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
|
-
const [newBalanceMap, newUsedAddresses, newUnusedAddresses, newOutputs] = await Promise.all([this.getBalanceMap(), this.getUsedAddresses(), this.getUnusedAddresses(), this.getUtxos()]);
|
|
78
|
+
const [newBalanceMap, newUsedAddresses, newUnusedAddresses, newOutputs, newCollateral] = await Promise.all([this.getBalanceMap(), this.getUsedAddresses(), this.getUnusedAddresses(), this.getUtxos(), this.getCollateral()]);
|
|
78
79
|
const result = {
|
|
79
80
|
balanceMap: newBalanceMap,
|
|
80
81
|
usedAddresses: newUsedAddresses,
|
|
81
82
|
unusedAddresses: newUnusedAddresses,
|
|
82
83
|
utxos: newOutputs,
|
|
84
|
+
collateral: newCollateral,
|
|
83
85
|
network: newNetwork
|
|
84
86
|
};
|
|
85
87
|
this.dispatch(EWalletObserverEvents.SYNCING_WALLET_END, result);
|
|
@@ -236,7 +238,7 @@ export class WalletObserver extends WalletObserverEvent {
|
|
|
236
238
|
const multiassetEntries = data.multiasset()?.entries() ?? [];
|
|
237
239
|
if (multiassetEntries) {
|
|
238
240
|
for (const [id, amount] of multiassetEntries) {
|
|
239
|
-
balanceMap.set(id, new AssetAmount(amount, metadata.get(id)));
|
|
241
|
+
balanceMap.set(id, new AssetAmount(amount, metadata.get(normalizeAssetIdWithDot(id))));
|
|
240
242
|
}
|
|
241
243
|
}
|
|
242
244
|
this.dispatch(EWalletObserverEvents.GET_BALANCE_MAP_END, {
|
|
@@ -315,6 +317,30 @@ export class WalletObserver extends WalletObserverEvent {
|
|
|
315
317
|
});
|
|
316
318
|
return data;
|
|
317
319
|
});
|
|
320
|
+
/**
|
|
321
|
+
* Gets a list of wallet UTXOs suitable for collateral.
|
|
322
|
+
*
|
|
323
|
+
* @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.
|
|
324
|
+
*/
|
|
325
|
+
_defineProperty(this, "getCollateral", async () => {
|
|
326
|
+
if (!this.api) {
|
|
327
|
+
throw new Error("Attempted to query UTXOs without an API instance.");
|
|
328
|
+
}
|
|
329
|
+
const [cbor, {
|
|
330
|
+
Serialization
|
|
331
|
+
}, {
|
|
332
|
+
typedHex
|
|
333
|
+
}] = await Promise.all([this.api.getCollateral(), getCardanoCore(), getCardanoUtil()]);
|
|
334
|
+
const data = cbor?.map(val => {
|
|
335
|
+
let txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
|
|
336
|
+
|
|
337
|
+
// These methods must be bound to their initial creation instance.
|
|
338
|
+
txOutput.input = txOutput.input.bind(txOutput);
|
|
339
|
+
txOutput.output = txOutput.output.bind(txOutput);
|
|
340
|
+
return txOutput;
|
|
341
|
+
});
|
|
342
|
+
return data;
|
|
343
|
+
});
|
|
318
344
|
/**
|
|
319
345
|
* Resolves metadata for the given asset IDs, using a cached version if available.
|
|
320
346
|
*
|
|
@@ -330,7 +356,7 @@ export class WalletObserver extends WalletObserverEvent {
|
|
|
330
356
|
return this._cachedMetadata;
|
|
331
357
|
}
|
|
332
358
|
}
|
|
333
|
-
const newMetadata = await this._options.metadataResolver(assetIds);
|
|
359
|
+
const newMetadata = await this._options.metadataResolver(assetIds.map(normalizeAssetIdWithDot), normalizeAssetIdWithDot, isAdaAsset);
|
|
334
360
|
this._cachedMetadata = newMetadata;
|
|
335
361
|
return newMetadata;
|
|
336
362
|
});
|
|
@@ -341,8 +367,8 @@ export class WalletObserver extends WalletObserverEvent {
|
|
|
341
367
|
*/
|
|
342
368
|
_defineProperty(this, "fallbackMetadataResolver", async assetIds => {
|
|
343
369
|
const map = new Map();
|
|
344
|
-
assetIds.forEach(id => map.set(id, {
|
|
345
|
-
assetId: id,
|
|
370
|
+
assetIds.forEach(id => map.set(normalizeAssetIdWithDot(id), {
|
|
371
|
+
assetId: normalizeAssetIdWithDot(id),
|
|
346
372
|
decimals: 6
|
|
347
373
|
}));
|
|
348
374
|
return map;
|