@sundaeswap/wallet-lite 0.0.102 → 0.0.104
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/classes/WalletObserver.class.js +236 -172
- package/dist/cjs/classes/WalletObserver.class.js.map +1 -1
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +35 -22
- package/dist/cjs/react-components/WalletObserverProvider/hooks/useWalletObserverState.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/esm/classes/WalletObserver.class.js +49 -0
- package/dist/esm/classes/WalletObserver.class.js.map +1 -1
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.js +4 -0
- package/dist/esm/react-components/WalletObserverProvider/hooks/useWalletObserverState.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/types/classes/WalletObserver.class.d.ts +11 -0
- package/dist/types/classes/WalletObserver.class.d.ts.map +1 -1
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.d.ts +1 -0
- package/dist/types/react-components/WalletObserverProvider/hooks/useWalletObserverState.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/package.json +1 -1
- package/src/classes/WalletObserver.class.ts +54 -0
- package/src/react-components/WalletObserverProvider/hooks/useWalletObserverState.ts +5 -0
- package/src/react-components/hooks/useWalletObserver.ts +2 -0
|
@@ -81,6 +81,8 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
81
81
|
_defineProperty(_this, "_options", void 0);
|
|
82
82
|
// Caching
|
|
83
83
|
_defineProperty(_this, "_cachedMetadata", new Map());
|
|
84
|
+
// AbortController for cancelling in-flight metadata fetches when metadataResolver changes
|
|
85
|
+
_defineProperty(_this, "_metadataAbortController", null);
|
|
84
86
|
/**
|
|
85
87
|
* Synchronizes the wallet. This method handles syncing the class
|
|
86
88
|
* against the currently selected active wallet. If the wallet has
|
|
@@ -286,11 +288,26 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
286
288
|
});
|
|
287
289
|
/**
|
|
288
290
|
* Updates the wallet observer options. Merges the new options with the existing ones.
|
|
291
|
+
* If metadataResolver changes, cancels any in-flight metadata fetch, clears the cache,
|
|
292
|
+
* and triggers a new sync if there is an active connection.
|
|
289
293
|
*
|
|
290
294
|
* @param {Partial<TWalletObserverOptions<AssetMetadata>>} options - The new options to merge.
|
|
291
295
|
*/
|
|
292
296
|
_defineProperty(_this, "updateOptions", function (options) {
|
|
297
|
+
var metadataResolverChanged = options.metadataResolver && options.metadataResolver !== _this._options.metadataResolver;
|
|
293
298
|
_this._options = (0, _merge["default"])(_this._options, options);
|
|
299
|
+
|
|
300
|
+
// If metadataResolver changed, abort in-flight fetch, clear cache, and re-sync
|
|
301
|
+
if (metadataResolverChanged) {
|
|
302
|
+
var _this$_metadataAbortC;
|
|
303
|
+
(_this$_metadataAbortC = _this._metadataAbortController) === null || _this$_metadataAbortC === void 0 || _this$_metadataAbortC.abort();
|
|
304
|
+
_this._cachedMetadata = new Map();
|
|
305
|
+
|
|
306
|
+
// Trigger a new sync if there's an active connection
|
|
307
|
+
if (_this.hasActiveConnection() && !_this._performingSync) {
|
|
308
|
+
_this.sync();
|
|
309
|
+
}
|
|
310
|
+
}
|
|
294
311
|
});
|
|
295
312
|
/**
|
|
296
313
|
* Attempts to connect a wallet using the global window
|
|
@@ -427,6 +444,35 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
427
444
|
_defineProperty(_this, "getCachedAssetMetadata", function () {
|
|
428
445
|
return _this._cachedMetadata;
|
|
429
446
|
});
|
|
447
|
+
/**
|
|
448
|
+
* Clears the cached metadata and triggers a fresh sync to re-fetch metadata.
|
|
449
|
+
* Useful when the client wants to manually refresh metadata without changing the resolver.
|
|
450
|
+
*
|
|
451
|
+
* @returns {Promise<void>}
|
|
452
|
+
*/
|
|
453
|
+
_defineProperty(_this, "resyncMetadata", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
454
|
+
var _this$_metadataAbortC2;
|
|
455
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
456
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
457
|
+
case 0:
|
|
458
|
+
// Abort any in-flight fetch
|
|
459
|
+
(_this$_metadataAbortC2 = _this._metadataAbortController) === null || _this$_metadataAbortC2 === void 0 || _this$_metadataAbortC2.abort();
|
|
460
|
+
// Clear the cache
|
|
461
|
+
_this._cachedMetadata = new Map();
|
|
462
|
+
|
|
463
|
+
// Trigger a new sync if there's an active connection
|
|
464
|
+
if (!_this.hasActiveConnection()) {
|
|
465
|
+
_context5.next = 5;
|
|
466
|
+
break;
|
|
467
|
+
}
|
|
468
|
+
_context5.next = 5;
|
|
469
|
+
return _this.sync();
|
|
470
|
+
case 5:
|
|
471
|
+
case "end":
|
|
472
|
+
return _context5.stop();
|
|
473
|
+
}
|
|
474
|
+
}, _callee5);
|
|
475
|
+
})));
|
|
430
476
|
/**
|
|
431
477
|
* Helper function to restore the class instance to its initial state.
|
|
432
478
|
*
|
|
@@ -443,93 +489,93 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
443
489
|
*
|
|
444
490
|
* @returns {Promise<string | Error>} The change address, or an error.
|
|
445
491
|
*/
|
|
446
|
-
_defineProperty(_this, "getChangeAddress", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
492
|
+
_defineProperty(_this, "getChangeAddress", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
|
|
447
493
|
var start, _yield$Promise$all3, _yield$Promise$all4, Cardano, typedHex, cbor, data, end;
|
|
448
|
-
return _regeneratorRuntime().wrap(function
|
|
449
|
-
while (1) switch (
|
|
494
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
495
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
450
496
|
case 0:
|
|
451
497
|
if (_this.api) {
|
|
452
|
-
|
|
498
|
+
_context6.next = 2;
|
|
453
499
|
break;
|
|
454
500
|
}
|
|
455
501
|
throw new Error("Attempted to query change address without an API instance.");
|
|
456
502
|
case 2:
|
|
457
503
|
start = performance.now();
|
|
458
|
-
|
|
504
|
+
_context6.next = 5;
|
|
459
505
|
return Promise.all([(0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
460
506
|
case 5:
|
|
461
|
-
_yield$Promise$all3 =
|
|
507
|
+
_yield$Promise$all3 = _context6.sent;
|
|
462
508
|
_yield$Promise$all4 = _slicedToArray(_yield$Promise$all3, 2);
|
|
463
509
|
Cardano = _yield$Promise$all4[0].Cardano;
|
|
464
510
|
typedHex = _yield$Promise$all4[1];
|
|
465
|
-
|
|
466
|
-
|
|
511
|
+
_context6.prev = 9;
|
|
512
|
+
_context6.next = 12;
|
|
467
513
|
return _this.api.getChangeAddress();
|
|
468
514
|
case 12:
|
|
469
|
-
cbor =
|
|
470
|
-
|
|
515
|
+
cbor = _context6.sent;
|
|
516
|
+
_context6.next = 18;
|
|
471
517
|
break;
|
|
472
518
|
case 15:
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
return
|
|
519
|
+
_context6.prev = 15;
|
|
520
|
+
_context6.t0 = _context6["catch"](9);
|
|
521
|
+
return _context6.abrupt("return", _context6.t0);
|
|
476
522
|
case 18:
|
|
477
523
|
data = Cardano.Address.fromBytes(typedHex(cbor)).toBech32();
|
|
478
524
|
end = performance.now();
|
|
479
525
|
if (_this._options.debug) {
|
|
480
526
|
console.log("getChangeAddress: ".concat(end - start, "ms"));
|
|
481
527
|
}
|
|
482
|
-
return
|
|
528
|
+
return _context6.abrupt("return", data);
|
|
483
529
|
case 22:
|
|
484
530
|
case "end":
|
|
485
|
-
return
|
|
531
|
+
return _context6.stop();
|
|
486
532
|
}
|
|
487
|
-
},
|
|
533
|
+
}, _callee6, null, [[9, 15]]);
|
|
488
534
|
})));
|
|
489
535
|
/**
|
|
490
536
|
* Retrieves the balance of the wallet, including metadata for each asset.
|
|
491
537
|
*
|
|
492
538
|
* @returns {Promise<WalletBalanceMap<AssetMetadata>>} - A promise that resolves to a map of asset amounts keyed by asset IDs.
|
|
493
539
|
*/
|
|
494
|
-
_defineProperty(_this, "getBalanceMap", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
540
|
+
_defineProperty(_this, "getBalanceMap", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
|
|
495
541
|
var _data$multiasset$keys, _data$multiasset, _data$multiasset$entr, _data$multiasset2;
|
|
496
542
|
var start, _yield$Promise$all5, _yield$Promise$all6, Serialization, typedHex, cbor, data, multiassetKeys, metadata, balanceMap, multiassetEntries, _iterator, _step, _step$value, id, amount, end;
|
|
497
|
-
return _regeneratorRuntime().wrap(function
|
|
498
|
-
while (1) switch (
|
|
543
|
+
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
544
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
499
545
|
case 0:
|
|
500
546
|
if (_this.api) {
|
|
501
|
-
|
|
547
|
+
_context7.next = 2;
|
|
502
548
|
break;
|
|
503
549
|
}
|
|
504
550
|
throw new Error("Attempted to query balance without an API instance.");
|
|
505
551
|
case 2:
|
|
506
552
|
start = performance.now();
|
|
507
553
|
_this.dispatch(_events.EWalletObserverEvents.GET_BALANCE_MAP_START);
|
|
508
|
-
|
|
554
|
+
_context7.next = 6;
|
|
509
555
|
return Promise.all([(0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
510
556
|
case 6:
|
|
511
|
-
_yield$Promise$all5 =
|
|
557
|
+
_yield$Promise$all5 = _context7.sent;
|
|
512
558
|
_yield$Promise$all6 = _slicedToArray(_yield$Promise$all5, 2);
|
|
513
559
|
Serialization = _yield$Promise$all6[0].Serialization;
|
|
514
560
|
typedHex = _yield$Promise$all6[1];
|
|
515
|
-
|
|
516
|
-
|
|
561
|
+
_context7.prev = 10;
|
|
562
|
+
_context7.next = 13;
|
|
517
563
|
return _this.api.getBalance();
|
|
518
564
|
case 13:
|
|
519
|
-
cbor =
|
|
520
|
-
|
|
565
|
+
cbor = _context7.sent;
|
|
566
|
+
_context7.next = 19;
|
|
521
567
|
break;
|
|
522
568
|
case 16:
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
return
|
|
569
|
+
_context7.prev = 16;
|
|
570
|
+
_context7.t0 = _context7["catch"](10);
|
|
571
|
+
return _context7.abrupt("return", _context7.t0);
|
|
526
572
|
case 19:
|
|
527
573
|
data = Serialization.Value.fromCbor(typedHex(cbor));
|
|
528
574
|
multiassetKeys = (_data$multiasset$keys = (_data$multiasset = data.multiasset()) === null || _data$multiasset === void 0 ? void 0 : _data$multiasset.keys()) !== null && _data$multiasset$keys !== void 0 ? _data$multiasset$keys : [];
|
|
529
|
-
|
|
575
|
+
_context7.next = 23;
|
|
530
576
|
return _this.__metadataResolverWithCache([_constants.ADA_ASSET_ID].concat(_toConsumableArray(multiassetKeys)));
|
|
531
577
|
case 23:
|
|
532
|
-
metadata =
|
|
578
|
+
metadata = _context7.sent;
|
|
533
579
|
balanceMap = new _WalletBalanceMapClass.WalletBalanceMap(_this);
|
|
534
580
|
balanceMap.set(_constants.ADA_ASSET_ID, new _asset.AssetAmount(data.coin(), metadata.get(_constants.ADA_ASSET_ID)));
|
|
535
581
|
multiassetEntries = (_data$multiasset$entr = (_data$multiasset2 = data.multiasset()) === null || _data$multiasset2 === void 0 ? void 0 : _data$multiasset2.entries()) !== null && _data$multiasset$entr !== void 0 ? _data$multiasset$entr : [];
|
|
@@ -553,89 +599,89 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
553
599
|
if (_this._options.debug) {
|
|
554
600
|
console.log("getBalanceMap: ".concat(end - start, "ms"));
|
|
555
601
|
}
|
|
556
|
-
return
|
|
602
|
+
return _context7.abrupt("return", balanceMap);
|
|
557
603
|
case 32:
|
|
558
604
|
case "end":
|
|
559
|
-
return
|
|
605
|
+
return _context7.stop();
|
|
560
606
|
}
|
|
561
|
-
},
|
|
607
|
+
}, _callee7, null, [[10, 16]]);
|
|
562
608
|
})));
|
|
563
609
|
/**
|
|
564
610
|
* Gets the current network connection.
|
|
565
611
|
*
|
|
566
612
|
* @returns {Promise<number | Error>} The network ID or an Error from the wallet.
|
|
567
613
|
*/
|
|
568
|
-
_defineProperty(_this, "getNetwork", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
614
|
+
_defineProperty(_this, "getNetwork", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
|
|
569
615
|
var start, val, end;
|
|
570
|
-
return _regeneratorRuntime().wrap(function
|
|
571
|
-
while (1) switch (
|
|
616
|
+
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
617
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
572
618
|
case 0:
|
|
573
619
|
if (_this.api) {
|
|
574
|
-
|
|
620
|
+
_context8.next = 2;
|
|
575
621
|
break;
|
|
576
622
|
}
|
|
577
623
|
throw new Error("Attempted to query network without an API instance.");
|
|
578
624
|
case 2:
|
|
579
625
|
start = performance.now();
|
|
580
|
-
|
|
581
|
-
|
|
626
|
+
_context8.prev = 3;
|
|
627
|
+
_context8.next = 6;
|
|
582
628
|
return _this.api.getNetworkId();
|
|
583
629
|
case 6:
|
|
584
|
-
val =
|
|
585
|
-
|
|
630
|
+
val = _context8.sent;
|
|
631
|
+
_context8.next = 12;
|
|
586
632
|
break;
|
|
587
633
|
case 9:
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
return
|
|
634
|
+
_context8.prev = 9;
|
|
635
|
+
_context8.t0 = _context8["catch"](3);
|
|
636
|
+
return _context8.abrupt("return", _context8.t0);
|
|
591
637
|
case 12:
|
|
592
638
|
_this.network = val;
|
|
593
639
|
end = performance.now();
|
|
594
640
|
if (_this._options.debug) {
|
|
595
641
|
console.log("getNetwork: ".concat(end - start, "ms"));
|
|
596
642
|
}
|
|
597
|
-
return
|
|
643
|
+
return _context8.abrupt("return", val);
|
|
598
644
|
case 16:
|
|
599
645
|
case "end":
|
|
600
|
-
return
|
|
646
|
+
return _context8.stop();
|
|
601
647
|
}
|
|
602
|
-
},
|
|
648
|
+
}, _callee8, null, [[3, 9]]);
|
|
603
649
|
})));
|
|
604
650
|
/**
|
|
605
651
|
* Gets a list of used addresses, encoded as Bech32.
|
|
606
652
|
*
|
|
607
653
|
* @returns {Promise<string[]>} The list of addresses.
|
|
608
654
|
*/
|
|
609
|
-
_defineProperty(_this, "getUsedAddresses", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
655
|
+
_defineProperty(_this, "getUsedAddresses", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
|
|
610
656
|
var start, _yield$Promise$all7, _yield$Promise$all8, Cardano, typedHex, cbor, data, end;
|
|
611
|
-
return _regeneratorRuntime().wrap(function
|
|
612
|
-
while (1) switch (
|
|
657
|
+
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
658
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
613
659
|
case 0:
|
|
614
660
|
if (_this.api) {
|
|
615
|
-
|
|
661
|
+
_context9.next = 2;
|
|
616
662
|
break;
|
|
617
663
|
}
|
|
618
664
|
throw new Error("Attempted to query used addresses without an API instance.");
|
|
619
665
|
case 2:
|
|
620
666
|
start = performance.now();
|
|
621
|
-
|
|
667
|
+
_context9.next = 5;
|
|
622
668
|
return Promise.all([(0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
623
669
|
case 5:
|
|
624
|
-
_yield$Promise$all7 =
|
|
670
|
+
_yield$Promise$all7 = _context9.sent;
|
|
625
671
|
_yield$Promise$all8 = _slicedToArray(_yield$Promise$all7, 2);
|
|
626
672
|
Cardano = _yield$Promise$all8[0].Cardano;
|
|
627
673
|
typedHex = _yield$Promise$all8[1];
|
|
628
|
-
|
|
629
|
-
|
|
674
|
+
_context9.prev = 9;
|
|
675
|
+
_context9.next = 12;
|
|
630
676
|
return _this.api.getUsedAddresses();
|
|
631
677
|
case 12:
|
|
632
|
-
cbor =
|
|
633
|
-
|
|
678
|
+
cbor = _context9.sent;
|
|
679
|
+
_context9.next = 18;
|
|
634
680
|
break;
|
|
635
681
|
case 15:
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
return
|
|
682
|
+
_context9.prev = 15;
|
|
683
|
+
_context9.t0 = _context9["catch"](9);
|
|
684
|
+
return _context9.abrupt("return", _context9.t0);
|
|
639
685
|
case 18:
|
|
640
686
|
data = cbor.map(function (val) {
|
|
641
687
|
return Cardano.Address.fromBytes(typedHex(val)).toBech32();
|
|
@@ -644,48 +690,48 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
644
690
|
if (_this._options.debug) {
|
|
645
691
|
console.log("getUsedAddresses: ".concat(end - start, "ms"));
|
|
646
692
|
}
|
|
647
|
-
return
|
|
693
|
+
return _context9.abrupt("return", data);
|
|
648
694
|
case 22:
|
|
649
695
|
case "end":
|
|
650
|
-
return
|
|
696
|
+
return _context9.stop();
|
|
651
697
|
}
|
|
652
|
-
},
|
|
698
|
+
}, _callee9, null, [[9, 15]]);
|
|
653
699
|
})));
|
|
654
700
|
/**
|
|
655
701
|
* Gets a list of unused addresses, encoded as Bech32.
|
|
656
702
|
*
|
|
657
703
|
* @returns {Promise<string[] | Error>} The list of addresses or an Error returned by the wallet.
|
|
658
704
|
*/
|
|
659
|
-
_defineProperty(_this, "getUnusedAddresses", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
705
|
+
_defineProperty(_this, "getUnusedAddresses", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
|
|
660
706
|
var start, _yield$Promise$all9, _yield$Promise$all10, Cardano, typedHex, cbor, data, end;
|
|
661
|
-
return _regeneratorRuntime().wrap(function
|
|
662
|
-
while (1) switch (
|
|
707
|
+
return _regeneratorRuntime().wrap(function _callee10$(_context10) {
|
|
708
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
663
709
|
case 0:
|
|
664
710
|
if (_this.api) {
|
|
665
|
-
|
|
711
|
+
_context10.next = 2;
|
|
666
712
|
break;
|
|
667
713
|
}
|
|
668
714
|
throw new Error("Attempted to query unused addresses without an API instance.");
|
|
669
715
|
case 2:
|
|
670
716
|
start = performance.now();
|
|
671
|
-
|
|
717
|
+
_context10.next = 5;
|
|
672
718
|
return Promise.all([(0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
673
719
|
case 5:
|
|
674
|
-
_yield$Promise$all9 =
|
|
720
|
+
_yield$Promise$all9 = _context10.sent;
|
|
675
721
|
_yield$Promise$all10 = _slicedToArray(_yield$Promise$all9, 2);
|
|
676
722
|
Cardano = _yield$Promise$all10[0].Cardano;
|
|
677
723
|
typedHex = _yield$Promise$all10[1];
|
|
678
|
-
|
|
679
|
-
|
|
724
|
+
_context10.prev = 9;
|
|
725
|
+
_context10.next = 12;
|
|
680
726
|
return _this.api.getUnusedAddresses();
|
|
681
727
|
case 12:
|
|
682
|
-
cbor =
|
|
683
|
-
|
|
728
|
+
cbor = _context10.sent;
|
|
729
|
+
_context10.next = 18;
|
|
684
730
|
break;
|
|
685
731
|
case 15:
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
return
|
|
732
|
+
_context10.prev = 15;
|
|
733
|
+
_context10.t0 = _context10["catch"](9);
|
|
734
|
+
return _context10.abrupt("return", _context10.t0);
|
|
689
735
|
case 18:
|
|
690
736
|
data = cbor.map(function (val) {
|
|
691
737
|
return Cardano.Address.fromBytes(typedHex(val)).toBech32();
|
|
@@ -694,49 +740,49 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
694
740
|
if (_this._options.debug) {
|
|
695
741
|
console.log("getUnusedAddresses: ".concat(end - start, "ms"));
|
|
696
742
|
}
|
|
697
|
-
return
|
|
743
|
+
return _context10.abrupt("return", data);
|
|
698
744
|
case 22:
|
|
699
745
|
case "end":
|
|
700
|
-
return
|
|
746
|
+
return _context10.stop();
|
|
701
747
|
}
|
|
702
|
-
},
|
|
748
|
+
}, _callee10, null, [[9, 15]]);
|
|
703
749
|
})));
|
|
704
750
|
/**
|
|
705
751
|
* Gets a list of wallet UTXOs.
|
|
706
752
|
*
|
|
707
753
|
* @returns {Promise<TransactionUnspentOutput[]>} The list of TransactionUnspentOutputs.
|
|
708
754
|
*/
|
|
709
|
-
_defineProperty(_this, "getUtxos", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
755
|
+
_defineProperty(_this, "getUtxos", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11() {
|
|
710
756
|
var _cbor;
|
|
711
757
|
var start, _yield$Promise$all11, _yield$Promise$all12, Serialization, typedHex, cbor, data, end;
|
|
712
|
-
return _regeneratorRuntime().wrap(function
|
|
713
|
-
while (1) switch (
|
|
758
|
+
return _regeneratorRuntime().wrap(function _callee11$(_context11) {
|
|
759
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
714
760
|
case 0:
|
|
715
761
|
if (_this.api) {
|
|
716
|
-
|
|
762
|
+
_context11.next = 2;
|
|
717
763
|
break;
|
|
718
764
|
}
|
|
719
765
|
throw new Error("Attempted to query UTXOs without an API instance.");
|
|
720
766
|
case 2:
|
|
721
767
|
start = performance.now();
|
|
722
|
-
|
|
768
|
+
_context11.next = 5;
|
|
723
769
|
return Promise.all([(0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
724
770
|
case 5:
|
|
725
|
-
_yield$Promise$all11 =
|
|
771
|
+
_yield$Promise$all11 = _context11.sent;
|
|
726
772
|
_yield$Promise$all12 = _slicedToArray(_yield$Promise$all11, 2);
|
|
727
773
|
Serialization = _yield$Promise$all12[0].Serialization;
|
|
728
774
|
typedHex = _yield$Promise$all12[1];
|
|
729
|
-
|
|
730
|
-
|
|
775
|
+
_context11.prev = 9;
|
|
776
|
+
_context11.next = 12;
|
|
731
777
|
return _this.api.getUtxos();
|
|
732
778
|
case 12:
|
|
733
|
-
cbor =
|
|
734
|
-
|
|
779
|
+
cbor = _context11.sent;
|
|
780
|
+
_context11.next = 18;
|
|
735
781
|
break;
|
|
736
782
|
case 15:
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
return
|
|
783
|
+
_context11.prev = 15;
|
|
784
|
+
_context11.t0 = _context11["catch"](9);
|
|
785
|
+
return _context11.abrupt("return", _context11.t0);
|
|
740
786
|
case 18:
|
|
741
787
|
data = (_cbor = cbor) === null || _cbor === void 0 ? void 0 : _cbor.map(function (val) {
|
|
742
788
|
var txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
|
|
@@ -750,93 +796,93 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
750
796
|
if (_this._options.debug) {
|
|
751
797
|
console.log("getUtxos: ".concat(end - start, "ms"));
|
|
752
798
|
}
|
|
753
|
-
return
|
|
799
|
+
return _context11.abrupt("return", data);
|
|
754
800
|
case 22:
|
|
755
801
|
case "end":
|
|
756
|
-
return
|
|
802
|
+
return _context11.stop();
|
|
757
803
|
}
|
|
758
|
-
},
|
|
804
|
+
}, _callee11, null, [[9, 15]]);
|
|
759
805
|
})));
|
|
760
806
|
/**
|
|
761
807
|
* Gets the fee address set by the wallet, if available.
|
|
762
808
|
*
|
|
763
809
|
* @returns {Promise<string | Error | undefined>} The fee address or an Error.
|
|
764
810
|
*/
|
|
765
|
-
_defineProperty(_this, "getFeeAddress", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
811
|
+
_defineProperty(_this, "getFeeAddress", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {
|
|
766
812
|
var start, _window$cardano3, address, end;
|
|
767
|
-
return _regeneratorRuntime().wrap(function
|
|
768
|
-
while (1) switch (
|
|
813
|
+
return _regeneratorRuntime().wrap(function _callee12$(_context12) {
|
|
814
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
769
815
|
case 0:
|
|
770
816
|
if (_this.api) {
|
|
771
|
-
|
|
817
|
+
_context12.next = 2;
|
|
772
818
|
break;
|
|
773
819
|
}
|
|
774
820
|
throw new Error("Attempted to query fee address without an API instance.");
|
|
775
821
|
case 2:
|
|
776
822
|
start = performance.now();
|
|
777
|
-
|
|
823
|
+
_context12.prev = 3;
|
|
778
824
|
address = (_window$cardano3 = window.cardano) === null || _window$cardano3 === void 0 || (_window$cardano3 = _window$cardano3[_this.activeWallet]) === null || _window$cardano3 === void 0 || (_window$cardano3 = _window$cardano3.experimental) === null || _window$cardano3 === void 0 ? void 0 : _window$cardano3.feeAddress;
|
|
779
825
|
end = performance.now();
|
|
780
826
|
if (_this._options.debug) {
|
|
781
827
|
console.log("getFeeAddress: ".concat(end - start, "ms"));
|
|
782
828
|
}
|
|
783
|
-
return
|
|
829
|
+
return _context12.abrupt("return", address);
|
|
784
830
|
case 10:
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
return
|
|
831
|
+
_context12.prev = 10;
|
|
832
|
+
_context12.t0 = _context12["catch"](3);
|
|
833
|
+
return _context12.abrupt("return", _context12.t0);
|
|
788
834
|
case 13:
|
|
789
835
|
case "end":
|
|
790
|
-
return
|
|
836
|
+
return _context12.stop();
|
|
791
837
|
}
|
|
792
|
-
},
|
|
838
|
+
}, _callee12, null, [[3, 10]]);
|
|
793
839
|
})));
|
|
794
840
|
/**
|
|
795
841
|
* Gets a list of wallet UTXOs suitable for collateral.
|
|
796
842
|
*
|
|
797
843
|
* @returns {Promise<TransactionUnspentOutput[] | Error | undefined>} The list of TransactionUnspentOutputs, if there are any, or an Error.
|
|
798
844
|
*/
|
|
799
|
-
_defineProperty(_this, "getCollateral", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
845
|
+
_defineProperty(_this, "getCollateral", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {
|
|
800
846
|
var _cbor2;
|
|
801
847
|
var start, _yield$Promise$all13, _yield$Promise$all14, Serialization, typedHex, cbor, _this$api, _this$api2, funcCall, data, end;
|
|
802
|
-
return _regeneratorRuntime().wrap(function
|
|
803
|
-
while (1) switch (
|
|
848
|
+
return _regeneratorRuntime().wrap(function _callee13$(_context13) {
|
|
849
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
804
850
|
case 0:
|
|
805
851
|
if (_this.api) {
|
|
806
|
-
|
|
852
|
+
_context13.next = 2;
|
|
807
853
|
break;
|
|
808
854
|
}
|
|
809
855
|
throw new Error("Attempted to query UTXOs without an API instance.");
|
|
810
856
|
case 2:
|
|
811
857
|
start = performance.now();
|
|
812
|
-
|
|
858
|
+
_context13.next = 5;
|
|
813
859
|
return Promise.all([(0, _getLibs.getCardanoCore)(), (0, _getLibs.getCardanoUtil)()]);
|
|
814
860
|
case 5:
|
|
815
|
-
_yield$Promise$all13 =
|
|
861
|
+
_yield$Promise$all13 = _context13.sent;
|
|
816
862
|
_yield$Promise$all14 = _slicedToArray(_yield$Promise$all13, 2);
|
|
817
863
|
Serialization = _yield$Promise$all14[0].Serialization;
|
|
818
864
|
typedHex = _yield$Promise$all14[1];
|
|
819
|
-
|
|
865
|
+
_context13.prev = 9;
|
|
820
866
|
funcCall = ((_this$api = _this.api) === null || _this$api === void 0 ? void 0 : _this$api.getCollateral) || ((_this$api2 = _this.api) === null || _this$api2 === void 0 ? void 0 : _this$api2.experimental.getCollateral);
|
|
821
867
|
if (!(typeof funcCall !== "function")) {
|
|
822
|
-
|
|
868
|
+
_context13.next = 15;
|
|
823
869
|
break;
|
|
824
870
|
}
|
|
825
871
|
cbor = [];
|
|
826
|
-
|
|
872
|
+
_context13.next = 18;
|
|
827
873
|
break;
|
|
828
874
|
case 15:
|
|
829
|
-
|
|
875
|
+
_context13.next = 17;
|
|
830
876
|
return funcCall();
|
|
831
877
|
case 17:
|
|
832
|
-
cbor =
|
|
878
|
+
cbor = _context13.sent;
|
|
833
879
|
case 18:
|
|
834
|
-
|
|
880
|
+
_context13.next = 23;
|
|
835
881
|
break;
|
|
836
882
|
case 20:
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
return
|
|
883
|
+
_context13.prev = 20;
|
|
884
|
+
_context13.t0 = _context13["catch"](9);
|
|
885
|
+
return _context13.abrupt("return", _context13.t0);
|
|
840
886
|
case 23:
|
|
841
887
|
data = (_cbor2 = cbor) === null || _cbor2 === void 0 ? void 0 : _cbor2.map(function (val) {
|
|
842
888
|
var txOutput = Serialization.TransactionUnspentOutput.fromCbor(typedHex(val));
|
|
@@ -850,29 +896,31 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
850
896
|
if (_this._options.debug) {
|
|
851
897
|
console.log("getCollateral: ".concat(end - start, "ms"));
|
|
852
898
|
}
|
|
853
|
-
return
|
|
899
|
+
return _context13.abrupt("return", data);
|
|
854
900
|
case 27:
|
|
855
901
|
case "end":
|
|
856
|
-
return
|
|
902
|
+
return _context13.stop();
|
|
857
903
|
}
|
|
858
|
-
},
|
|
904
|
+
}, _callee13, null, [[9, 20]]);
|
|
859
905
|
})));
|
|
860
906
|
/**
|
|
861
907
|
* Resolves metadata for the given asset IDs, using a cached version if available.
|
|
908
|
+
* Aborts any in-flight fetch when called, ensuring only the latest request completes.
|
|
862
909
|
*
|
|
863
910
|
* @private
|
|
864
911
|
* @param {string[]} assetIds - The IDs of the assets to resolve metadata for.
|
|
865
912
|
* @returns {Promise<Map<string, AssetMetadata>>} - A promise that resolves to a map of asset metadata.
|
|
866
913
|
*/
|
|
867
914
|
_defineProperty(_this, "__metadataResolverWithCache", /*#__PURE__*/function () {
|
|
868
|
-
var
|
|
869
|
-
var
|
|
870
|
-
|
|
871
|
-
|
|
915
|
+
var _ref14 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14(assetIds) {
|
|
916
|
+
var _this$_metadataAbortC3;
|
|
917
|
+
var start, cachedKeys, inputKeys, _end, currentController, attempts, newMetadata, end;
|
|
918
|
+
return _regeneratorRuntime().wrap(function _callee14$(_context14) {
|
|
919
|
+
while (1) switch (_context14.prev = _context14.next) {
|
|
872
920
|
case 0:
|
|
873
921
|
start = performance.now();
|
|
874
922
|
if (!_this._cachedMetadata) {
|
|
875
|
-
|
|
923
|
+
_context14.next = 8;
|
|
876
924
|
break;
|
|
877
925
|
}
|
|
878
926
|
cachedKeys = new Set(_this._cachedMetadata.keys());
|
|
@@ -880,67 +928,83 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
880
928
|
if (!(cachedKeys.size === inputKeys.size && _toConsumableArray(cachedKeys).every(function (key) {
|
|
881
929
|
return inputKeys.has(key);
|
|
882
930
|
}))) {
|
|
883
|
-
|
|
931
|
+
_context14.next = 8;
|
|
884
932
|
break;
|
|
885
933
|
}
|
|
886
934
|
_end = performance.now();
|
|
887
935
|
if (_this._options.debug) {
|
|
888
936
|
console.log("metadataResolver (cached): ".concat(_end - start, "ms"));
|
|
889
937
|
}
|
|
890
|
-
return
|
|
938
|
+
return _context14.abrupt("return", _this._cachedMetadata);
|
|
891
939
|
case 8:
|
|
940
|
+
// Abort any in-flight metadata fetch
|
|
941
|
+
(_this$_metadataAbortC3 = _this._metadataAbortController) === null || _this$_metadataAbortC3 === void 0 || _this$_metadataAbortC3.abort();
|
|
942
|
+
_this._metadataAbortController = new AbortController();
|
|
943
|
+
currentController = _this._metadataAbortController;
|
|
892
944
|
attempts = 0;
|
|
893
|
-
case
|
|
945
|
+
case 12:
|
|
894
946
|
if (!(attempts <= 3 && !newMetadata)) {
|
|
895
|
-
|
|
947
|
+
_context14.next = 24;
|
|
896
948
|
break;
|
|
897
949
|
}
|
|
898
|
-
|
|
899
|
-
|
|
950
|
+
_context14.prev = 13;
|
|
951
|
+
_context14.next = 16;
|
|
900
952
|
return _this._options.metadataResolver({
|
|
901
953
|
assetIds: assetIds.map(_assets.normalizeAssetIdWithDot),
|
|
902
954
|
normalizeAssetId: _assets.normalizeAssetIdWithDot,
|
|
903
955
|
isAdaAsset: _assets.isAdaAsset
|
|
904
956
|
});
|
|
905
|
-
case 13:
|
|
906
|
-
newMetadata = _context13.sent;
|
|
907
|
-
_context13.next = 19;
|
|
908
|
-
break;
|
|
909
957
|
case 16:
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
958
|
+
newMetadata = _context14.sent;
|
|
959
|
+
_context14.next = 22;
|
|
960
|
+
break;
|
|
913
961
|
case 19:
|
|
914
|
-
|
|
962
|
+
_context14.prev = 19;
|
|
963
|
+
_context14.t0 = _context14["catch"](13);
|
|
964
|
+
attempts++;
|
|
965
|
+
case 22:
|
|
966
|
+
_context14.next = 12;
|
|
915
967
|
break;
|
|
916
|
-
case
|
|
968
|
+
case 24:
|
|
969
|
+
if (!currentController.signal.aborted) {
|
|
970
|
+
_context14.next = 26;
|
|
971
|
+
break;
|
|
972
|
+
}
|
|
973
|
+
return _context14.abrupt("return", _this._cachedMetadata);
|
|
974
|
+
case 26:
|
|
917
975
|
if (newMetadata) {
|
|
918
|
-
|
|
976
|
+
_context14.next = 30;
|
|
919
977
|
break;
|
|
920
978
|
}
|
|
921
|
-
|
|
979
|
+
_context14.next = 29;
|
|
922
980
|
return _this.fallbackMetadataResolver({
|
|
923
981
|
assetIds: assetIds.map(_assets.normalizeAssetIdWithDot),
|
|
924
982
|
normalizeAssetId: _assets.normalizeAssetIdWithDot,
|
|
925
983
|
isAdaAsset: _assets.isAdaAsset
|
|
926
984
|
});
|
|
927
|
-
case
|
|
928
|
-
newMetadata =
|
|
929
|
-
case
|
|
985
|
+
case 29:
|
|
986
|
+
newMetadata = _context14.sent;
|
|
987
|
+
case 30:
|
|
988
|
+
if (!currentController.signal.aborted) {
|
|
989
|
+
_context14.next = 32;
|
|
990
|
+
break;
|
|
991
|
+
}
|
|
992
|
+
return _context14.abrupt("return", _this._cachedMetadata);
|
|
993
|
+
case 32:
|
|
930
994
|
_this._cachedMetadata = newMetadata;
|
|
931
995
|
end = performance.now();
|
|
932
996
|
if (_this._options.debug) {
|
|
933
997
|
console.log("metadataResolver: ".concat(end - start, "ms"));
|
|
934
998
|
}
|
|
935
|
-
return
|
|
936
|
-
case
|
|
999
|
+
return _context14.abrupt("return", newMetadata);
|
|
1000
|
+
case 36:
|
|
937
1001
|
case "end":
|
|
938
|
-
return
|
|
1002
|
+
return _context14.stop();
|
|
939
1003
|
}
|
|
940
|
-
},
|
|
1004
|
+
}, _callee14, null, [[13, 19]]);
|
|
941
1005
|
}));
|
|
942
1006
|
return function (_x3) {
|
|
943
|
-
return
|
|
1007
|
+
return _ref14.apply(this, arguments);
|
|
944
1008
|
};
|
|
945
1009
|
}());
|
|
946
1010
|
/**
|
|
@@ -949,12 +1013,12 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
949
1013
|
* @type {TMetadataResolverFunc<AssetMetadata>}
|
|
950
1014
|
*/
|
|
951
1015
|
_defineProperty(_this, "fallbackMetadataResolver", /*#__PURE__*/function () {
|
|
952
|
-
var
|
|
1016
|
+
var _ref16 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15(_ref15) {
|
|
953
1017
|
var assetIds, map;
|
|
954
|
-
return _regeneratorRuntime().wrap(function
|
|
955
|
-
while (1) switch (
|
|
1018
|
+
return _regeneratorRuntime().wrap(function _callee15$(_context15) {
|
|
1019
|
+
while (1) switch (_context15.prev = _context15.next) {
|
|
956
1020
|
case 0:
|
|
957
|
-
assetIds =
|
|
1021
|
+
assetIds = _ref15.assetIds;
|
|
958
1022
|
map = new Map();
|
|
959
1023
|
assetIds.forEach(function (id) {
|
|
960
1024
|
return map.set((0, _assets.normalizeAssetIdWithDot)(id), {
|
|
@@ -962,15 +1026,15 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
962
1026
|
decimals: 6
|
|
963
1027
|
});
|
|
964
1028
|
});
|
|
965
|
-
return
|
|
1029
|
+
return _context15.abrupt("return", map);
|
|
966
1030
|
case 4:
|
|
967
1031
|
case "end":
|
|
968
|
-
return
|
|
1032
|
+
return _context15.stop();
|
|
969
1033
|
}
|
|
970
|
-
},
|
|
1034
|
+
}, _callee15);
|
|
971
1035
|
}));
|
|
972
1036
|
return function (_x4) {
|
|
973
|
-
return
|
|
1037
|
+
return _ref16.apply(this, arguments);
|
|
974
1038
|
};
|
|
975
1039
|
}());
|
|
976
1040
|
_this._options = (0, _merge["default"])({
|
|
@@ -1040,25 +1104,25 @@ var WalletObserver = exports.WalletObserver = /*#__PURE__*/function (_WalletObse
|
|
|
1040
1104
|
* @returns {Promise<WalletObserverUtils>} Resolves to a WalletObserverUtils class.
|
|
1041
1105
|
*/
|
|
1042
1106
|
function () {
|
|
1043
|
-
var _getUtils = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
1044
|
-
return _regeneratorRuntime().wrap(function
|
|
1045
|
-
while (1) switch (
|
|
1107
|
+
var _getUtils = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16() {
|
|
1108
|
+
return _regeneratorRuntime().wrap(function _callee16$(_context16) {
|
|
1109
|
+
while (1) switch (_context16.prev = _context16.next) {
|
|
1046
1110
|
case 0:
|
|
1047
1111
|
if (this.utils) {
|
|
1048
|
-
|
|
1112
|
+
_context16.next = 4;
|
|
1049
1113
|
break;
|
|
1050
1114
|
}
|
|
1051
|
-
|
|
1115
|
+
_context16.next = 3;
|
|
1052
1116
|
return _WalletObserverUtilsClass.WalletObserverUtils["new"](this.network);
|
|
1053
1117
|
case 3:
|
|
1054
|
-
this.utils =
|
|
1118
|
+
this.utils = _context16.sent;
|
|
1055
1119
|
case 4:
|
|
1056
|
-
return
|
|
1120
|
+
return _context16.abrupt("return", this.utils);
|
|
1057
1121
|
case 5:
|
|
1058
1122
|
case "end":
|
|
1059
|
-
return
|
|
1123
|
+
return _context16.stop();
|
|
1060
1124
|
}
|
|
1061
|
-
},
|
|
1125
|
+
}, _callee16, this);
|
|
1062
1126
|
}));
|
|
1063
1127
|
function getUtils() {
|
|
1064
1128
|
return _getUtils.apply(this, arguments);
|