@paraspell/sdk 8.13.2 → 8.15.0

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/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var sdkCore = require('@paraspell/sdk-core');
4
- var blake2b = require('@noble/hashes/blake2b');
4
+ var blake2 = require('@noble/hashes/blake2');
5
5
  var utils = require('@noble/hashes/utils');
6
6
  var ethers = require('ethers');
7
7
  var polkadotApi = require('polkadot-api');
@@ -628,6 +628,269 @@ var _transform = function transform(obj) {
628
628
  }
629
629
  };
630
630
 
631
+ function createClientCache(maxSize, onEviction) {
632
+ var extensionMs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5 * 60000;
633
+ var data = new Map();
634
+ var timers = new Map();
635
+ var now = function now() {
636
+ return Date.now();
637
+ };
638
+ var timeLeft = function timeLeft(w) {
639
+ return Math.max(w.expireAt - now(), 0);
640
+ };
641
+ var schedule = function schedule(k, delay) {
642
+ if (timers.has(k)) clearTimeout(timers.get(k));
643
+ timers.set(k, setTimeout(function () {
644
+ return handleTimeout(k);
645
+ }, delay));
646
+ };
647
+ var handleTimeout = function handleTimeout(k) {
648
+ var w = data.get(k);
649
+ if (!w) return;
650
+ if (!w.extended && w.value.refs > 0) {
651
+ // first expiry while still in use - Extend grace period
652
+ // Call rpc.properties to keep the connection alive
653
+ void _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
654
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
655
+ while (1) switch (_context.prev = _context.next) {
656
+ case 0:
657
+ _context.prev = 0;
658
+ _context.next = 3;
659
+ return w.value.client.getChainSpecData();
660
+ case 3:
661
+ _context.next = 7;
662
+ break;
663
+ case 5:
664
+ _context.prev = 5;
665
+ _context.t0 = _context["catch"](0);
666
+ case 7:
667
+ case "end":
668
+ return _context.stop();
669
+ }
670
+ }, _callee, null, [[0, 5]]);
671
+ }))();
672
+ w.value.destroyWanted = true;
673
+ w.extended = true;
674
+ w.expireAt = now() + extensionMs;
675
+ schedule(k, extensionMs);
676
+ return;
677
+ }
678
+ evict(k); // second expiry or unused - real eviction
679
+ };
680
+ var evict = function evict(k) {
681
+ var w = data.get(k);
682
+ if (!w) return;
683
+ clearTimeout(timers.get(k));
684
+ timers["delete"](k);
685
+ data["delete"](k);
686
+ onEviction === null || onEviction === void 0 || onEviction(k, w.value);
687
+ };
688
+ var evictIfNeeded = function evictIfNeeded() {
689
+ if (data.size <= maxSize) return;
690
+ var victimKey;
691
+ var victim;
692
+ var _iterator = _createForOfIteratorHelper(data),
693
+ _step;
694
+ try {
695
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
696
+ var _step$value = _slicedToArray(_step.value, 2),
697
+ k = _step$value[0],
698
+ w = _step$value[1];
699
+ if (!victim) {
700
+ victimKey = k;
701
+ victim = w;
702
+ continue;
703
+ }
704
+ var better = w.extended && !victim.extended ||
705
+ // Prefer extended over normal
706
+ w.extended === victim.extended && w.value.destroyWanted && !victim.value.destroyWanted || w.extended === victim.extended && w.value.destroyWanted === victim.value.destroyWanted && timeLeft(w) < timeLeft(victim) || w.extended === victim.extended && w.value.destroyWanted === victim.value.destroyWanted && timeLeft(w) === timeLeft(victim) && w.value.refs < victim.value.refs; // Prefer with less refs
707
+ if (better) {
708
+ victimKey = k;
709
+ victim = w;
710
+ }
711
+ }
712
+ } catch (err) {
713
+ _iterator.e(err);
714
+ } finally {
715
+ _iterator.f();
716
+ }
717
+ if (victimKey !== undefined) evict(victimKey);
718
+ };
719
+ var set = function set(k, v, ttl) {
720
+ var existing = data.get(k);
721
+ if (existing) {
722
+ existing.value = v;
723
+ existing.ttl = ttl;
724
+ existing.extended = false;
725
+ existing.expireAt = now() + ttl;
726
+ schedule(k, ttl);
727
+ } else {
728
+ data.set(k, {
729
+ value: v,
730
+ ttl: ttl,
731
+ extended: false,
732
+ expireAt: now() + ttl
733
+ });
734
+ schedule(k, ttl);
735
+ }
736
+ evictIfNeeded();
737
+ };
738
+ var get = function get(k) {
739
+ var w = data.get(k);
740
+ if (!w) return undefined;
741
+ if (!w.extended && timeLeft(w) < w.ttl) {
742
+ w.expireAt = now() + w.ttl; // refresh normal life
743
+ schedule(k, w.ttl);
744
+ }
745
+ return w.value;
746
+ };
747
+ var revive = function revive(k, ttl) {
748
+ var w = data.get(k);
749
+ if (!w) return;
750
+ var remaining = timeLeft(w);
751
+ w.extended = false;
752
+ if (ttl < remaining) {
753
+ w.ttl = ttl;
754
+ w.expireAt = now() + ttl;
755
+ schedule(k, ttl);
756
+ }
757
+ // if ttl ≥ remaining - keep current timer
758
+ };
759
+ var del = function del(k) {
760
+ if (!data.has(k)) return false;
761
+ evict(k);
762
+ return true;
763
+ };
764
+ var clear = function clear() {
765
+ var _iterator2 = _createForOfIteratorHelper(timers.values()),
766
+ _step2;
767
+ try {
768
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
769
+ var t = _step2.value;
770
+ clearTimeout(t);
771
+ }
772
+ } catch (err) {
773
+ _iterator2.e(err);
774
+ } finally {
775
+ _iterator2.f();
776
+ }
777
+ timers.clear();
778
+ data.clear();
779
+ };
780
+ return {
781
+ set: set,
782
+ get: get,
783
+ "delete": del,
784
+ has: function has(k) {
785
+ return data.has(k);
786
+ },
787
+ clear: clear,
788
+ peek: function peek(k) {
789
+ var _data$get;
790
+ return (_data$get = data.get(k)) === null || _data$get === void 0 ? void 0 : _data$get.value;
791
+ },
792
+ remainingTtl: function remainingTtl(k) {
793
+ var w = data.get(k);
794
+ return w ? timeLeft(w) : undefined;
795
+ },
796
+ revive: revive
797
+ };
798
+ }
799
+
800
+ var DEFAULT_TTL_MS = 60000; // 1 minute
801
+ var MAX_CLIENTS = 100;
802
+ var EXTENSION_MS = 5 * 60000; // 5 minutes
803
+ var clientPool = createClientCache(MAX_CLIENTS, function (_key, entry) {
804
+ entry.client.destroy();
805
+ }, EXTENSION_MS);
806
+ var keyFromWs = function keyFromWs(ws) {
807
+ return Array.isArray(ws) ? JSON.stringify(ws) : ws;
808
+ };
809
+ var createPolkadotClient = /*#__PURE__*/function () {
810
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(ws) {
811
+ var isNodeJs, _ref2, getWsProvider, provider;
812
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
813
+ while (1) switch (_context.prev = _context.next) {
814
+ case 0:
815
+ isNodeJs = typeof window === 'undefined';
816
+ if (!isNodeJs) {
817
+ _context.next = 7;
818
+ break;
819
+ }
820
+ _context.next = 4;
821
+ return import('polkadot-api/ws-provider/node');
822
+ case 4:
823
+ _context.t0 = _context.sent;
824
+ _context.next = 10;
825
+ break;
826
+ case 7:
827
+ _context.next = 9;
828
+ return import('polkadot-api/ws-provider/web');
829
+ case 9:
830
+ _context.t0 = _context.sent;
831
+ case 10:
832
+ _ref2 = _context.t0;
833
+ getWsProvider = _ref2.getWsProvider;
834
+ provider = Array.isArray(ws) ? getWsProvider(ws) : getWsProvider(ws);
835
+ return _context.abrupt("return", polkadotApi.createClient(polkadotSdkCompat.withPolkadotSdkCompat(provider)));
836
+ case 14:
837
+ case "end":
838
+ return _context.stop();
839
+ }
840
+ }, _callee);
841
+ }));
842
+ return function createPolkadotClient(_x) {
843
+ return _ref.apply(this, arguments);
844
+ };
845
+ }();
846
+ var leasePolkadotClient = /*#__PURE__*/function () {
847
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(ws, ttlMs) {
848
+ var key, entry;
849
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
850
+ while (1) switch (_context2.prev = _context2.next) {
851
+ case 0:
852
+ key = keyFromWs(ws);
853
+ entry = clientPool.peek(key);
854
+ if (entry) {
855
+ _context2.next = 8;
856
+ break;
857
+ }
858
+ _context2.next = 5;
859
+ return createPolkadotClient(ws);
860
+ case 5:
861
+ _context2.t0 = _context2.sent;
862
+ entry = {
863
+ client: _context2.t0,
864
+ refs: 0,
865
+ destroyWanted: false
866
+ };
867
+ clientPool.set(key, entry, ttlMs);
868
+ case 8:
869
+ entry.refs += 1;
870
+ clientPool.revive(key, ttlMs);
871
+ entry.destroyWanted = false;
872
+ return _context2.abrupt("return", entry.client);
873
+ case 12:
874
+ case "end":
875
+ return _context2.stop();
876
+ }
877
+ }, _callee2);
878
+ }));
879
+ return function leasePolkadotClient(_x2, _x3) {
880
+ return _ref3.apply(this, arguments);
881
+ };
882
+ }();
883
+ var releasePolkadotClient = function releasePolkadotClient(ws) {
884
+ var key = keyFromWs(ws);
885
+ var entry = clientPool.peek(key);
886
+ if (!entry) {
887
+ return;
888
+ }
889
+ entry.refs -= 1;
890
+ if (entry.refs === 0 && entry.destroyWanted) {
891
+ clientPool["delete"](key);
892
+ }
893
+ };
631
894
  var unsupportedNodes = ['ComposableFinance', 'Interlay', 'CrustShadow', 'Kintsugi', 'RobonomicsKusama', 'Turing', 'Pendulum', 'Subsocial'];
