@sundaeswap/wallet-lite 0.1.1 → 0.1.4

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 (103) hide show
  1. package/dist/cjs/classes/ReadOnlyProvider.Blockfrost.class.js +155 -22
  2. package/dist/cjs/classes/ReadOnlyProvider.Blockfrost.class.js.map +1 -1
  3. package/dist/cjs/classes/WalletObserver.class.js +105 -17
  4. package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
  5. package/dist/cjs/react-components/RenderWallet.js +2 -1
  6. package/dist/cjs/react-components/RenderWallet.js.map +1 -1
  7. package/dist/cjs/react-components/RenderWalletHandles.js +2 -1
  8. package/dist/cjs/react-components/RenderWalletHandles.js.map +1 -1
  9. package/dist/cjs/react-components/RenderWalletPeerConnect.js +2 -1
  10. package/dist/cjs/react-components/RenderWalletPeerConnect.js.map +1 -1
  11. package/dist/cjs/react-components/RenderWalletState.js +2 -1
  12. package/dist/cjs/react-components/RenderWalletState.js.map +1 -1
  13. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js +60 -3
  14. package/dist/cjs/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  15. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js +3 -1
  16. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js.map +1 -1
  17. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js +24 -4
  18. package/dist/cjs/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js.map +1 -1
  19. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +38 -36
  20. package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  21. package/dist/cjs/react-components/contexts/observer/context.js +40 -1
  22. package/dist/cjs/react-components/contexts/observer/context.js.map +1 -1
  23. package/dist/cjs/react-components/contexts/observer/types.js.map +1 -1
  24. package/dist/cjs/react-components/hooks/useWalletData.js +6 -5
  25. package/dist/cjs/react-components/hooks/useWalletData.js.map +1 -1
  26. package/dist/cjs/react-components/hooks/useWalletHandles.js +11 -7
  27. package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
  28. package/dist/cjs/react-components/hooks/useWalletLoadingState.js +6 -7
  29. package/dist/cjs/react-components/hooks/useWalletLoadingState.js.map +1 -1
  30. package/dist/cjs/react-components/hooks/useWalletPeerConnect.js +18 -12
  31. package/dist/cjs/react-components/hooks/useWalletPeerConnect.js.map +1 -1
  32. package/dist/esm/classes/ReadOnlyProvider.Blockfrost.class.js +50 -8
  33. package/dist/esm/classes/ReadOnlyProvider.Blockfrost.class.js.map +1 -1
  34. package/dist/esm/classes/WalletObserver.class.js +79 -1
  35. package/dist/esm/classes/WalletObserver.class.js.map +1 -1
  36. package/dist/esm/react-components/RenderWallet.js +3 -2
  37. package/dist/esm/react-components/RenderWallet.js.map +1 -1
  38. package/dist/esm/react-components/RenderWalletHandles.js +3 -2
  39. package/dist/esm/react-components/RenderWalletHandles.js.map +1 -1
  40. package/dist/esm/react-components/RenderWalletPeerConnect.js +3 -2
  41. package/dist/esm/react-components/RenderWalletPeerConnect.js.map +1 -1
  42. package/dist/esm/react-components/RenderWalletState.js +3 -2
  43. package/dist/esm/react-components/RenderWalletState.js.map +1 -1
  44. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js +55 -4
  45. package/dist/esm/react-components/WalletObserverProvider/WalletObserverProvider.js.map +1 -1
  46. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js +1 -1
  47. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useDerivedState.js.map +1 -1
  48. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js +2 -2
  49. package/dist/esm/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.js.map +1 -1
  50. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +4 -4
  51. package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js.map +1 -1
  52. package/dist/esm/react-components/contexts/observer/context.js +36 -0
  53. package/dist/esm/react-components/contexts/observer/context.js.map +1 -1
  54. package/dist/esm/react-components/contexts/observer/types.js.map +1 -1
  55. package/dist/esm/react-components/hooks/useWalletData.js +7 -5
  56. package/dist/esm/react-components/hooks/useWalletData.js.map +1 -1
  57. package/dist/esm/react-components/hooks/useWalletHandles.js +11 -5
  58. package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
  59. package/dist/esm/react-components/hooks/useWalletLoadingState.js +7 -9
  60. package/dist/esm/react-components/hooks/useWalletLoadingState.js.map +1 -1
  61. package/dist/esm/react-components/hooks/useWalletPeerConnect.js +14 -11
  62. package/dist/esm/react-components/hooks/useWalletPeerConnect.js.map +1 -1
  63. package/dist/types/classes/ReadOnlyProvider.Blockfrost.class.d.ts +2 -0
  64. package/dist/types/classes/ReadOnlyProvider.Blockfrost.class.d.ts.map +1 -1
  65. package/dist/types/classes/WalletObserver.class.d.ts +11 -0
  66. package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
  67. package/dist/types/react-components/RenderWallet.d.ts +0 -6
  68. package/dist/types/react-components/RenderWallet.d.ts.map +1 -1
  69. package/dist/types/react-components/RenderWalletHandles.d.ts +0 -5
  70. package/dist/types/react-components/RenderWalletHandles.d.ts.map +1 -1
  71. package/dist/types/react-components/RenderWalletPeerConnect.d.ts +0 -5
  72. package/dist/types/react-components/RenderWalletPeerConnect.d.ts.map +1 -1
  73. package/dist/types/react-components/RenderWalletState.d.ts +1 -7
  74. package/dist/types/react-components/RenderWalletState.d.ts.map +1 -1
  75. package/dist/types/react-components/WalletObserverProvider/WalletObserverProvider.d.ts.map +1 -1
  76. package/dist/types/react-components/WalletObserverProvider/hooks/effects/useDerivedState.d.ts.map +1 -1
  77. package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts.map +1 -1
  78. package/dist/types/react-components/contexts/observer/context.d.ts +16 -1
  79. package/dist/types/react-components/contexts/observer/context.d.ts.map +1 -1
  80. package/dist/types/react-components/contexts/observer/types.d.ts +48 -1
  81. package/dist/types/react-components/contexts/observer/types.d.ts.map +1 -1
  82. package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
  83. package/dist/types/react-components/hooks/useWalletLoadingState.d.ts +1 -2
  84. package/dist/types/react-components/hooks/useWalletLoadingState.d.ts.map +1 -1
  85. package/dist/types/react-components/hooks/useWalletPeerConnect.d.ts.map +1 -1
  86. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  87. package/package.json +3 -3
  88. package/src/classes/ReadOnlyProvider.Blockfrost.class.ts +76 -11
  89. package/src/classes/WalletObserver.class.ts +97 -1
  90. package/src/react-components/RenderWallet.tsx +4 -2
  91. package/src/react-components/RenderWalletHandles.tsx +6 -2
  92. package/src/react-components/RenderWalletPeerConnect.tsx +6 -2
  93. package/src/react-components/RenderWalletState.tsx +8 -4
  94. package/src/react-components/WalletObserverProvider/WalletObserverProvider.tsx +92 -4
  95. package/src/react-components/WalletObserverProvider/hooks/effects/useDerivedState.ts +5 -2
  96. package/src/react-components/WalletObserverProvider/hooks/effects/useSyncWalletWithInterval.ts +2 -2
  97. package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +67 -37
  98. package/src/react-components/contexts/observer/context.ts +71 -1
  99. package/src/react-components/contexts/observer/types.ts +57 -1
  100. package/src/react-components/hooks/useWalletData.ts +5 -5
  101. package/src/react-components/hooks/useWalletHandles.ts +13 -8
  102. package/src/react-components/hooks/useWalletLoadingState.ts +13 -11
  103. package/src/react-components/hooks/useWalletPeerConnect.tsx +20 -11