632
895
  var isHex = function isHex(str) {
633
896
  return typeof str === 'string' && /^0x[0-9a-fA-F]+$/.test(str);
@@ -635,6 +898,7 @@ var isHex = function isHex(str) {
635
898
  var PapiApi = /*#__PURE__*/function () {
636
899
  function PapiApi() {
637
900
  _classCallCheck(this, PapiApi);
901
+ this._ttlMs = DEFAULT_TTL_MS;
638
902
  this.initialized = false;
639
903
  this.disconnectAllowed = true;
640
904
  }
@@ -656,57 +920,62 @@ var PapiApi = /*#__PURE__*/function () {
656
920
  }, {
657
921
  key: "init",
658
922
  value: function () {
659
- var _init = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(node) {
660
- var _this$_api;
661
- return _regeneratorRuntime().wrap(function _callee$(_context) {
662
- while (1) switch (_context.prev = _context.next) {
923
+ var _init = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(node) {
924
+ var clientTtlMs,
925
+ _this$_api,
926
+ _args3 = arguments;
927
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
928
+ while (1) switch (_context3.prev = _context3.next) {
663
929
  case 0:
930
+ clientTtlMs = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : DEFAULT_TTL_MS;
664
931
  if (!this.initialized) {
665
- _context.next = 2;
932
+ _context3.next = 3;
666
933
  break;
667
934
  }
668
- return _context.abrupt("return");
669
- case 2:
935
+ return _context3.abrupt("return");
936
+ case 3:
670
937
  if (!unsupportedNodes.includes(node)) {
671
- _context.next = 4;
938
+ _context3.next = 5;
672
939
  break;
673
940
  }
674
941
  throw new sdkCore.NodeNotSupportedError("The node ".concat(node, " is not yet supported by the Polkadot API."));
675
- case 4:
942
+ case 5:
943
+ this._ttlMs = clientTtlMs;
676
944
  if (!(typeof this._api === 'string' || this._api instanceof Array)) {
677
- _context.next = 10;
945
+ _context3.next = 12;
678
946
  break;
679
947
  }
680
- _context.next = 7;
948
+ _context3.next = 9;
681
949
  return this.createApiInstance(this._api);
682
- case 7:
683
- this.api = _context.sent;
684
- _context.next = 18;
950
+ case 9:
951
+ this.api = _context3.sent;
952
+ _context3.next = 20;
685
953
  break;
686
- case 10:
954
+ case 12:
687
955
  if (!((_this$_api = this._api) !== null && _this$_api !== void 0)) {
688
- _context.next = 14;
956
+ _context3.next = 16;
689
957
  break;
690
958
  }
691
- _context.t0 = _this$_api;
692
- _context.next = 17;
959
+ _context3.t0 = _this$_api;
960
+ _context3.next = 19;
693
961
  break;
694
- case 14:
695
- _context.next = 16;
696
- return sdkCore.createApiInstanceForNode(this, node);
697
962
  case 16:
698
- _context.t0 = _context.sent;
699
- case 17:
700
- this.api = _context.t0;
963
+ _context3.next = 18;
964
+ return sdkCore.createApiInstanceForNode(this, node);
701
965
  case 18:
702
- this.initialized = true;
966
+ _context3.t0 = _context3.sent;
703
967
  case 19:
968
+ this.api = _context3.t0;
969
+ case 20:
970
+ this._node = node;
971
+ this.initialized = true;
972
+ case 22:
704
973
  case "end":
705
- return _context.stop();
974
+ return _context3.stop();
706
975
  }
707
- }, _callee, this);
976
+ }, _callee3, this);
708
977
  }));
709
- function init(_x) {
978
+ function init(_x4) {
710
979
  return _init.apply(this, arguments);
711
980
  }
712
981
  return init;
@@ -714,37 +983,18 @@ var PapiApi = /*#__PURE__*/function () {
714
983
  }, {
715
984
  key: "createApiInstance",
716
985
  value: function () {
717
- var _createApiInstance = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(wsUrl) {
718
- var isNodeJs, getWsProvider, provider;
719
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
720
- while (1) switch (_context2.prev = _context2.next) {
986
+ var _createApiInstance = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(wsUrl) {
987
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
988
+ while (1) switch (_context4.prev = _context4.next) {
721
989
  case 0:
722
- isNodeJs = typeof window === 'undefined';
723
- if (!isNodeJs) {
724
- _context2.next = 7;
725
- break;
726
- }
727
- _context2.next = 4;
728
- return import('polkadot-api/ws-provider/node');
729
- case 4:
730
- getWsProvider = _context2.sent.getWsProvider;
731
- _context2.next = 10;
732
- break;
733
- case 7:
734
- _context2.next = 9;
735
- return import('polkadot-api/ws-provider/web');
736
- case 9:
737
- getWsProvider = _context2.sent.getWsProvider;
738
- case 10:
739
- provider = wsUrl instanceof Array ? getWsProvider(wsUrl) : getWsProvider(wsUrl);
740
- return _context2.abrupt("return", Promise.resolve(polkadotApi.createClient(polkadotSdkCompat.withPolkadotSdkCompat(provider))));
741
- case 12:
990
+ return _context4.abrupt("return", leasePolkadotClient(wsUrl, this._ttlMs));
991
+ case 1:
742
992
  case "end":
743
- return _context2.stop();
993
+ return _context4.stop();
744
994
  }
745
- }, _callee2);
995
+ }, _callee4, this);
746
996
  }));
747
- function createApiInstance(_x2) {
997
+ function createApiInstance(_x5) {
748
998
  return _createApiInstance.apply(this, arguments);
749
999
  }
750
1000
  return createApiInstance;
@@ -759,10 +1009,10 @@ var PapiApi = /*#__PURE__*/function () {
759
1009
  }
760
1010
  }, {
761
1011
  key: "callTxMethod",
762
- value: function callTxMethod(_ref) {
763
- var module = _ref.module,
764
- section = _ref.section,
765
- parameters = _ref.parameters;
1012
+ value: function callTxMethod(_ref4) {
1013
+ var module = _ref4.module,
1014
+ section = _ref4.section,
1015
+ parameters = _ref4.parameters;
766
1016
  var transformedParameters = _transform(parameters);
767
1017
  return this.api.getUnsafeApi().tx[module][section](transformedParameters);
768
1018
  }
@@ -779,10 +1029,10 @@ var PapiApi = /*#__PURE__*/function () {
779
1029
  }, {
780
1030
  key: "objectToHex",
781
1031
  value: function () {
782
- var _objectToHex = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(obj) {
1032
+ var _objectToHex = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(obj) {
783
1033
  var transformedObj, tx, removeFirst5Bytes, encodedData;
784
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
785
- while (1) switch (_context3.prev = _context3.next) {
1034
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
1035
+ while (1) switch (_context5.prev = _context5.next) {
786
1036
  case 0:
787
1037
  transformedObj = _transform(obj);
788
1038
  tx = this.api.getUnsafeApi().tx.PolkadotXcm.send({
@@ -800,18 +1050,18 @@ var PapiApi = /*#__PURE__*/function () {
800
1050
  removeFirst5Bytes = function removeFirst5Bytes(hexString) {
801
1051
  return '0x' + hexString.slice(12);
802
1052
  };
803
- _context3.next = 5;
1053
+ _context5.next = 5;
804
1054
  return tx.getEncodedData();
805
1055
  case 5:
806
- encodedData = _context3.sent;
807
- return _context3.abrupt("return", removeFirst5Bytes(encodedData.asHex()));
1056
+ encodedData = _context5.sent;
1057
+ return _context5.abrupt("return", removeFirst5Bytes(encodedData.asHex()));
808
1058
  case 7:
809
1059
  case "end":
810
- return _context3.stop();
1060
+ return _context5.stop();
811
1061
  }
812
- }, _callee3, this);
1062
+ }, _callee5, this);
813
1063
  }));
814
- function objectToHex(_x3) {
1064
+ function objectToHex(_x6) {
815
1065
  return _objectToHex.apply(this, arguments);
816
1066
  }
817
1067
  return objectToHex;
@@ -829,25 +1079,25 @@ var PapiApi = /*#__PURE__*/function () {
829
1079
  }, {
830
1080
  key: "blake2AsHex",
831
1081
  value: function blake2AsHex(data) {
832
- return "0x".concat(utils.bytesToHex(blake2b.blake2b(data, {
1082
+ return "0x".concat(utils.bytesToHex(blake2.blake2b(data, {
833
1083
  dkLen: 32
834
1084
  })));
835
1085
  }
836
1086
  }, {
837
1087
  key: "calculateTransactionFee",
838
1088
  value: function () {
839
- var _calculateTransactionFee = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(tx, address) {
840
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
841
- while (1) switch (_context4.prev = _context4.next) {
1089
+ var _calculateTransactionFee = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(tx, address) {
1090
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
1091
+ while (1) switch (_context6.prev = _context6.next) {
842
1092
  case 0:
843
- return _context4.abrupt("return", tx.getEstimatedFees(address));
1093
+ return _context6.abrupt("return", tx.getEstimatedFees(address));
844
1094
  case 1:
845
1095
  case "end":
846
- return _context4.stop();
1096
+ return _context6.stop();
847
1097
  }
848
- }, _callee4);
1098
+ }, _callee6);
849
1099
  }));
850
- function calculateTransactionFee(_x4, _x5) {
1100
+ function calculateTransactionFee(_x7, _x8) {
851
1101
  return _calculateTransactionFee.apply(this, arguments);
852
1102
  }
853
1103
  return calculateTransactionFee;
@@ -855,30 +1105,30 @@ var PapiApi = /*#__PURE__*/function () {
855
1105
  }, {
856
1106
  key: "quoteAhPrice",
857
1107
  value: function () {
858
- var _quoteAhPrice = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(fromMl, toMl, amountIn) {
1108
+ var _quoteAhPrice = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(fromMl, toMl, amountIn) {
859
1109
  var includeFee,
860
1110
  transformedFromMl,
861
1111
  transformedToMl,
862
1112
  response,
863
- _args5 = arguments;
864
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
865
- while (1) switch (_context5.prev = _context5.next) {
1113
+ _args7 = arguments;
1114
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
1115
+ while (1) switch (_context7.prev = _context7.next) {
866
1116
  case 0:
867
- includeFee = _args5.length > 3 && _args5[3] !== undefined ? _args5[3] : true;
1117
+ includeFee = _args7.length > 3 && _args7[3] !== undefined ? _args7[3] : true;
868
1118
  transformedFromMl = _transform(fromMl);
869
1119
  transformedToMl = _transform(toMl);
870
- _context5.next = 5;
1120
+ _context7.next = 5;
871
1121
  return this.api.getUnsafeApi().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(transformedFromMl, transformedToMl, amountIn, includeFee);
872
1122
  case 5:
873
- response = _context5.sent;
874
- return _context5.abrupt("return", response ? BigInt(response) : undefined);
1123
+ response = _context7.sent;
1124
+ return _context7.abrupt("return", response ? BigInt(response) : undefined);
875
1125
  case 7:
876
1126
  case "end":
877
- return _context5.stop();
1127
+ return _context7.stop();
878
1128
  }
879
- }, _callee5, this);
1129
+ }, _callee7, this);
880
1130
  }));
881
- function quoteAhPrice(_x6, _x7, _x8) {
1131
+ function quoteAhPrice(_x9, _x0, _x1) {
882
1132
  return _quoteAhPrice.apply(this, arguments);
883
1133
  }
884
1134
  return quoteAhPrice;
@@ -886,23 +1136,23 @@ var PapiApi = /*#__PURE__*/function () {
886
1136
  }, {
887
1137
  key: "getBalanceNative",
888
1138
  value: function () {
889
- var _getBalanceNative = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(address) {
1139
+ var _getBalanceNative = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(address) {
890
1140
  var res;
891
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
892
- while (1) switch (_context6.prev = _context6.next) {
1141
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
1142
+ while (1) switch (_context8.prev = _context8.next) {
893
1143
  case 0:
894
- _context6.next = 2;
1144
+ _context8.next = 2;
895
1145
  return this.api.getUnsafeApi().query.System.Account.getValue(address);
896
1146
  case 2:
897
- res = _context6.sent;
898
- return _context6.abrupt("return", res.data.free);
1147
+ res = _context8.sent;
1148
+ return _context8.abrupt("return", res.data.free);
899
1149
  case 4:
900
1150
  case "end":
901
- return _context6.stop();
1151
+ return _context8.stop();
902
1152
  }
903
- }, _callee6, this);
1153
+ }, _callee8, this);
904
1154
  }));
905
- function getBalanceNative(_x9) {
1155
+ function getBalanceNative(_x10) {
906
1156
  return _getBalanceNative.apply(this, arguments);
907
1157
  }
908
1158
  return getBalanceNative;
@@ -910,23 +1160,23 @@ var PapiApi = /*#__PURE__*/function () {
910
1160
  }, {
911
1161
  key: "getBalanceForeignPolkadotXcm",
912
1162
  value: function () {
913
- var _getBalanceForeignPolkadotXcm = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(address, id) {
1163
+ var _getBalanceForeignPolkadotXcm = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(address, id) {
914
1164
  var res;
915
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
916
- while (1) switch (_context7.prev = _context7.next) {
1165
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
1166
+ while (1) switch (_context9.prev = _context9.next) {
917
1167
  case 0:
918
- _context7.next = 2;
1168
+ _context9.next = 2;
919
1169
  return this.api.getUnsafeApi().query.Assets.Account.getValue(id, address);
920
1170
  case 2:
921
- res = _context7.sent;
922
- return _context7.abrupt("return", res && res.balance ? BigInt(res.balance) : 0n);
1171
+ res = _context9.sent;
1172
+ return _context9.abrupt("return", res && res.balance ? BigInt(res.balance) : 0n);
923
1173
  case 4:
924
1174
  case "end":
925
- return _context7.stop();
1175
+ return _context9.stop();
926
1176
  }
927
- }, _callee7, this);
1177
+ }, _callee9, this);
928
1178
  }));
929
- function getBalanceForeignPolkadotXcm(_x0, _x1) {
1179
+ function getBalanceForeignPolkadotXcm(_x11, _x12) {
930
1180
  return _getBalanceForeignPolkadotXcm.apply(this, arguments);
931
1181
  }
932
1182
  return getBalanceForeignPolkadotXcm;
@@ -934,23 +1184,23 @@ var PapiApi = /*#__PURE__*/function () {
934
1184
  }, {
935
1185
  key: "getMythosForeignBalance",
936
1186
  value: function () {
937
- var _getMythosForeignBalance = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(address) {
1187
+ var _getMythosForeignBalance = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee0(address) {
938
1188
  var res;
939
- return _regeneratorRuntime().wrap(function _callee8$(_context8) {
940
- while (1) switch (_context8.prev = _context8.next) {
1189
+ return _regeneratorRuntime().wrap(function _callee0$(_context0) {
1190
+ while (1) switch (_context0.prev = _context0.next) {
941
1191
  case 0:
942
- _context8.next = 2;
1192
+ _context0.next = 2;
943
1193
  return this.api.getUnsafeApi().query.Balances.Account.getValue(address);
944
1194
  case 2:
945
- res = _context8.sent;
946
- return _context8.abrupt("return", res && res.free ? BigInt(res.free) : 0n);
1195
+ res = _context0.sent;
1196
+ return _context0.abrupt("return", res && res.free ? BigInt(res.free) : 0n);
947
1197
  case 4:
948
1198
  case "end":
949
- return _context8.stop();
1199
+ return _context0.stop();
950
1200
  }
951
- }, _callee8, this);
1201
+ }, _callee0, this);
952
1202
  }));
953
- function getMythosForeignBalance(_x10) {
1203
+ function getMythosForeignBalance(_x13) {
954
1204
  return _getMythosForeignBalance.apply(this, arguments);
955
1205
  }
956
1206
  return getMythosForeignBalance;
@@ -958,24 +1208,24 @@ var PapiApi = /*#__PURE__*/function () {
958
1208
  }, {
959
1209
  key: "getBalanceForeignAssetsPallet",
960
1210
  value: function () {
961
- var _getBalanceForeignAssetsPallet = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(address, multiLocation) {
1211
+ var _getBalanceForeignAssetsPallet = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee1(address, multiLocation) {
962
1212
  var transformedMultiLocation, res;
963
- return _regeneratorRuntime().wrap(function _callee9$(_context9) {
964
- while (1) switch (_context9.prev = _context9.next) {
1213
+ return _regeneratorRuntime().wrap(function _callee1$(_context1) {
1214
+ while (1) switch (_context1.prev = _context1.next) {
965
1215
  case 0:
966
1216
  transformedMultiLocation = _transform(multiLocation);
967
- _context9.next = 3;
1217
+ _context1.next = 3;
968
1218
  return this.api.getUnsafeApi().query.ForeignAssets.Account.getValue(transformedMultiLocation, address);
969
1219
  case 3:
970
- res = _context9.sent;
971
- return _context9.abrupt("return", BigInt(res === undefined ? 0 : res.balance));
1220
+ res = _context1.sent;
1221
+ return _context1.abrupt("return", BigInt(res === undefined ? 0 : res.balance));
972
1222
  case 5:
973
1223
  case "end":
974
- return _context9.stop();
1224
+ return _context1.stop();
975
1225
  }
976
- }, _callee9, this);
1226
+ }, _callee1, this);
977
1227
  }));
978
- function getBalanceForeignAssetsPallet(_x11, _x12) {
1228
+ function getBalanceForeignAssetsPallet(_x14, _x15) {
979
1229
  return _getBalanceForeignAssetsPallet.apply(this, arguments);
980
1230
  }
981
1231
  return getBalanceForeignAssetsPallet;
@@ -983,23 +1233,23 @@ var PapiApi = /*#__PURE__*/function () {
983
1233
  }, {
984
1234
  key: "getForeignAssetsByIdBalance",
985
1235
  value: function () {
986
- var _getForeignAssetsByIdBalance = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee0(address, assetId) {
1236
+ var _getForeignAssetsByIdBalance = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(address, assetId) {
987
1237
  var res;
988
- return _regeneratorRuntime().wrap(function _callee0$(_context0) {
989
- while (1) switch (_context0.prev = _context0.next) {
1238
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
1239
+ while (1) switch (_context10.prev = _context10.next) {
990
1240
  case 0:
991
- _context0.next = 2;
1241
+ _context10.next = 2;
992
1242
  return this.api.getUnsafeApi().query.ForeignAssets.Account.getValue(assetId, address);
993
1243
  case 2:
994
- res = _context0.sent;
995
- return _context0.abrupt("return", BigInt(res === undefined ? 0 : res.balance));
1244
+ res = _context10.sent;
1245
+ return _context10.abrupt("return", BigInt(res === undefined ? 0 : res.balance));
996
1246
  case 4:
997
1247
  case "end":
998
- return _context0.stop();
1248
+ return _context10.stop();
999
1249
  }
1000
- }, _callee0, this);
1250
+ }, _callee10, this);
1001
1251
  }));
1002
- function getForeignAssetsByIdBalance(_x13, _x14) {
1252
+ function getForeignAssetsByIdBalance(_x16, _x17) {
1003
1253
  return _getForeignAssetsByIdBalance.apply(this, arguments);
1004
1254
  }
1005
1255
  return getForeignAssetsByIdBalance;
@@ -1007,26 +1257,26 @@ var PapiApi = /*#__PURE__*/function () {
1007
1257
  }, {
1008
1258
  key: "getBalanceForeignBifrost",
1009
1259
  value: function () {
1010
- var _getBalanceForeignBifrost = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee1(address, asset) {
1260
+ var _getBalanceForeignBifrost = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(address, asset) {
1011
1261
  var currencySelection, transformedParameters, response, accountData;
1012
- return _regeneratorRuntime().wrap(function _callee1$(_context1) {
1013
- while (1) switch (_context1.prev = _context1.next) {
1262
+ return _regeneratorRuntime().wrap(function _callee11$(_context11) {
1263
+ while (1) switch (_context11.prev = _context11.next) {
1014
1264
  case 0:
1015
1265
  currencySelection = sdkCore.getNode('BifrostPolkadot').getCurrencySelection(asset);
1016
1266
  transformedParameters = _transform(currencySelection);
1017
- _context1.next = 4;
1267
+ _context11.next = 4;
1018
1268
  return this.api.getUnsafeApi().query.Tokens.Accounts.getValue(address, transformedParameters);
1019
1269
  case 4:
1020
- response = _context1.sent;
1270
+ response = _context11.sent;
1021
1271
  accountData = response ? response : null;
1022
- return _context1.abrupt("return", accountData ? BigInt(accountData.free.toString()) : 0n);
1272
+ return _context11.abrupt("return", accountData ? BigInt(accountData.free.toString()) : 0n);
1023
1273
  case 7:
1024
1274
  case "end":
1025
- return _context1.stop();
1275
+ return _context11.stop();
1026
1276
  }
1027
- }, _callee1, this);
1277
+ }, _callee11, this);
1028
1278
  }));
1029
- function getBalanceForeignBifrost(_x15, _x16) {
1279
+ function getBalanceForeignBifrost(_x18, _x19) {
1030
1280
  return _getBalanceForeignBifrost.apply(this, arguments);
1031
1281
  }
1032
1282
  return getBalanceForeignBifrost;
@@ -1034,27 +1284,27 @@ var PapiApi = /*#__PURE__*/function () {
1034
1284
  }, {
1035
1285
  key: "getBalanceNativeAcala",
1036
1286
  value: function () {
1037
- var _getBalanceNativeAcala = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(address, symbol) {
1287
+ var _getBalanceNativeAcala = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee12(address, symbol) {
1038
1288
  var transformedParameters, response, accountData;
1039
- return _regeneratorRuntime().wrap(function _callee10$(_context10) {
1040
- while (1) switch (_context10.prev = _context10.next) {
1289
+ return _regeneratorRuntime().wrap(function _callee12$(_context12) {
1290
+ while (1) switch (_context12.prev = _context12.next) {
1041
1291
  case 0:
1042
1292
  transformedParameters = _transform({
1043
1293
  Token: symbol
1044
1294
  });
1045
- _context10.next = 3;
1295
+ _context12.next = 3;
1046
1296
  return this.api.getUnsafeApi().query.Tokens.Accounts.getValue(address, transformedParameters);
1047
1297
  case 3:
1048
- response = _context10.sent;
1298
+ response = _context12.sent;
1049
1299
  accountData = response ? response : null;
1050
- return _context10.abrupt("return", accountData ? BigInt(accountData.free.toString()) : 0n);
1300
+ return _context12.abrupt("return", accountData ? BigInt(accountData.free.toString()) : 0n);
1051
1301
  case 6:
1052
1302
  case "end":
1053
- return _context10.stop();
1303
+ return _context12.stop();
1054
1304
  }
1055
- }, _callee10, this);
1305
+ }, _callee12, this);
1056
1306
  }));
1057
- function getBalanceNativeAcala(_x17, _x18) {
1307
+ function getBalanceNativeAcala(_x20, _x21) {
1058
1308
  return _getBalanceNativeAcala.apply(this, arguments);
1059
1309
  }
1060
1310
  return getBalanceNativeAcala;
@@ -1062,35 +1312,35 @@ var PapiApi = /*#__PURE__*/function () {
1062
1312
  }, {
1063
1313
  key: "getBalanceForeignXTokens",
1064
1314
  value: function () {
1065
- var _getBalanceForeignXTokens = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(node, address, asset) {
1315
+ var _getBalanceForeignXTokens = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee13(node, address, asset) {
1066
1316
  var pallet, response, entry;
1067
- return _regeneratorRuntime().wrap(function _callee11$(_context11) {
1068
- while (1) switch (_context11.prev = _context11.next) {
1317
+ return _regeneratorRuntime().wrap(function _callee13$(_context13) {
1318
+ while (1) switch (_context13.prev = _context13.next) {
1069
1319
  case 0:
1070
1320
  pallet = 'Tokens';
1071
1321
  if (node === 'Centrifuge' || node === 'Altair') {
1072
1322
  pallet = 'OrmlTokens';
1073
1323
  }
1074
- _context11.next = 4;
1324
+ _context13.next = 4;
1075
1325
  return this.api.getUnsafeApi().query[pallet].Accounts.getEntries(address);
1076
1326
  case 4:
1077
- response = _context11.sent;
1078
- entry = response.find(function (_ref2) {
1327
+ response = _context13.sent;
1328
+ entry = response.find(function (_ref5) {
1079
1329
  var _asset$symbol, _asset$assetId, _asset$symbol2, _asset$assetId2;
1080
- var keyArgs = _ref2.keyArgs;
1330
+ var keyArgs = _ref5.keyArgs;
1081
1331
  var _keyArgs = _slicedToArray(keyArgs, 2);
1082
1332
  _keyArgs[0];
1083
1333
  var assetItem = _keyArgs[1];
1084
1334
  return assetItem.toString().toLowerCase() === ((_asset$symbol = asset.symbol) === null || _asset$symbol === void 0 ? void 0 : _asset$symbol.toLowerCase()) || sdkCore.isForeignAsset(asset) && assetItem.toString().toLowerCase() === ((_asset$assetId = asset.assetId) === null || _asset$assetId === void 0 ? void 0 : _asset$assetId.toLowerCase()) || _typeof(assetItem) === 'object' && 'value' in assetItem && assetItem.value.toString().toLowerCase() === ((_asset$symbol2 = asset.symbol) === null || _asset$symbol2 === void 0 ? void 0 : _asset$symbol2.toLowerCase()) || _typeof(assetItem) === 'object' && 'value' in assetItem && sdkCore.isForeignAsset(asset) && assetItem.value.toString().toLowerCase() === ((_asset$assetId2 = asset.assetId) === null || _asset$assetId2 === void 0 ? void 0 : _asset$assetId2.toLowerCase());
1085
1335
  });
1086
- return _context11.abrupt("return", entry !== null && entry !== void 0 && entry.value ? BigInt(entry.value.free.toString()) : 0n);
1336
+ return _context13.abrupt("return", entry !== null && entry !== void 0 && entry.value ? BigInt(entry.value.free.toString()) : 0n);
1087
1337
  case 7:
1088
1338
  case "end":
1089
- return _context11.stop();
1339
+ return _context13.stop();
1090
1340
  }
1091
- }, _callee11, this);
1341
+ }, _callee13, this);
1092
1342
  }));
1093
- function getBalanceForeignXTokens(_x19, _x20, _x21) {
1343
+ function getBalanceForeignXTokens(_x22, _x23, _x24) {
1094
1344
  return _getBalanceForeignXTokens.apply(this, arguments);
1095
1345
  }
1096
1346
  return getBalanceForeignXTokens;
@@ -1098,23 +1348,23 @@ var PapiApi = /*#__PURE__*/function () {
1098
1348
  }, {
1099
1349
  key: "getBalanceAssetsPallet",
1100
1350
  value: function () {
1101
- var _getBalanceAssetsPallet = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee12(address, assetId) {
1351
+ var _getBalanceAssetsPallet = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee14(address, assetId) {
1102
1352
  var response;
1103
- return _regeneratorRuntime().wrap(function _callee12$(_context12) {
1104
- while (1) switch (_context12.prev = _context12.next) {
1353
+ return _regeneratorRuntime().wrap(function _callee14$(_context14) {
1354
+ while (1) switch (_context14.prev = _context14.next) {
1105
1355
  case 0:
1106
- _context12.next = 2;
1356
+ _context14.next = 2;
1107
1357
  return this.api.getUnsafeApi().query.Assets.Account.getValue(assetId, address);
1108
1358
  case 2:
1109
- response = _context12.sent;
1110
- return _context12.abrupt("return", BigInt(response === undefined ? 0 : response.balance));
1359
+ response = _context14.sent;
1360
+ return _context14.abrupt("return", BigInt(response === undefined ? 0 : response.balance));
1111
1361
  case 4:
1112
1362
  case "end":
1113
- return _context12.stop();
1363
+ return _context14.stop();
1114
1364
  }
1115
- }, _callee12, this);
1365
+ }, _callee14, this);
1116
1366
  }));
1117
- function getBalanceAssetsPallet(_x22, _x23) {
1367
+ function getBalanceAssetsPallet(_x25, _x26) {
1118
1368
  return _getBalanceAssetsPallet.apply(this, arguments);
1119
1369
  }
1120
1370
  return getBalanceAssetsPallet;
@@ -1122,24 +1372,24 @@ var PapiApi = /*#__PURE__*/function () {
1122
1372
  }, {
1123
1373
  key: "getFromRpc",
1124
1374
  value: function () {
1125
- var _getFromRpc = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee13(module, method, key) {
1375
+ var _getFromRpc = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee15(module, method, key) {
1126
1376
  var toSS58, value;
1127
- return _regeneratorRuntime().wrap(function _callee13$(_context13) {
1128
- while (1) switch (_context13.prev = _context13.next) {
1377
+ return _regeneratorRuntime().wrap(function _callee15$(_context15) {
1378
+ while (1) switch (_context15.prev = _context15.next) {
1129
1379
  case 0:
1130
1380
  toSS58 = polkadotApi.AccountId().dec;
1131
- _context13.next = 3;
1381
+ _context15.next = 3;
1132
1382
  return this.api._request("".concat(module, "_").concat(method), [module === 'system' && isHex(key) && !ethers.ethers.isAddress(key) ? toSS58(key) : key]);
1133
1383
  case 3:
1134
- value = _context13.sent;
1135
- return _context13.abrupt("return", isHex(value) ? value : '0x' + value.toString(16).padStart(8, '0'));
1384
+ value = _context15.sent;
1385
+ return _context15.abrupt("return", isHex(value) ? value : '0x' + value.toString(16).padStart(8, '0'));
1136
1386
  case 5:
1137
1387
  case "end":
1138
- return _context13.stop();
1388
+ return _context15.stop();
1139
1389
  }
1140
- }, _callee13, this);
1390
+ }, _callee15, this);
1141
1391
  }));
1142
- function getFromRpc(_x24, _x25, _x26) {
1392
+ function getFromRpc(_x27, _x28, _x29) {
1143
1393
  return _getFromRpc.apply(this, arguments);
1144
1394
  }
1145
1395
  return getFromRpc;
@@ -1152,23 +1402,23 @@ var PapiApi = /*#__PURE__*/function () {
1152
1402
  }, {
1153
1403
  key: "createApiForNode",
1154
1404
  value: function () {
1155
- var _createApiForNode = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee14(node) {
1405
+ var _createApiForNode = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee16(node) {
1156
1406
  var api;
1157
- return _regeneratorRuntime().wrap(function _callee14$(_context14) {
1158
- while (1) switch (_context14.prev = _context14.next) {
1407
+ return _regeneratorRuntime().wrap(function _callee16$(_context16) {
1408
+ while (1) switch (_context16.prev = _context16.next) {
1159
1409
  case 0:
1160
1410
  api = new PapiApi();
1161
- _context14.next = 3;
1411
+ _context16.next = 3;
1162
1412
  return api.init(node);
1163
1413
  case 3:
1164
- return _context14.abrupt("return", api);
1414
+ return _context16.abrupt("return", api);
1165
1415
  case 4:
1166
1416
  case "end":
1167
- return _context14.stop();
1417
+ return _context16.stop();
1168
1418
  }
1169
- }, _callee14);
1419
+ }, _callee16);
1170
1420
  }));
1171
- function createApiForNode(_x27) {
1421
+ function createApiForNode(_x30) {
1172
1422
  return _createApiForNode.apply(this, arguments);
1173
1423
  }
1174
1424
  return createApiForNode;
@@ -1176,16 +1426,16 @@ var PapiApi = /*#__PURE__*/function () {
1176
1426
  }, {
1177
1427
  key: "getDryRunCall",
1178
1428
  value: function () {
1179
- var _getDryRunCall = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee15(_ref3) {
1429
+ var _getDryRunCall = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee17(_ref6) {
1180
1430
  var _this$api$getUnsafeAp;
1181
1431
  var tx, address, node, supportsDryRunApi, isBifrost, DEFAULT_XCM_VERSION, result, isSuccess, failureReason, executionFee, fee, actualWeight, weight, forwardedXcms, destParaId;
1182
- return _regeneratorRuntime().wrap(function _callee15$(_context15) {
1183
- while (1) switch (_context15.prev = _context15.next) {
1432
+ return _regeneratorRuntime().wrap(function _callee17$(_context17) {
1433
+ while (1) switch (_context17.prev = _context17.next) {
1184
1434
  case 0:
1185
- tx = _ref3.tx, address = _ref3.address, node = _ref3.node;
1435
+ tx = _ref6.tx, address = _ref6.address, node = _ref6.node;
1186
1436
  supportsDryRunApi = sdkCore.getAssetsObject(node).supportsDryRunApi;
1187
1437
  if (supportsDryRunApi) {
1188
- _context15.next = 4;
1438
+ _context17.next = 4;
1189
1439
  break;
1190
1440
  }
1191
1441
  throw new sdkCore.NodeNotSupportedError("DryRunApi is not available on node ".concat(node));
@@ -1193,7 +1443,7 @@ var PapiApi = /*#__PURE__*/function () {
1193
1443
  // These nodes require a third parameter XCM version
1194
1444
  isBifrost = node === 'BifrostPolkadot' || node === 'BifrostKusama' || node === 'AssetHubKusama';
1195
1445
  DEFAULT_XCM_VERSION = 3;
1196
- _context15.next = 8;
1446
+ _context17.next = 8;
1197
1447
  return (_this$api$getUnsafeAp = this.api.getUnsafeApi().apis.DryRunApi).dry_run_call.apply(_this$api$getUnsafeAp, [{
1198
1448
  type: 'system',
1199
1449
  value: {
@@ -1202,22 +1452,22 @@ var PapiApi = /*#__PURE__*/function () {
1202
1452
  }
1203
1453
  }, tx.decodedCall].concat(_toConsumableArray(isBifrost ? [DEFAULT_XCM_VERSION] : [])));
1204
1454
  case 8:
1205
- result = _context15.sent;
1455
+ result = _context17.sent;
1206
1456
  isSuccess = result.success && result.value.execution_result.success;
1207
1457
  if (isSuccess) {
1208
- _context15.next = 13;
1458
+ _context17.next = 13;
1209
1459
  break;
1210
1460
  }
1211
1461
  failureReason = result.value.execution_result.value.error.value.value.type;
1212
- return _context15.abrupt("return", Promise.resolve({
1462
+ return _context17.abrupt("return", Promise.resolve({
1213
1463
  success: false,
1214
1464
  failureReason: failureReason
1215
1465
  }));
1216
1466
  case 13:
1217
- _context15.next = 15;
1467
+ _context17.next = 15;
1218
1468
  return this.calculateTransactionFee(tx, address);
1219
1469
  case 15:
1220
- executionFee = _context15.sent;
1470
+ executionFee = _context17.sent;
1221
1471
  fee = sdkCore.computeFeeFromDryRun(result, node, executionFee);
1222
1472
  actualWeight = result.value.execution_result.value.actual_weight;
1223
1473
  weight = actualWeight ? {
@@ -1226,7 +1476,7 @@ var PapiApi = /*#__PURE__*/function () {
1226
1476
  } : undefined;
1227
1477
  forwardedXcms = result.value.forwarded_xcms.length > 0 ? result.value.forwarded_xcms[0] : [];
1228
1478
  destParaId = forwardedXcms.length === 0 ? undefined : forwardedXcms[0].value.interior.type === 'Here' ? 0 : forwardedXcms[0].value.interior.value.value;
1229
- return _context15.abrupt("return", Promise.resolve({
1479
+ return _context17.abrupt("return", Promise.resolve({
1230
1480
  success: true,
1231
1481
  fee: fee,
1232
1482
  weight: weight,
@@ -1235,11 +1485,11 @@ var PapiApi = /*#__PURE__*/function () {
1235
1485
  }));
1236
1486
  case 22:
1237
1487
  case "end":
1238
- return _context15.stop();
1488
+ return _context17.stop();
1239
1489
  }
1240
- }, _callee15, this);
1490
+ }, _callee17, this);
1241
1491
  }));
1242
- function getDryRunCall(_x28) {
1492
+ function getDryRunCall(_x31) {
1243
1493
  return _getDryRunCall.apply(this, arguments);
1244
1494
  }
1245
1495
  return getDryRunCall;
@@ -1247,32 +1497,32 @@ var PapiApi = /*#__PURE__*/function () {
1247
1497
  }, {
1248
1498
  key: "getDryRunXcm",
1249
1499
  value: function () {
1250
- var _getDryRunXcm = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee16(_ref4) {
1251
- var _ref5, _ref6, _ref7;
1500
+ var _getDryRunXcm = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee18(_ref7) {
1501
+ var _ref8, _ref9, _ref0;
1252
1502
  var originLocation, xcm, node, origin, supportsDryRunApi, transformedOriginLocation, result, isSuccess, failureReason, emitted, reversedEvents, palletsWithIssued, feeEvent, fee, actualWeight, weight, forwardedXcms, destParaId;
1253
- return _regeneratorRuntime().wrap(function _callee16$(_context16) {
1254
- while (1) switch (_context16.prev = _context16.next) {
1503
+ return _regeneratorRuntime().wrap(function _callee18$(_context18) {
1504
+ while (1) switch (_context18.prev = _context18.next) {
1255
1505
  case 0:
1256
- originLocation = _ref4.originLocation, xcm = _ref4.xcm, node = _ref4.node, origin = _ref4.origin;
1506
+ originLocation = _ref7.originLocation, xcm = _ref7.xcm, node = _ref7.node, origin = _ref7.origin;
1257
1507
  supportsDryRunApi = sdkCore.getAssetsObject(node).supportsDryRunApi;
1258
1508
  if (supportsDryRunApi) {
1259
- _context16.next = 4;
1509
+ _context18.next = 4;
1260
1510
  break;
1261
1511
  }
1262
1512
  throw new sdkCore.NodeNotSupportedError("DryRunApi is not available on node ".concat(node));
1263
1513
  case 4:
1264
1514
  transformedOriginLocation = _transform(originLocation);
1265
- _context16.next = 7;
1515
+ _context18.next = 7;
1266
1516
  return this.api.getUnsafeApi().apis.DryRunApi.dry_run_xcm(transformedOriginLocation, xcm);
1267
1517
  case 7:
1268
- result = _context16.sent;
1518
+ result = _context18.sent;
1269
1519
  isSuccess = result.success && result.value.execution_result.type === 'Complete';
1270
1520
  if (isSuccess) {
1271
- _context16.next = 12;
1521
+ _context18.next = 12;
1272
1522
  break;
1273
1523
  }
1274
1524
  failureReason = result.value.execution_result.value.error.type;
1275
- return _context16.abrupt("return", Promise.resolve({
1525
+ return _context18.abrupt("return", Promise.resolve({
1276
1526
  success: false,
1277
1527
  failureReason: failureReason
1278
1528
  }));
@@ -1280,24 +1530,24 @@ var PapiApi = /*#__PURE__*/function () {
1280
1530
  emitted = result.value.emitted_events; // We want to look for the last event
1281
1531
  reversedEvents = _toConsumableArray(emitted).reverse();
1282
1532
  palletsWithIssued = ['Balances', 'ForeignAssets', 'Assets'];
1283
- feeEvent = (_ref5 = (_ref6 = (_ref7 = origin === 'Mythos' ? reversedEvents.find(function (event) {
1533
+ feeEvent = (_ref8 = (_ref9 = (_ref0 = origin === 'Mythos' ? reversedEvents.find(function (event) {
1284
1534
  return event.type === 'AssetConversion' && event.value.type === 'SwapCreditExecuted';
1285
- }) : undefined) !== null && _ref7 !== void 0 ? _ref7 :
1535
+ }) : undefined) !== null && _ref0 !== void 0 ? _ref0 :
1286
1536
  // Prefer an Issued event
1287
1537
  reversedEvents.find(function (event) {
1288
1538
  return palletsWithIssued.includes(event.type) && event.value.type === 'Issued';
1289
- })) !== null && _ref6 !== void 0 ? _ref6 :
1539
+ })) !== null && _ref9 !== void 0 ? _ref9 :
1290
1540
  // Fallback to Minted event
1291
1541
  reversedEvents.find(function (event) {
1292
1542
  return ['Balances', 'ForeignAssets'].includes(event.type) && event.value.type === 'Minted';
1293
- })) !== null && _ref5 !== void 0 ? _ref5 : reversedEvents.find(function (event) {
1543
+ })) !== null && _ref8 !== void 0 ? _ref8 : reversedEvents.find(function (event) {
1294
1544
  return ['Currencies', 'Tokens'].includes(event.type) && event.value.type === 'Deposited';
1295
1545
  });
1296
1546
  if (feeEvent) {
1297
- _context16.next = 18;
1547
+ _context18.next = 18;
1298
1548
  break;
1299
1549
  }
1300
- return _context16.abrupt("return", Promise.resolve({
1550
+ return _context18.abrupt("return", Promise.resolve({
1301
1551
  success: false,
1302
1552
  failureReason: 'Cannot determine destination fee. No Issued event found'
1303
1553
  }));
@@ -1310,7 +1560,7 @@ var PapiApi = /*#__PURE__*/function () {
1310
1560
  } : undefined;
1311
1561
  forwardedXcms = result.value.forwarded_xcms.length > 0 ? result.value.forwarded_xcms[0] : [];
1312
1562
  destParaId = forwardedXcms.length === 0 ? undefined : forwardedXcms[0].value.interior.type === 'Here' ? 0 : forwardedXcms[0].value.interior.value.value;
1313
- return _context16.abrupt("return", Promise.resolve({
1563
+ return _context18.abrupt("return", Promise.resolve({
1314
1564
  success: true,
1315
1565
  fee: fee,
1316
1566
  weight: weight,
@@ -1319,11 +1569,11 @@ var PapiApi = /*#__PURE__*/function () {
1319
1569
  }));
1320
1570
  case 24:
1321
1571
  case "end":
1322
- return _context16.stop();
1572
+ return _context18.stop();
1323
1573
  }
1324
- }, _callee16, this);
1574
+ }, _callee18, this);
1325
1575
  }));
1326
- function getDryRunXcm(_x29) {
1576
+ function getDryRunXcm(_x32) {
1327
1577
  return _getDryRunXcm.apply(this, arguments);
1328
1578
  }
1329
1579
  return getDryRunXcm;
@@ -1331,21 +1581,21 @@ var PapiApi = /*#__PURE__*/function () {
1331
1581
  }, {
1332
1582
  key: "getBridgeStatus",
1333
1583
  value: function () {
1334
- var _getBridgeStatus = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee17() {
1584
+ var _getBridgeStatus = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {
1335
1585
  var outboundOperatingMode;
1336
- return _regeneratorRuntime().wrap(function _callee17$(_context17) {
1337
- while (1) switch (_context17.prev = _context17.next) {
1586
+ return _regeneratorRuntime().wrap(function _callee19$(_context19) {
1587
+ while (1) switch (_context19.prev = _context19.next) {
1338
1588
  case 0:
1339
- _context17.next = 2;
1589
+ _context19.next = 2;
1340
1590
  return this.api.getUnsafeApi().query.EthereumOutboundQueue.OperatingMode.getValue();
1341
1591
  case 2:
1342
- outboundOperatingMode = _context17.sent;
1343
- return _context17.abrupt("return", outboundOperatingMode.type);
1592
+ outboundOperatingMode = _context19.sent;
1593
+ return _context19.abrupt("return", outboundOperatingMode.type);
1344
1594
  case 4:
1345
1595
  case "end":
1346
- return _context17.stop();
1596
+ return _context19.stop();
1347
1597
  }
1348
- }, _callee17, this);
1598
+ }, _callee19, this);
1349
1599
  }));
1350
1600
  function getBridgeStatus() {
1351
1601
  return _getBridgeStatus.apply(this, arguments);
@@ -1368,10 +1618,19 @@ var PapiApi = /*#__PURE__*/function () {
1368
1618
  var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1369
1619
  if (!this.initialized) return Promise.resolve();
1370
1620
  if (!force && !this.disconnectAllowed) return Promise.resolve();
1371
- // Disconnect api only if it was created automatically
1372
- if (force || typeof this._api === 'string' || this._api === undefined) {
1621
+ // Own client provided, destroy only if force true
1622
+ if (force && _typeof(this._api) === 'object') {
1373
1623
  this.api.destroy();
1374
1624
  }
1625
+ // Client created automatically
1626
+ if (typeof this._api === 'string' || Array.isArray(this._api) || this._api === undefined) {
1627
+ if (force) {
1628
+ this.api.destroy();
1629
+ } else {
1630
+ var key = this._api === undefined ? sdkCore.getNodeProviders(this._node) : this._api;
1631
+ releasePolkadotClient(key);
1632
+ }
1633
+ }
1375
1634
  return Promise.resolve();
1376
1635
  }
1377
1636
  }]);