@@ -8,6 +8,13 @@ var _core = require("@cardano-sdk/core");
8
8
  var _crypto = require("@cardano-sdk/crypto");
9
9
  var _util = require("@cardano-sdk/util");
10
10
  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); }
11
+ 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; } } }; }
12
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
13
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
15
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
16
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
17
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
11
18
  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; }
12
19
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
13
20
  function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
@@ -25,27 +32,42 @@ var ReadOnlyBlockfrostProvider = exports.ReadOnlyBlockfrostProvider = /*#__PURE_
25
32
  this.blockfrostProjectId = blockfrostProjectId;
26
33
  }
27
34
  return _createClass(ReadOnlyBlockfrostProvider, [{
35
+ key: "__networkName",
36
+ value: function __networkName(network) {
37
+ if (network === 1) return "mainnet";
38
+ if (this.blockfrostProjectId.startsWith("preprod")) return "preprod";
39
+ return "preview";
40
+ }
41
+ }, {
28
42
  key: "getBalance",
29
43
  value: function () {
30
44
  var _getBalance = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(address, network) {
31
- var result, value;
45
+ var response, result, value;
32
46
  return _regeneratorRuntime().wrap(function _callee$(_context) {
33
47
  while (1) switch (_context.prev = _context.next) {
34
48
  case 0:
35
49
  _context.next = 2;
36
- return fetch("https://cardano-".concat(network ? "mainnet" : "preview", ".blockfrost.io/api/v0/addresses/").concat(address), {
50
+ return fetch("https://cardano-".concat(this.__networkName(network), ".blockfrost.io/api/v0/addresses/").concat(address), {
37
51
  headers: {
38
52
  project_id: this.blockfrostProjectId
39
53
  }
40
- }).then(function (res) {
41
- return res.json();
42
54
  });
43
55
  case 2:
56
+ response = _context.sent;
57
+ _context.next = 5;
58
+ return response.json();
59
+ case 5:
44
60
  result = _context.sent;
61
+ if (!(!response.ok || "error" in result)) {
62
+ _context.next = 8;
63
+ break;
64
+ }
65
+ throw new Error("Blockfrost getBalance failed: ".concat(result.message || result.error || response.statusText));
66
+ case 8:
45
67
  // Build our value.
46
68
  value = this.__getValueFromAmount(result.amount); // Return the cbor.
47
69
  return _context.abrupt("return", value.toCbor());
48
- case 5:
70
+ case 10:
49
71
  case "end":
50
72
  return _context.stop();
51
73
  }
@@ -57,31 +79,142 @@ var ReadOnlyBlockfrostProvider = exports.ReadOnlyBlockfrostProvider = /*#__PURE_
57
79
  return getBalance;
58
80
  }()
59
81
  }, {
60
- key: "getUtxos",
82
+ key: "__fetchUtxoPage",
61
83
  value: function () {
62
- var _getUtxos = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(address, network) {
63
- var _this = this;
64
- var result, formatted;
84
+ var _fetchUtxoPage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(address, network, page) {
85
+ var response, result;
65
86
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
66
87
  while (1) switch (_context2.prev = _context2.next) {
67
88
  case 0:
68
89
  _context2.next = 2;
69
- return fetch("https://cardano-".concat(network ? "mainnet" : "preview", ".blockfrost.io/api/v0/addresses/").concat(address, "/utxos"), {
90
+ return fetch("https://cardano-".concat(this.__networkName(network), ".blockfrost.io/api/v0/addresses/").concat(address, "/utxos?count=100&page=").concat(page), {
70
91
  headers: {
71
92
  project_id: this.blockfrostProjectId
72
93
  }
73
- }).then(function (res) {
74
- return res.json();
75
94
  });
76
95
  case 2:
96
+ response = _context2.sent;
97
+ _context2.next = 5;
98
+ return response.json();
99
+ case 5:
77
100
  result = _context2.sent;
78
- if (!("error" in result)) {
79
- _context2.next = 5;
101
+ if (!(!response.ok || "error" in result)) {
102
+ _context2.next = 10;
80
103
  break;
81
104
  }
82
- return _context2.abrupt("return", []);
83
- case 5:
84
- formatted = result.map(function (r) {
105
+ if (!(page > 1)) {
106
+ _context2.next = 9;
107
+ break;
108
+ }
109
+ return _context2.abrupt("return", null);
110
+ case 9:
111
+ throw new Error("Blockfrost getUtxos failed: ".concat(result.message || result.error || response.statusText));
112
+ case 10:
113
+ return _context2.abrupt("return", result);
114
+ case 11:
115
+ case "end":
116
+ return _context2.stop();
117
+ }
118
+ }, _callee2, this);
119
+ }));
120
+ function __fetchUtxoPage(_x3, _x4, _x5) {
121
+ return _fetchUtxoPage.apply(this, arguments);
122
+ }
123
+ return __fetchUtxoPage;
124
+ }()
125
+ }, {
126
+ key: "getUtxos",
127
+ value: function () {
128
+ var _getUtxos = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(address, network) {
129
+ var _this = this;
130
+ var PAGE_SIZE, BATCH_SIZE, firstPage, allResults, batchStart, pageNums, pages, done, _iterator, _step, page, formatted;
131
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
132
+ while (1) switch (_context3.prev = _context3.next) {
133
+ case 0:
134
+ PAGE_SIZE = 100;
135
+ BATCH_SIZE = 5;
136
+ _context3.next = 4;
137
+ return this.__fetchUtxoPage(address, network, 1);
138
+ case 4:
139
+ firstPage = _context3.sent;
140
+ if (!(!firstPage || firstPage.length === 0)) {
141
+ _context3.next = 7;
142
+ break;
143
+ }
144
+ return _context3.abrupt("return", []);
145
+ case 7:
146
+ allResults = _toConsumableArray(firstPage);
147
+ if (!(firstPage.length === PAGE_SIZE)) {
148
+ _context3.next = 43;
149
+ break;
150
+ }
151
+ batchStart = 2;
152
+ case 10:
153
+ if (!true) {
154
+ _context3.next = 43;
155
+ break;
156
+ }
157
+ pageNums = Array.from({
158
+ length: BATCH_SIZE
159
+ }, function (_, i) {
160
+ return batchStart + i;
161
+ });
162
+ _context3.next = 14;
163
+ return Promise.all(pageNums.map(function (p) {
164
+ return _this.__fetchUtxoPage(address, network, p);
165
+ }));
166
+ case 14:
167
+ pages = _context3.sent;
168
+ done = false;
169
+ _iterator = _createForOfIteratorHelper(pages);
170
+ _context3.prev = 17;
171
+ _iterator.s();
172
+ case 19:
173
+ if ((_step = _iterator.n()).done) {
174
+ _context3.next = 30;
175
+ break;
176
+ }
177
+ page = _step.value;
178
+ if (!(!page || page.length === 0)) {
179
+ _context3.next = 24;
180
+ break;
181
+ }
182
+ done = true;
183
+ return _context3.abrupt("break", 30);
184
+ case 24:
185
+ allResults.push.apply(allResults, _toConsumableArray(page));
186
+ if (!(page.length < PAGE_SIZE)) {
187
+ _context3.next = 28;
188
+ break;
189
+ }
190
+ done = true;
191
+ return _context3.abrupt("break", 30);
192
+ case 28:
193
+ _context3.next = 19;
194
+ break;
195
+ case 30:
196
+ _context3.next = 35;
197
+ break;
198
+ case 32:
199
+ _context3.prev = 32;
200
+ _context3.t0 = _context3["catch"](17);
201
+ _iterator.e(_context3.t0);
202
+ case 35:
203
+ _context3.prev = 35;
204
+ _iterator.f();
205
+ return _context3.finish(35);
206
+ case 38:
207
+ if (!done) {
208
+ _context3.next = 40;
209
+ break;
210
+ }
211
+ return _context3.abrupt("break", 43);
212
+ case 40:
213
+ batchStart += BATCH_SIZE;
214
+ _context3.next = 10;
215
+ break;
216
+ case 43:
217
+ formatted = allResults.map(function (r) {
85
218
  return _core.Serialization.TransactionUnspentOutput.fromCore([_core.Serialization.TransactionInput.fromCore({
86
219
  index: r.output_index,
87
220
  txId: _core.Cardano.TransactionId(r.tx_hash)
@@ -92,14 +225,14 @@ var ReadOnlyBlockfrostProvider = exports.ReadOnlyBlockfrostProvider = /*#__PURE_
92
225
  datumHash: r.data_hash ? (0, _crypto.Hash32ByteBase16)(r.data_hash) : undefined
93
226
  }).toCore()]).toCbor();
94
227
  });
95
- return _context2.abrupt("return", formatted);
96
- case 7:
228
+ return _context3.abrupt("return", formatted);
229
+ case 45:
97
230
  case "end":
98
- return _context2.stop();
231
+ return _context3.stop();
99
232
  }
100
- }, _callee2, this);
233
+ }, _callee3, this, [[17, 32, 35, 38]]);
101
234
  }));
102
- function getUtxos(_x3, _x4) {
235
+ function getUtxos(_x6, _x7) {
103
236
  return _getUtxos.apply(this, arguments);
104
237
  }
105
238
  return getUtxos;
@@ -1 +1 @@
1
- {"version":3,"file":"ReadOnlyProvider.Blockfrost.class.js","names":["_core","require","_crypto","_util","_typeof","o","Symbol","iterator","constructor","prototype","_regeneratorRuntime","e","t","r","Object","n","hasOwnProperty","defineProperty","value","i","a","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_defineProperty","_toPrimitive","toPrimitive","String","Number","ReadOnlyBlockfrostProvider","exports","blockfrostProjectId","_getBalance","_callee","address","network","result","_callee$","_context","fetch","concat","headers","project_id","res","json","__getValueFromAmount","amount","toCbor","getBalance","_x","_x2","_getUtxos","_callee2","_this","formatted","_callee2$","_context2","map","Serialization","TransactionUnspentOutput","fromCore","TransactionInput","index","output_index","txId","Cardano","TransactionId","tx_hash","toCore","TransactionOutput","PaymentAddress","datum","inline_datum","PlutusData","fromCbor","HexBlob","undefined","datumHash","data_hash","Hash32ByteBase16","getUtxos","_x3","_x4","unit","quantity","lovelace","find","assets","filter","tokenMap","Map","asset","matchingEntry","get","AssetId","set","BigInt","Value","coins"],"sources":["../../../src/classes/ReadOnlyProvider.Blockfrost.class.ts"],"sourcesContent":["import type { BlockFrostAPI, Responses } from \"@blockfrost/blockfrost-js\";\nimport { Cardano, Serialization } from \"@cardano-sdk/core\";\nimport { Hash32ByteBase16 } from \"@cardano-sdk/crypto\";\n\nimport { HexBlob } from \"@cardano-sdk/util\";\nimport { ReadOnlyProvider } from \"./ReadOnlyProvider.Abstract.class.js\";\n\nexport class ReadOnlyBlockfrostProvider implements ReadOnlyProvider {\n blockfrostProjectId: string;\n api?: BlockFrostAPI;\n\n constructor(blockfrostProjectId: string) {\n this.blockfrostProjectId = blockfrostProjectId;\n }\n\n async getBalance(address: string, network: 0 | 1) {\n const result: Responses[\"address_content\"] = await fetch(\n `https://cardano-${network ? \"mainnet\" : \"preview\"}.blockfrost.io/api/v0/addresses/${address}`,\n {\n headers: {\n project_id: this.blockfrostProjectId,\n },\n },\n ).then((res) => res.json());\n\n // Build our value.\n const value = this.__getValueFromAmount(result.amount);\n\n // Return the cbor.\n return value.toCbor();\n }\n\n async getUtxos(address: string, network: 0 | 1) {\n const result: Responses[\"address_utxo_content\"] = await fetch(\n `https://cardano-${network ? \"mainnet\" : \"preview\"}.blockfrost.io/api/v0/addresses/${address}/utxos`,\n {\n headers: {\n project_id: this.blockfrostProjectId,\n },\n },\n ).then((res) => res.json());\n\n if (\"error\" in result) {\n return [];\n }\n\n const formatted = result.map((r) => {\n return Serialization.TransactionUnspentOutput.fromCore([\n Serialization.TransactionInput.fromCore({\n index: r.output_index,\n txId: Cardano.TransactionId(r.tx_hash),\n }).toCore(),\n Serialization.TransactionOutput.fromCore({\n address: Cardano.PaymentAddress(r.address),\n value: this.__getValueFromAmount(r.amount).toCore(),\n datum: r.inline_datum\n ? Serialization.PlutusData.fromCbor(\n HexBlob(r.inline_datum),\n ).toCore()\n : undefined,\n datumHash: r.data_hash ? Hash32ByteBase16(r.data_hash) : undefined,\n }).toCore(),\n ]).toCbor();\n });\n\n return formatted;\n }\n\n private __getValueFromAmount(amount?: { unit: string; quantity: string }[]) {\n if (!amount) {\n amount = [\n {\n unit: \"lovelace\",\n quantity: \"0\",\n },\n ];\n }\n\n const lovelace = amount.find((a) => a.unit === \"lovelace\");\n const assets = amount.filter((a) => a.unit !== \"lovelace\");\n\n // Build our token map.\n const tokenMap = new Map<Cardano.AssetId, bigint>();\n assets.forEach((asset) => {\n const matchingEntry = tokenMap.get(Cardano.AssetId(asset.unit)) || 0n;\n tokenMap.set(\n Cardano.AssetId(asset.unit),\n BigInt(asset.quantity) + matchingEntry,\n );\n });\n\n // Build our value.\n const value = Serialization.Value.fromCore({\n coins: BigInt(lovelace?.quantity || 0),\n assets: tokenMap,\n });\n\n return value;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ReadOnlyProvider.Blockfrost.class.js","names":["_core","require","_crypto","_util","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","r","e","t","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","a","u","call","next","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_arrayLikeToArray","toString","slice","name","from","test","_regeneratorRuntime","Object","hasOwnProperty","defineProperty","i","c","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_defineProperty","_toPrimitive","toPrimitive","String","Number","ReadOnlyBlockfrostProvider","exports","blockfrostProjectId","__networkName","network","startsWith","_getBalance","_callee","address","response","result","_callee$","_context","fetch","concat","headers","project_id","json","ok","message","error","statusText","__getValueFromAmount","amount","toCbor","getBalance","_x","_x2","_fetchUtxoPage","_callee2","page","_callee2$","_context2","__fetchUtxoPage","_x3","_x4","_x5","_getUtxos","_callee3","_this","PAGE_SIZE","BATCH_SIZE","firstPage","allResults","batchStart","pageNums","pages","_iterator","_step","formatted","_callee3$","_context3","_","all","map","t0","Serialization","TransactionUnspentOutput","fromCore","TransactionInput","index","output_index","txId","Cardano","TransactionId","tx_hash","toCore","TransactionOutput","PaymentAddress","datum","inline_datum","PlutusData","fromCbor","HexBlob","undefined","datumHash","data_hash","Hash32ByteBase16","getUtxos","_x6","_x7","unit","quantity","lovelace","find","assets","filter","tokenMap","Map","asset","matchingEntry","get","AssetId","set","BigInt","Value","coins"],"sources":["../../../src/classes/ReadOnlyProvider.Blockfrost.class.ts"],"sourcesContent":["import type { BlockFrostAPI, Responses } from \"@blockfrost/blockfrost-js\";\nimport { Cardano, Serialization } from \"@cardano-sdk/core\";\nimport { Hash32ByteBase16 } from \"@cardano-sdk/crypto\";\n\nimport { HexBlob } from \"@cardano-sdk/util\";\nimport { ReadOnlyProvider } from \"./ReadOnlyProvider.Abstract.class.js\";\n\nexport class ReadOnlyBlockfrostProvider implements ReadOnlyProvider {\n blockfrostProjectId: string;\n api?: BlockFrostAPI;\n\n constructor(blockfrostProjectId: string) {\n this.blockfrostProjectId = blockfrostProjectId;\n }\n\n private __networkName(network: 0 | 1): string {\n if (network === 1) return \"mainnet\";\n if (this.blockfrostProjectId.startsWith(\"preprod\")) return \"preprod\";\n return \"preview\";\n }\n\n async getBalance(address: string, network: 0 | 1) {\n const response = await fetch(\n `https://cardano-${this.__networkName(network)}.blockfrost.io/api/v0/addresses/${address}`,\n {\n headers: {\n project_id: this.blockfrostProjectId,\n },\n },\n );\n\n const result = await response.json();\n\n if (!response.ok || \"error\" in result) {\n throw new Error(\n `Blockfrost getBalance failed: ${result.message || result.error || response.statusText}`,\n );\n }\n\n // Build our value.\n const value = this.__getValueFromAmount(\n (result as Responses[\"address_content\"]).amount,\n );\n\n // Return the cbor.\n return value.toCbor();\n }\n\n private async __fetchUtxoPage(\n address: string,\n network: 0 | 1,\n page: number,\n ): Promise<Responses[\"address_utxo_content\"] | null> {\n const response = await fetch(\n `https://cardano-${this.__networkName(network)}.blockfrost.io/api/v0/addresses/${address}/utxos?count=100&page=${page}`,\n {\n headers: {\n project_id: this.blockfrostProjectId,\n },\n },\n );\n\n const result = await response.json();\n\n if (!response.ok || \"error\" in result) {\n if (page > 1) return null;\n throw new Error(\n `Blockfrost getUtxos failed: ${result.message || result.error || response.statusText}`,\n );\n }\n\n return result as Responses[\"address_utxo_content\"];\n }\n\n async getUtxos(address: string, network: 0 | 1) {\n const PAGE_SIZE = 100;\n const BATCH_SIZE = 5;\n\n const firstPage = await this.__fetchUtxoPage(address, network, 1);\n if (!firstPage || firstPage.length === 0) return [];\n\n const allResults: Responses[\"address_utxo_content\"] = [...firstPage];\n\n if (firstPage.length === PAGE_SIZE) {\n let batchStart = 2;\n while (true) {\n const pageNums = Array.from(\n { length: BATCH_SIZE },\n (_, i) => batchStart + i,\n );\n const pages = await Promise.all(\n pageNums.map((p) => this.__fetchUtxoPage(address, network, p)),\n );\n\n let done = false;\n for (const page of pages) {\n if (!page || page.length === 0) {\n done = true;\n break;\n }\n allResults.push(...page);\n if (page.length < PAGE_SIZE) {\n done = true;\n break;\n }\n }\n if (done) break;\n batchStart += BATCH_SIZE;\n }\n }\n\n const formatted = allResults.map((r) => {\n return Serialization.TransactionUnspentOutput.fromCore([\n Serialization.TransactionInput.fromCore({\n index: r.output_index,\n txId: Cardano.TransactionId(r.tx_hash),\n }).toCore(),\n Serialization.TransactionOutput.fromCore({\n address: Cardano.PaymentAddress(r.address),\n value: this.__getValueFromAmount(r.amount).toCore(),\n datum: r.inline_datum\n ? Serialization.PlutusData.fromCbor(\n HexBlob(r.inline_datum),\n ).toCore()\n : undefined,\n datumHash: r.data_hash ? Hash32ByteBase16(r.data_hash) : undefined,\n }).toCore(),\n ]).toCbor();\n });\n\n return formatted;\n }\n\n private __getValueFromAmount(amount?: { unit: string; quantity: string }[]) {\n if (!amount) {\n amount = [\n {\n unit: \"lovelace\",\n quantity: \"0\",\n },\n ];\n }\n\n const lovelace = amount.find((a) => a.unit === \"lovelace\");\n const assets = amount.filter((a) => a.unit !== \"lovelace\");\n\n // Build our token map.\n const tokenMap = new Map<Cardano.AssetId, bigint>();\n assets.forEach((asset) => {\n const matchingEntry = tokenMap.get(Cardano.AssetId(asset.unit)) || 0n;\n tokenMap.set(\n Cardano.AssetId(asset.unit),\n BigInt(asset.quantity) + matchingEntry,\n );\n });\n\n // Build our value.\n const value = Serialization.Value.fromCore({\n coins: BigInt(lovelace?.quantity || 0),\n assets: tokenMap,\n });\n\n return value;\n }\n}\n"],"mappings":"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","ignoreList":[]}