@paraspell/sdk 5.8.0 → 5.9.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
@@ -615,6 +615,30 @@ var NoXCMSupportImplementedError = /*#__PURE__*/function (_Error) {
615
615
  return _createClass(NoXCMSupportImplementedError);
616
616
  }( /*#__PURE__*/_wrapNativeSuper(Error));
617
617
 
618
+ var Polkadot$1 = {
619
+ relayChainAssetSymbol: "DOT",
620
+ nativeAssetSymbol: "DOT",
621
+ nativeAssets: [
622
+ {
623
+ symbol: "DOT",
624
+ decimals: 10
625
+ }
626
+ ],
627
+ otherAssets: [
628
+ ]
629
+ };
630
+ var Kusama$1 = {
631
+ relayChainAssetSymbol: "KSM",
632
+ nativeAssetSymbol: "KSM",
633
+ nativeAssets: [
634
+ {
635
+ symbol: "KSM",
636
+ decimals: 12
637
+ }
638
+ ],
639
+ otherAssets: [
640
+ ]
641
+ };
618
642
  var Acala$3 = {
619
643
  paraId: 2000,
620
644
  relayChainAssetSymbol: "DOT",
@@ -6574,6 +6598,8 @@ var Peaq$3 = {
6574
6598
  ]
6575
6599
  };
6576
6600
  var assets = {
6601
+ Polkadot: Polkadot$1,
6602
+ Kusama: Kusama$1,
6577
6603
  Acala: Acala$3,
6578
6604
  BridgeHubPolkadot: BridgeHubPolkadot$3,
6579
6605
  BridgeHubKusama: BridgeHubKusama$3,
@@ -6669,6 +6695,7 @@ var assetsMapJson = /*#__PURE__*/Object.freeze({
6669
6695
  Khala: Khala$3,
6670
6696
  KiltSpiritnet: KiltSpiritnet$3,
6671
6697
  Kintsugi: Kintsugi$3,
6698
+ Kusama: Kusama$1,
6672
6699
  Litentry: Litentry$3,
6673
6700
  Litmus: Litmus$3,
6674
6701
  Manta: Manta$3,
@@ -6685,6 +6712,7 @@ var assetsMapJson = /*#__PURE__*/Object.freeze({
6685
6712
  Picasso: Picasso$3,
6686
6713
  Pioneer: Pioneer$3,
6687
6714
  Polkadex: Polkadex$3,
6715
+ Polkadot: Polkadot$1,
6688
6716
  Quartz: Quartz$3,
6689
6717
  Robonomics: Robonomics$3,
6690
6718
  Shiden: Shiden$3,
@@ -6695,102 +6723,405 @@ var assetsMapJson = /*#__PURE__*/Object.freeze({
6695
6723
  default: assets
6696
6724
  });
6697
6725
 
6698
- var assetsMap = assetsMapJson;
6699
- var getAssetsObject = function getAssetsObject(node) {
6700
- return assetsMap[node];
6701
- };
6702
- var getAssetId = function getAssetId(node, symbol) {
6703
- var info = getAssetsObject(node).otherAssets.find(function (o) {
6704
- return o.symbol === symbol;
6705
- });
6706
- return info != null ? info.assetId : null;
6726
+ // Used to inform user, that currency they wish to use is not registered on either origin or destination Parachain
6727
+ var InvalidCurrencyError = /*#__PURE__*/function (_Error) {
6728
+ function InvalidCurrencyError(message) {
6729
+ var _this;
6730
+ _classCallCheck(this, InvalidCurrencyError);
6731
+ _this = _callSuper(this, InvalidCurrencyError, [message]);
6732
+ _this.name = 'InvalidCurrencyError';
6733
+ return _this;
6734
+ }
6735
+ _inherits(InvalidCurrencyError, _Error);
6736
+ return _createClass(InvalidCurrencyError);
6737
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
6738
+
6739
+ // Used to inform user, that Parachain they wish to use is not supported yet
6740
+ var NodeNotSupportedError = /*#__PURE__*/function (_Error) {
6741
+ function NodeNotSupportedError(message) {
6742
+ var _this;
6743
+ _classCallCheck(this, NodeNotSupportedError);
6744
+ _this = _callSuper(this, NodeNotSupportedError, [message !== null && message !== void 0 ? message : 'These nodes do not support XCM transfers from Relay / to Relay chain.']);
6745
+ _this.name = 'NodeNotSupported';
6746
+ return _this;
6747
+ }
6748
+ _inherits(NodeNotSupportedError, _Error);
6749
+ return _createClass(NodeNotSupportedError);
6750
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
6751
+
6752
+ // Used to inform user, that Parachain they wish to use does not support scenario they wish to use yet
6753
+ var ScenarioNotSupportedError = /*#__PURE__*/function (_Error) {
6754
+ function ScenarioNotSupportedError(node, scenario, message) {
6755
+ var _this;
6756
+ _classCallCheck(this, ScenarioNotSupportedError);
6757
+ _this = _callSuper(this, ScenarioNotSupportedError, [message !== null && message !== void 0 ? message : "Scenario ".concat(scenario, " not supported for node ").concat(node)]);
6758
+ _this.name = 'ScenarioNotSupported';
6759
+ return _this;
6760
+ }
6761
+ _inherits(ScenarioNotSupportedError, _Error);
6762
+ return _createClass(ScenarioNotSupportedError);
6763
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
6764
+
6765
+ var IncompatibleNodesError = /*#__PURE__*/function (_Error) {
6766
+ function IncompatibleNodesError(message) {
6767
+ var _this;
6768
+ _classCallCheck(this, IncompatibleNodesError);
6769
+ _this = _callSuper(this, IncompatibleNodesError, [message !== null && message !== void 0 ? message : 'Transactions between nodes on different relaychains are not yet possible.']);
6770
+ _this.name = 'IncompatibleNodes';
6771
+ return _this;
6772
+ }
6773
+ _inherits(IncompatibleNodesError, _Error);
6774
+ return _createClass(IncompatibleNodesError);
6775
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
6776
+
6777
+ var DuplicateAssetError = /*#__PURE__*/function (_Error) {
6778
+ function DuplicateAssetError(symbol) {
6779
+ var _this;
6780
+ _classCallCheck(this, DuplicateAssetError);
6781
+ _this = _callSuper(this, DuplicateAssetError, ["Multiple assets found with the same symbol: ".concat(symbol, ". Please specify asset ID directly by .currency({id: <ASSET_ID>})")]);
6782
+ _this.name = 'DuplicateAsset';
6783
+ return _this;
6784
+ }
6785
+ _inherits(DuplicateAssetError, _Error);
6786
+ return _createClass(DuplicateAssetError);
6787
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
6788
+
6789
+ var constructRelayToParaParameters = function constructRelayToParaParameters(_ref, version) {
6790
+ var api = _ref.api,
6791
+ destination = _ref.destination,
6792
+ address = _ref.address,
6793
+ amount = _ref.amount,
6794
+ paraIdTo = _ref.paraIdTo;
6795
+ var includeFee = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
6796
+ var paraId = destination !== undefined && _typeof(destination) !== 'object' ? paraIdTo !== null && paraIdTo !== void 0 ? paraIdTo : getParaId(destination) : undefined;
6797
+ var parameters = [createPolkadotXcmHeader('RelayToPara', version, destination, paraId), generateAddressPayload(api, 'RelayToPara', null, address, version, paraId), createCurrencySpec(amount, version, exports.Parents.ZERO), 0];
6798
+ if (includeFee) {
6799
+ parameters.push('Unlimited');
6800
+ }
6801
+ return parameters;
6707
6802
  };
6708
- var getRelayChainSymbol = function getRelayChainSymbol(node) {
6709
- return getAssetsObject(node).relayChainAssetSymbol;
6803
+ var isTMulti = function isTMulti(value) {
6804
+ return value && _typeof(value) === 'object' || Array.isArray(value);
6710
6805
  };
6711
- var getNativeAssets = function getNativeAssets(node) {
6712
- return getAssetsObject(node).nativeAssets;
6806
+ var isTMultiLocation = function isTMultiLocation(value) {
6807
+ return value && typeof value.parents !== 'undefined' && typeof value.interior !== 'undefined';
6713
6808
  };
6714
- var getOtherAssets = function getOtherAssets(node) {
6715
- return getAssetsObject(node).otherAssets;
6809
+ var isTCurrencySpecifier = function isTCurrencySpecifier(value) {
6810
+ if (_typeof(value) !== 'object' || value === null) {
6811
+ return false;
6812
+ }
6813
+ return 'symbol' in value && typeof value.symbol === 'string' || 'id' in value && (typeof value.id === 'string' || typeof value.id === 'number' || typeof value.id === 'bigint');
6716
6814
  };
6717
- var getAllAssetsSymbols = function getAllAssetsSymbols(node) {
6718
- var _getAssetsObject = getAssetsObject(node),
6719
- relayChainAssetSymbol = _getAssetsObject.relayChainAssetSymbol,
6720
- nativeAssets = _getAssetsObject.nativeAssets,
6721
- otherAssets = _getAssetsObject.otherAssets;
6722
- var nativeAssetsSymbols = nativeAssets.map(function (_ref) {
6723
- var symbol = _ref.symbol;
6724
- return symbol;
6725
- });
6726
- var otherAssetsSymbols = otherAssets.filter(function (asset) {
6727
- return asset.symbol !== undefined;
6728
- }).map(function (_ref2) {
6729
- var symbol = _ref2.symbol;
6730
- return symbol;
6731
- });
6732
- return [relayChainAssetSymbol].concat(_toConsumableArray(nativeAssetsSymbols), _toConsumableArray(otherAssetsSymbols));
6815
+ var createBridgeCurrencySpec = function createBridgeCurrencySpec(amount, ecosystem) {
6816
+ return _defineProperty({}, exports.Version.V4, [{
6817
+ id: {
6818
+ parents: exports.Parents.TWO,
6819
+ interior: {
6820
+ X1: [{
6821
+ GlobalConsensus: ecosystem
6822
+ }]
6823
+ }
6824
+ },
6825
+ fun: {
6826
+ Fungible: amount
6827
+ }
6828
+ }]);
6733
6829
  };
6734
- var getNativeAssetSymbol = function getNativeAssetSymbol(node) {
6735
- if (node === 'Polkadot') {
6736
- return 'DOT';
6737
- } else if (node === 'Kusama') {
6738
- return 'KSM';
6830
+ var createCurrencySpec = function createCurrencySpec(amount, version, parents, overriddenCurrency) {
6831
+ var interior = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'Here';
6832
+ if (!overriddenCurrency) {
6833
+ return _defineProperty({}, version, [{
6834
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
6835
+ id: version === exports.Version.V4 ? {
6836
+ parents: parents,
6837
+ interior: interior
6838
+ } : {
6839
+ Concrete: {
6840
+ parents: parents,
6841
+ interior: interior
6842
+ }
6843
+ },
6844
+ fun: {
6845
+ Fungible: amount
6846
+ }
6847
+ }]);
6739
6848
  }
6740
- return getAssetsObject(node).nativeAssetSymbol;
6741
- };
6742
- var hasSupportForAsset = function hasSupportForAsset(node, symbol) {
6743
- return getAllAssetsSymbols(node).map(function (s) {
6744
- return s.toLowerCase();
6745
- }).includes(symbol.toLowerCase());
6849
+ return isTMultiLocation(overriddenCurrency) ? _defineProperty({}, version, [{
6850
+ id: version === exports.Version.V4 ? overriddenCurrency : {
6851
+ Concrete: overriddenCurrency
6852
+ },
6853
+ fun: {
6854
+ Fungible: amount
6855
+ }
6856
+ }]) : // It must be TMultiAsset if not TMultiLocation
6857
+ _defineProperty({}, version, overriddenCurrency);
6746
6858
  };
6747
- var getAssetDecimals = function getAssetDecimals(node, symbol) {
6748
- var _getAssetsObject2 = getAssetsObject(node),
6749
- otherAssets = _getAssetsObject2.otherAssets,
6750
- nativeAssets = _getAssetsObject2.nativeAssets;
6751
- var asset = [].concat(_toConsumableArray(otherAssets), _toConsumableArray(nativeAssets)).find(function (o) {
6752
- return o.symbol === symbol;
6859
+ var createPolkadotXcmHeader = function createPolkadotXcmHeader(scenario, version, destination, nodeId, junction, parents) {
6860
+ var parentsResolved = parents !== null && parents !== void 0 ? parents : scenario === 'RelayToPara' ? exports.Parents.ZERO : exports.Parents.ONE;
6861
+ var interior = scenario === 'ParaToRelay' ? 'Here' : createX1Payload(version, junction !== null && junction !== void 0 ? junction : {
6862
+ Parachain: nodeId
6863
+ });
6864
+ var isMultiLocationDestination = _typeof(destination) === 'object';
6865
+ return _defineProperty({}, version, isMultiLocationDestination ? destination : {
6866
+ parents: parentsResolved,
6867
+ interior: interior
6753
6868
  });
6754
- return (asset === null || asset === void 0 ? void 0 : asset.decimals) !== undefined ? asset.decimals : null;
6755
- };
6756
- var getParaId = function getParaId(node) {
6757
- return getAssetsObject(node).paraId;
6758
6869
  };
6759
- var getTNode = function getTNode(paraId) {
6760
- var _a;
6761
- return (_a = NODE_NAMES.find(function (node) {
6762
- return getParaId(node) === paraId;
6763
- })) !== null && _a !== void 0 ? _a : null;
6870
+ var createBridgePolkadotXcmDest = function createBridgePolkadotXcmDest(version, ecosystem, destination, nodeId) {
6871
+ var multiLocation = {
6872
+ parents: exports.Parents.TWO,
6873
+ interior: {
6874
+ X2: [{
6875
+ GlobalConsensus: ecosystem
6876
+ }, {
6877
+ Parachain: nodeId
6878
+ }]
6879
+ }
6880
+ };
6881
+ var isMultiLocationDestination = _typeof(destination) === 'object';
6882
+ return _defineProperty({}, version, isMultiLocationDestination ? destination : multiLocation);
6764
6883
  };
6765
-
6766
- var getBalanceNative = function getBalanceNative(address, node, api) {
6884
+ var calculateTransactionFee$1 = function calculateTransactionFee(tx, address) {
6767
6885
  return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
6768
- var apiWithFallback, _yield$apiWithFallbac, data, balance;
6886
+ var _yield$tx$paymentInfo, partialFee;
6769
6887
  return _regeneratorRuntime().wrap(function _callee$(_context) {
6770
6888
  while (1) switch (_context.prev = _context.next) {
6771
6889
  case 0:
6772
- if (!(api !== null && api !== void 0)) {
6773
- _context.next = 4;
6774
- break;
6775
- }
6776
- _context.t0 = api;
6777
- _context.next = 7;
6778
- break;
6779
- case 4:
6780
- _context.next = 6;
6781
- return createApiInstanceForNode(node);
6782
- case 6:
6783
- _context.t0 = _context.sent;
6784
- case 7:
6785
- apiWithFallback = _context.t0;
6786
- _context.next = 10;
6787
- return apiWithFallback.query.system.account(address);
6788
- case 10:
6789
- _yield$apiWithFallbac = _context.sent;
6790
- data = _yield$apiWithFallbac.data;
6791
- balance = data.free.toBn();
6792
- return _context.abrupt("return", BigInt(balance.toString()));
6793
- case 14:
6890
+ _context.next = 2;
6891
+ return tx.paymentInfo(address);
6892
+ case 2:
6893
+ _yield$tx$paymentInfo = _context.sent;
6894
+ partialFee = _yield$tx$paymentInfo.partialFee;
6895
+ return _context.abrupt("return", partialFee.toBn());
6896
+ case 5:
6897
+ case "end":
6898
+ return _context.stop();
6899
+ }
6900
+ }, _callee);
6901
+ }));
6902
+ };
6903
+ // TODO: Refactor this function to eliminate the any type
6904
+ var findParachainJunction = function findParachainJunction(multilocation) {
6905
+ var interior = multilocation.interior;
6906
+ for (var key in interior) {
6907
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
6908
+ var junctions = interior[key];
6909
+ if (Array.isArray(junctions)) {
6910
+ var _iterator = _createForOfIteratorHelper(junctions),
6911
+ _step;
6912
+ try {
6913
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
6914
+ var junction = _step.value;
6915
+ if ('Parachain' in junction) {
6916
+ return Number(junction.Parachain);
6917
+ }
6918
+ }
6919
+ } catch (err) {
6920
+ _iterator.e(err);
6921
+ } finally {
6922
+ _iterator.f();
6923
+ }
6924
+ } else if (junctions !== undefined && 'Parachain' in junctions) {
6925
+ return Number(junctions.Parachain);
6926
+ }
6927
+ }
6928
+ return null;
6929
+ };
6930
+ var resolveTNodeFromMultiLocation = function resolveTNodeFromMultiLocation(multiLocation) {
6931
+ var parachainId = findParachainJunction(multiLocation);
6932
+ if (parachainId === null) {
6933
+ throw new Error('Parachain ID not found in destination multi location.');
6934
+ }
6935
+ var node = getTNode(parachainId);
6936
+ if (node === null) {
6937
+ throw new Error('Node with specified paraId not found in destination multi location.');
6938
+ }
6939
+ return node;
6940
+ };
6941
+
6942
+ var findAssetBySymbol = function findAssetBySymbol(node, destination, otherAssets, nativeAssets, combinedAssets, symbol, isRelayDestination, isSymbol) {
6943
+ if (destination === 'Ethereum') {
6944
+ return combinedAssets.find(function (_ref) {
6945
+ var assetSymbol = _ref.symbol;
6946
+ return (assetSymbol === null || assetSymbol === void 0 ? void 0 : assetSymbol.toLowerCase()) === symbol.toLowerCase();
6947
+ });
6948
+ }
6949
+ var otherAssetsMatches = otherAssets.filter(function (_ref2) {
6950
+ var assetSymbol = _ref2.symbol;
6951
+ return (assetSymbol === null || assetSymbol === void 0 ? void 0 : assetSymbol.toLowerCase()) === symbol.toLowerCase();
6952
+ });
6953
+ var nativeAssetsMatches = nativeAssets.filter(function (_ref3) {
6954
+ var assetSymbol = _ref3.symbol;
6955
+ return (assetSymbol === null || assetSymbol === void 0 ? void 0 : assetSymbol.toLowerCase()) === symbol.toLowerCase();
6956
+ });
6957
+ if (otherAssetsMatches.length > 1 && !isRelayDestination && isSymbol === undefined) {
6958
+ throw new DuplicateAssetError(symbol);
6959
+ }
6960
+ if (node === 'Astar' || node === 'Shiden') {
6961
+ return nativeAssetsMatches[0] || otherAssetsMatches[0] || null;
6962
+ }
6963
+ return otherAssetsMatches[0] || nativeAssetsMatches[0] || null;
6964
+ };
6965
+ var findAssetById = function findAssetById(assets, assetId) {
6966
+ return assets.find(function (_ref4) {
6967
+ var currentAssetId = _ref4.assetId;
6968
+ return currentAssetId === assetId;
6969
+ });
6970
+ };
6971
+ var getAssetBySymbolOrId = function getAssetBySymbolOrId(node, currency) {
6972
+ var isRelayDestination = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
6973
+ var isSymbol = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
6974
+ var destination = arguments.length > 4 ? arguments[4] : undefined;
6975
+ if (isTMulti(currency)) {
6976
+ return null;
6977
+ }
6978
+ var currencyString = currency.toString();
6979
+ var _getAssetsObject = getAssetsObject(node),
6980
+ otherAssets = _getAssetsObject.otherAssets,
6981
+ nativeAssets = _getAssetsObject.nativeAssets,
6982
+ relayChainAssetSymbol = _getAssetsObject.relayChainAssetSymbol;
6983
+ var combinedAssets = destination === 'Ethereum' ? _toConsumableArray(getOtherAssets('Ethereum')) : [].concat(_toConsumableArray(otherAssets), _toConsumableArray(nativeAssets));
6984
+ var asset;
6985
+ if (isSymbol === true) {
6986
+ asset = findAssetBySymbol(node, destination, otherAssets, nativeAssets, combinedAssets, currencyString, isRelayDestination, isSymbol);
6987
+ } else if (isSymbol === false) {
6988
+ asset = findAssetById(combinedAssets, currencyString);
6989
+ } else {
6990
+ asset = findAssetBySymbol(node, destination, otherAssets, nativeAssets, combinedAssets, currencyString, isRelayDestination, isSymbol) || findAssetById(combinedAssets, currencyString);
6991
+ }
6992
+ if (asset) {
6993
+ return asset;
6994
+ }
6995
+ if (relayChainAssetSymbol.toLowerCase() === currencyString.toLowerCase() && isSymbol !== false) {
6996
+ var relayChainAsset = {
6997
+ symbol: relayChainAssetSymbol,
6998
+ decimals: getAssetDecimals(node, relayChainAssetSymbol)
6999
+ };
7000
+ return relayChainAsset;
7001
+ }
7002
+ return null;
7003
+ };
7004
+
7005
+ var assetsMap = assetsMapJson;
7006
+ var getAssetsObject = function getAssetsObject(node) {
7007
+ return assetsMap[node];
7008
+ };
7009
+ var getAssetId = function getAssetId(node, symbol) {
7010
+ var info = getAssetsObject(node).otherAssets.find(function (o) {
7011
+ return o.symbol === symbol;
7012
+ });
7013
+ return info != null ? info.assetId : null;
7014
+ };
7015
+ var getRelayChainSymbol = function getRelayChainSymbol(node) {
7016
+ return getAssetsObject(node).relayChainAssetSymbol;
7017
+ };
7018
+ var getNativeAssets = function getNativeAssets(node) {
7019
+ return getAssetsObject(node).nativeAssets;
7020
+ };
7021
+ var getOtherAssets = function getOtherAssets(node) {
7022
+ return getAssetsObject(node).otherAssets;
7023
+ };
7024
+ var getAssets = function getAssets(node) {
7025
+ var _getAssetsObject = getAssetsObject(node),
7026
+ nativeAssets = _getAssetsObject.nativeAssets,
7027
+ otherAssets = _getAssetsObject.otherAssets;
7028
+ var relayChainAsset = getAssetBySymbolOrId(determineRelayChain(node), getRelayChainSymbol(node));
7029
+ return [].concat(_toConsumableArray(relayChainAsset ? [relayChainAsset] : []), _toConsumableArray(nativeAssets), _toConsumableArray(otherAssets));
7030
+ };
7031
+ var getAllAssetsSymbols = function getAllAssetsSymbols(node) {
7032
+ var _getAssetsObject2 = getAssetsObject(node),
7033
+ relayChainAssetSymbol = _getAssetsObject2.relayChainAssetSymbol,
7034
+ nativeAssets = _getAssetsObject2.nativeAssets,
7035
+ otherAssets = _getAssetsObject2.otherAssets;
7036
+ var nativeAssetsSymbols = nativeAssets.map(function (_ref) {
7037
+ var symbol = _ref.symbol;
7038
+ return symbol;
7039
+ });
7040
+ var otherAssetsSymbols = otherAssets.filter(function (asset) {
7041
+ return asset.symbol !== undefined;
7042
+ }).map(function (_ref2) {
7043
+ var symbol = _ref2.symbol;
7044
+ return symbol;
7045
+ });
7046
+ return [relayChainAssetSymbol].concat(_toConsumableArray(nativeAssetsSymbols), _toConsumableArray(otherAssetsSymbols));
7047
+ };
7048
+ var getNativeAssetSymbol = function getNativeAssetSymbol(node) {
7049
+ if (node === 'Polkadot') {
7050
+ return 'DOT';
7051
+ } else if (node === 'Kusama') {
7052
+ return 'KSM';
7053
+ }
7054
+ return getAssetsObject(node).nativeAssetSymbol;
7055
+ };
7056
+ var hasSupportForAsset = function hasSupportForAsset(node, symbol) {
7057
+ return getAllAssetsSymbols(node).map(function (s) {
7058
+ return s.toLowerCase();
7059
+ }).includes(symbol.toLowerCase());
7060
+ };
7061
+ var getSupportedAssets = function getSupportedAssets(origin, destination) {
7062
+ var originAssets = getAssets(origin);
7063
+ var destinationAssets = getAssets(destination);
7064
+ if (destination === 'Ethereum' || origin === 'Ethereum') {
7065
+ return getOtherAssets('Ethereum');
7066
+ }
7067
+ if (origin === 'AssetHubPolkadot' && destination === 'AssetHubKusama' || origin === 'AssetHubKusama' && destination === 'AssetHubPolkadot') {
7068
+ var polkadotAsset = getAssetBySymbolOrId('Polkadot', 'DOT');
7069
+ var kusamaAsset = getAssetBySymbolOrId('Kusama', 'KSM');
7070
+ return [].concat(_toConsumableArray(polkadotAsset ? [polkadotAsset] : []), _toConsumableArray(kusamaAsset ? [kusamaAsset] : []));
7071
+ }
7072
+ return _toConsumableArray(originAssets.filter(function (asset) {
7073
+ return destinationAssets.some(function (a) {
7074
+ return a.symbol === asset.symbol;
7075
+ });
7076
+ }));
7077
+ };
7078
+ var getAssetDecimals = function getAssetDecimals(node, symbol) {
7079
+ var _getAssetsObject3 = getAssetsObject(node),
7080
+ otherAssets = _getAssetsObject3.otherAssets,
7081
+ nativeAssets = _getAssetsObject3.nativeAssets;
7082
+ var asset = [].concat(_toConsumableArray(otherAssets), _toConsumableArray(nativeAssets)).find(function (o) {
7083
+ return o.symbol === symbol;
7084
+ });
7085
+ return (asset === null || asset === void 0 ? void 0 : asset.decimals) !== undefined ? asset.decimals : null;
7086
+ };
7087
+ var getParaId = function getParaId(node) {
7088
+ return getAssetsObject(node).paraId;
7089
+ };
7090
+ var getTNode = function getTNode(paraId) {
7091
+ var _a;
7092
+ return (_a = NODE_NAMES.find(function (node) {
7093
+ return getParaId(node) === paraId;
7094
+ })) !== null && _a !== void 0 ? _a : null;
7095
+ };
7096
+
7097
+ var getBalanceNative = function getBalanceNative(address, node, api) {
7098
+ return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
7099
+ var apiWithFallback, _yield$apiWithFallbac, data, balance;
7100
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
7101
+ while (1) switch (_context.prev = _context.next) {
7102
+ case 0:
7103
+ if (!(api !== null && api !== void 0)) {
7104
+ _context.next = 4;
7105
+ break;
7106
+ }
7107
+ _context.t0 = api;
7108
+ _context.next = 7;
7109
+ break;
7110
+ case 4:
7111
+ _context.next = 6;
7112
+ return createApiInstanceForNode(node);
7113
+ case 6:
7114
+ _context.t0 = _context.sent;
7115
+ case 7:
7116
+ apiWithFallback = _context.t0;
7117
+ _context.next = 10;
7118
+ return apiWithFallback.query.system.account(address);
7119
+ case 10:
7120
+ _yield$apiWithFallbac = _context.sent;
7121
+ data = _yield$apiWithFallbac.data;
7122
+ balance = data.free.toBn();
7123
+ return _context.abrupt("return", BigInt(balance.toString()));
7124
+ case 14:
6794
7125
  case "end":
6795
7126
  return _context.stop();
6796
7127
  }
@@ -7207,374 +7538,104 @@ var pallets = {
7207
7538
  Imbue: Imbue$2,
7208
7539
  Integritee: Integritee$2,
7209
7540
  InvArchTinker: InvArchTinker$2,
7210
- Karura: Karura$2,
7211
- Kintsugi: Kintsugi$2,
7212
- Litmus: Litmus$2,
7213
- Moonriver: Moonriver$2,
7214
- ParallelHeiko: ParallelHeiko$2,
7215
- Picasso: Picasso$2,
7216
- Quartz: Quartz$2,
7217
- Robonomics: Robonomics$2,
7218
- Shiden: Shiden$2,
7219
- Turing: Turing$2,
7220
- Unique: Unique$2,
7221
- Crust: Crust$2,
7222
- Manta: Manta$2,
7223
- Nodle: Nodle$2,
7224
- NeuroWeb: NeuroWeb$2,
7225
- Pendulum: Pendulum$2,
7226
- Zeitgeist: Zeitgeist$2,
7227
- Polkadex: Polkadex$2,
7228
- Collectives: Collectives$2,
7229
- Khala: Khala$2,
7230
- Phala: Phala$2,
7231
- Subsocial: Subsocial$2,
7232
- KiltSpiritnet: KiltSpiritnet$2,
7233
- Curio: Curio$2,
7234
- BridgeHubPolkadot: BridgeHubPolkadot$2,
7235
- BridgeHubKusama: BridgeHubKusama$2,
7236
- Mythos: Mythos$2,
7237
- Peaq: Peaq$2
7238
- };
7239
-
7240
- var palletsMapJson = /*#__PURE__*/Object.freeze({
7241
- __proto__: null,
7242
- Acala: Acala$2,
7243
- Altair: Altair$2,
7244
- Amplitude: Amplitude$2,
7245
- AssetHubKusama: AssetHubKusama$2,
7246
- AssetHubPolkadot: AssetHubPolkadot$2,
7247
- Astar: Astar$2,
7248
- Bajun: Bajun$2,
7249
- Basilisk: Basilisk$2,
7250
- BifrostKusama: BifrostKusama$2,
7251
- BifrostPolkadot: BifrostPolkadot$2,
7252
- Bitgreen: Bitgreen$2,
7253
- BridgeHubKusama: BridgeHubKusama$2,
7254
- BridgeHubPolkadot: BridgeHubPolkadot$2,
7255
- Calamari: Calamari$2,
7256
- Centrifuge: Centrifuge$2,
7257
- Collectives: Collectives$2,
7258
- ComposableFinance: ComposableFinance$2,
7259
- CoretimeKusama: CoretimeKusama$2,
7260
- Crab: Crab$2,
7261
- Crust: Crust$2,
7262
- CrustShadow: CrustShadow$2,
7263
- Curio: Curio$2,
7264
- Darwinia: Darwinia$2,
7265
- Encointer: Encointer$2,
7266
- Hydration: Hydration$2,
7267
- Imbue: Imbue$2,
7268
- Integritee: Integritee$2,
7269
- Interlay: Interlay$2,
7270
- InvArchTinker: InvArchTinker$2,
7271
- Karura: Karura$2,
7272
- Khala: Khala$2,
7273
- KiltSpiritnet: KiltSpiritnet$2,
7274
- Kintsugi: Kintsugi$2,
7275
- Litentry: Litentry$2,
7276
- Litmus: Litmus$2,
7277
- Manta: Manta$2,
7278
- Moonbeam: Moonbeam$2,
7279
- Moonriver: Moonriver$2,
7280
- Mythos: Mythos$2,
7281
- NeuroWeb: NeuroWeb$2,
7282
- Nodle: Nodle$2,
7283
- Parallel: Parallel$2,
7284
- ParallelHeiko: ParallelHeiko$2,
7285
- Peaq: Peaq$2,
7286
- Pendulum: Pendulum$2,
7287
- Phala: Phala$2,
7288
- Picasso: Picasso$2,
7289
- Pioneer: Pioneer$2,
7290
- Polkadex: Polkadex$2,
7291
- Quartz: Quartz$2,
7292
- Robonomics: Robonomics$2,
7293
- Shiden: Shiden$2,
7294
- Subsocial: Subsocial$2,
7295
- Turing: Turing$2,
7296
- Unique: Unique$2,
7297
- Zeitgeist: Zeitgeist$2,
7298
- default: pallets
7299
- });
7300
-
7301
- // Script that pulls XCM Pallets for selected Parachain
7302
- var palletsMap$1 = palletsMapJson;
7303
- var getDefaultPallet = function getDefaultPallet(node) {
7304
- return palletsMap$1[node].defaultPallet;
7305
- };
7306
- var getSupportedPallets = function getSupportedPallets(node) {
7307
- return palletsMap$1[node].supportedPallets;
7308
- };
7309
-
7310
- // Used to inform user, that currency they wish to use is not registered on either origin or destination Parachain
7311
- var InvalidCurrencyError = /*#__PURE__*/function (_Error) {
7312
- function InvalidCurrencyError(message) {
7313
- var _this;
7314
- _classCallCheck(this, InvalidCurrencyError);
7315
- _this = _callSuper(this, InvalidCurrencyError, [message]);
7316
- _this.name = 'InvalidCurrencyError';
7317
- return _this;
7318
- }
7319
- _inherits(InvalidCurrencyError, _Error);
7320
- return _createClass(InvalidCurrencyError);
7321
- }( /*#__PURE__*/_wrapNativeSuper(Error));
7322
-
7323
- // Used to inform user, that Parachain they wish to use is not supported yet
7324
- var NodeNotSupportedError = /*#__PURE__*/function (_Error) {
7325
- function NodeNotSupportedError(message) {
7326
- var _this;
7327
- _classCallCheck(this, NodeNotSupportedError);
7328
- _this = _callSuper(this, NodeNotSupportedError, [message !== null && message !== void 0 ? message : 'These nodes do not support XCM transfers from Relay / to Relay chain.']);
7329
- _this.name = 'NodeNotSupported';
7330
- return _this;
7331
- }
7332
- _inherits(NodeNotSupportedError, _Error);
7333
- return _createClass(NodeNotSupportedError);
7334
- }( /*#__PURE__*/_wrapNativeSuper(Error));
7335
-
7336
- // Used to inform user, that Parachain they wish to use does not support scenario they wish to use yet
7337
- var ScenarioNotSupportedError = /*#__PURE__*/function (_Error) {
7338
- function ScenarioNotSupportedError(node, scenario, message) {
7339
- var _this;
7340
- _classCallCheck(this, ScenarioNotSupportedError);
7341
- _this = _callSuper(this, ScenarioNotSupportedError, [message !== null && message !== void 0 ? message : "Scenario ".concat(scenario, " not supported for node ").concat(node)]);
7342
- _this.name = 'ScenarioNotSupported';
7343
- return _this;
7344
- }
7345
- _inherits(ScenarioNotSupportedError, _Error);
7346
- return _createClass(ScenarioNotSupportedError);
7347
- }( /*#__PURE__*/_wrapNativeSuper(Error));
7348
-
7349
- var IncompatibleNodesError = /*#__PURE__*/function (_Error) {
7350
- function IncompatibleNodesError() {
7351
- var _this;
7352
- _classCallCheck(this, IncompatibleNodesError);
7353
- _this = _callSuper(this, IncompatibleNodesError, ['Transactions between nodes on different relaychains are not yet possible.']);
7354
- _this.name = 'IncompatibleNodes';
7355
- return _this;
7356
- }
7357
- _inherits(IncompatibleNodesError, _Error);
7358
- return _createClass(IncompatibleNodesError);
7359
- }( /*#__PURE__*/_wrapNativeSuper(Error));
7360
-
7361
- var DuplicateAssetError = /*#__PURE__*/function (_Error) {
7362
- function DuplicateAssetError(symbol) {
7363
- var _this;
7364
- _classCallCheck(this, DuplicateAssetError);
7365
- _this = _callSuper(this, DuplicateAssetError, ["Multiple assets found with the same symbol: ".concat(symbol, ". Please specify asset ID directly by .currency({id: <ASSET_ID>})")]);
7366
- _this.name = 'DuplicateAsset';
7367
- return _this;
7368
- }
7369
- _inherits(DuplicateAssetError, _Error);
7370
- return _createClass(DuplicateAssetError);
7371
- }( /*#__PURE__*/_wrapNativeSuper(Error));
7372
-
7373
- var constructRelayToParaParameters = function constructRelayToParaParameters(_ref, version) {
7374
- var api = _ref.api,
7375
- destination = _ref.destination,
7376
- address = _ref.address,
7377
- amount = _ref.amount,
7378
- paraIdTo = _ref.paraIdTo;
7379
- var includeFee = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7380
- var paraId = destination !== undefined && _typeof(destination) !== 'object' ? paraIdTo !== null && paraIdTo !== void 0 ? paraIdTo : getParaId(destination) : undefined;
7381
- var parameters = [createPolkadotXcmHeader('RelayToPara', version, destination, paraId), generateAddressPayload(api, 'RelayToPara', null, address, version, paraId), createCurrencySpec(amount, version, exports.Parents.ZERO), 0];
7382
- if (includeFee) {
7383
- parameters.push('Unlimited');
7384
- }
7385
- return parameters;
7386
- };
7387
- var isTMulti = function isTMulti(value) {
7388
- return value && _typeof(value) === 'object' || Array.isArray(value);
7389
- };
7390
- var isTMultiLocation = function isTMultiLocation(value) {
7391
- return value && typeof value.parents !== 'undefined' && typeof value.interior !== 'undefined';
7392
- };
7393
- var isTCurrencySpecifier = function isTCurrencySpecifier(value) {
7394
- if (_typeof(value) !== 'object' || value === null) {
7395
- return false;
7396
- }
7397
- return 'symbol' in value && typeof value.symbol === 'string' || 'id' in value && (typeof value.id === 'string' || typeof value.id === 'number' || typeof value.id === 'bigint');
7398
- };
7399
- var createBridgeCurrencySpec = function createBridgeCurrencySpec(amount, ecosystem) {
7400
- return _defineProperty({}, exports.Version.V4, [{
7401
- id: {
7402
- parents: exports.Parents.TWO,
7403
- interior: {
7404
- X1: [{
7405
- GlobalConsensus: ecosystem
7406
- }]
7407
- }
7408
- },
7409
- fun: {
7410
- Fungible: amount
7411
- }
7412
- }]);
7413
- };
7414
- var createCurrencySpec = function createCurrencySpec(amount, version, parents, overriddenCurrency) {
7415
- var interior = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'Here';
7416
- if (!overriddenCurrency) {
7417
- return _defineProperty({}, version, [{
7418
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
7419
- id: version === exports.Version.V4 ? {
7420
- parents: parents,
7421
- interior: interior
7422
- } : {
7423
- Concrete: {
7424
- parents: parents,
7425
- interior: interior
7426
- }
7427
- },
7428
- fun: {
7429
- Fungible: amount
7430
- }
7431
- }]);
7432
- }
7433
- return isTMultiLocation(overriddenCurrency) ? _defineProperty({}, version, [{
7434
- id: version === exports.Version.V4 ? overriddenCurrency : {
7435
- Concrete: overriddenCurrency
7436
- },
7437
- fun: {
7438
- Fungible: amount
7439
- }
7440
- }]) : // It must be TMultiAsset if not TMultiLocation
7441
- _defineProperty({}, version, overriddenCurrency);
7442
- };
7443
- var createPolkadotXcmHeader = function createPolkadotXcmHeader(scenario, version, destination, nodeId, junction, parents) {
7444
- var parentsResolved = parents !== null && parents !== void 0 ? parents : scenario === 'RelayToPara' ? exports.Parents.ZERO : exports.Parents.ONE;
7445
- var interior = scenario === 'ParaToRelay' ? 'Here' : createX1Payload(version, junction !== null && junction !== void 0 ? junction : {
7446
- Parachain: nodeId
7447
- });
7448
- var isMultiLocationDestination = _typeof(destination) === 'object';
7449
- return _defineProperty({}, version, isMultiLocationDestination ? destination : {
7450
- parents: parentsResolved,
7451
- interior: interior
7452
- });
7453
- };
7454
- var createBridgePolkadotXcmDest = function createBridgePolkadotXcmDest(version, ecosystem, destination, nodeId) {
7455
- var multiLocation = {
7456
- parents: exports.Parents.TWO,
7457
- interior: {
7458
- X2: [{
7459
- GlobalConsensus: ecosystem
7460
- }, {
7461
- Parachain: nodeId
7462
- }]
7463
- }
7464
- };
7465
- var isMultiLocationDestination = _typeof(destination) === 'object';
7466
- return _defineProperty({}, version, isMultiLocationDestination ? destination : multiLocation);
7467
- };
7468
- var calculateTransactionFee$1 = function calculateTransactionFee(tx, address) {
7469
- return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
7470
- var _yield$tx$paymentInfo, partialFee;
7471
- return _regeneratorRuntime().wrap(function _callee$(_context) {
7472
- while (1) switch (_context.prev = _context.next) {
7473
- case 0:
7474
- _context.next = 2;
7475
- return tx.paymentInfo(address);
7476
- case 2:
7477
- _yield$tx$paymentInfo = _context.sent;
7478
- partialFee = _yield$tx$paymentInfo.partialFee;
7479
- return _context.abrupt("return", partialFee.toBn());
7480
- case 5:
7481
- case "end":
7482
- return _context.stop();
7483
- }
7484
- }, _callee);
7485
- }));
7486
- };
7487
- // TODO: Refactor this function to eliminate the any type
7488
- var findParachainJunction = function findParachainJunction(multilocation) {
7489
- var interior = multilocation.interior;
7490
- for (var key in interior) {
7491
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
7492
- var junctions = interior[key];
7493
- if (Array.isArray(junctions)) {
7494
- var _iterator = _createForOfIteratorHelper(junctions),
7495
- _step;
7496
- try {
7497
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
7498
- var junction = _step.value;
7499
- if ('Parachain' in junction) {
7500
- return Number(junction.Parachain);
7501
- }
7502
- }
7503
- } catch (err) {
7504
- _iterator.e(err);
7505
- } finally {
7506
- _iterator.f();
7507
- }
7508
- } else if (junctions !== undefined && 'Parachain' in junctions) {
7509
- return Number(junctions.Parachain);
7510
- }
7511
- }
7512
- return null;
7513
- };
7514
- var resolveTNodeFromMultiLocation = function resolveTNodeFromMultiLocation(multiLocation) {
7515
- var parachainId = findParachainJunction(multiLocation);
7516
- if (parachainId === null) {
7517
- throw new Error('Parachain ID not found in destination multi location.');
7518
- }
7519
- var node = getTNode(parachainId);
7520
- if (node === null) {
7521
- throw new Error('Node with specified paraId not found in destination multi location.');
7522
- }
7523
- return node;
7541
+ Karura: Karura$2,
7542
+ Kintsugi: Kintsugi$2,
7543
+ Litmus: Litmus$2,
7544
+ Moonriver: Moonriver$2,
7545
+ ParallelHeiko: ParallelHeiko$2,
7546
+ Picasso: Picasso$2,
7547
+ Quartz: Quartz$2,
7548
+ Robonomics: Robonomics$2,
7549
+ Shiden: Shiden$2,
7550
+ Turing: Turing$2,
7551
+ Unique: Unique$2,
7552
+ Crust: Crust$2,
7553
+ Manta: Manta$2,
7554
+ Nodle: Nodle$2,
7555
+ NeuroWeb: NeuroWeb$2,
7556
+ Pendulum: Pendulum$2,
7557
+ Zeitgeist: Zeitgeist$2,
7558
+ Polkadex: Polkadex$2,
7559
+ Collectives: Collectives$2,
7560
+ Khala: Khala$2,
7561
+ Phala: Phala$2,
7562
+ Subsocial: Subsocial$2,
7563
+ KiltSpiritnet: KiltSpiritnet$2,
7564
+ Curio: Curio$2,
7565
+ BridgeHubPolkadot: BridgeHubPolkadot$2,
7566
+ BridgeHubKusama: BridgeHubKusama$2,
7567
+ Mythos: Mythos$2,
7568
+ Peaq: Peaq$2
7524
7569
  };
7525
7570
 
7526
- var findAssetBySymbol = function findAssetBySymbol(otherAssets, nativeAssets, symbol, isRelayDestination) {
7527
- var otherAssetsMatches = otherAssets.filter(function (_ref) {
7528
- var assetSymbol = _ref.symbol;
7529
- return (assetSymbol === null || assetSymbol === void 0 ? void 0 : assetSymbol.toLowerCase()) === symbol.toLowerCase();
7530
- });
7531
- var nativeAssetsMatches = nativeAssets.filter(function (_ref2) {
7532
- var assetSymbol = _ref2.symbol;
7533
- return (assetSymbol === null || assetSymbol === void 0 ? void 0 : assetSymbol.toLowerCase()) === symbol.toLowerCase();
7534
- });
7535
- if (otherAssetsMatches.length > 1 && !isRelayDestination) {
7536
- throw new DuplicateAssetError(symbol);
7537
- }
7538
- return otherAssetsMatches[0] || nativeAssetsMatches[0] || null;
7539
- };
7540
- var findAssetById = function findAssetById(assets, assetId) {
7541
- return assets.find(function (_ref3) {
7542
- var currentAssetId = _ref3.assetId;
7543
- return currentAssetId === assetId;
7544
- });
7571
+ var palletsMapJson = /*#__PURE__*/Object.freeze({
7572
+ __proto__: null,
7573
+ Acala: Acala$2,
7574
+ Altair: Altair$2,
7575
+ Amplitude: Amplitude$2,
7576
+ AssetHubKusama: AssetHubKusama$2,
7577
+ AssetHubPolkadot: AssetHubPolkadot$2,
7578
+ Astar: Astar$2,
7579
+ Bajun: Bajun$2,
7580
+ Basilisk: Basilisk$2,
7581
+ BifrostKusama: BifrostKusama$2,
7582
+ BifrostPolkadot: BifrostPolkadot$2,
7583
+ Bitgreen: Bitgreen$2,
7584
+ BridgeHubKusama: BridgeHubKusama$2,
7585
+ BridgeHubPolkadot: BridgeHubPolkadot$2,
7586
+ Calamari: Calamari$2,
7587
+ Centrifuge: Centrifuge$2,
7588
+ Collectives: Collectives$2,
7589
+ ComposableFinance: ComposableFinance$2,
7590
+ CoretimeKusama: CoretimeKusama$2,
7591
+ Crab: Crab$2,
7592
+ Crust: Crust$2,
7593
+ CrustShadow: CrustShadow$2,
7594
+ Curio: Curio$2,
7595
+ Darwinia: Darwinia$2,
7596
+ Encointer: Encointer$2,
7597
+ Hydration: Hydration$2,
7598
+ Imbue: Imbue$2,
7599
+ Integritee: Integritee$2,
7600
+ Interlay: Interlay$2,
7601
+ InvArchTinker: InvArchTinker$2,
7602
+ Karura: Karura$2,
7603
+ Khala: Khala$2,
7604
+ KiltSpiritnet: KiltSpiritnet$2,
7605
+ Kintsugi: Kintsugi$2,
7606
+ Litentry: Litentry$2,
7607
+ Litmus: Litmus$2,
7608
+ Manta: Manta$2,
7609
+ Moonbeam: Moonbeam$2,
7610
+ Moonriver: Moonriver$2,
7611
+ Mythos: Mythos$2,
7612
+ NeuroWeb: NeuroWeb$2,
7613
+ Nodle: Nodle$2,
7614
+ Parallel: Parallel$2,
7615
+ ParallelHeiko: ParallelHeiko$2,
7616
+ Peaq: Peaq$2,
7617
+ Pendulum: Pendulum$2,
7618
+ Phala: Phala$2,
7619
+ Picasso: Picasso$2,
7620
+ Pioneer: Pioneer$2,
7621
+ Polkadex: Polkadex$2,
7622
+ Quartz: Quartz$2,
7623
+ Robonomics: Robonomics$2,
7624
+ Shiden: Shiden$2,
7625
+ Subsocial: Subsocial$2,
7626
+ Turing: Turing$2,
7627
+ Unique: Unique$2,
7628
+ Zeitgeist: Zeitgeist$2,
7629
+ default: pallets
7630
+ });
7631
+
7632
+ // Script that pulls XCM Pallets for selected Parachain
7633
+ var palletsMap$1 = palletsMapJson;
7634
+ var getDefaultPallet = function getDefaultPallet(node) {
7635
+ return palletsMap$1[node].defaultPallet;
7545
7636
  };
7546
- var getAssetBySymbolOrId = function getAssetBySymbolOrId(node, currency) {
7547
- var isRelayDestination = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7548
- var isSymbol = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
7549
- if (isTMulti(currency)) {
7550
- return null;
7551
- }
7552
- var currencyString = currency.toString();
7553
- var _getAssetsObject = getAssetsObject(node),
7554
- otherAssets = _getAssetsObject.otherAssets,
7555
- nativeAssets = _getAssetsObject.nativeAssets,
7556
- relayChainAssetSymbol = _getAssetsObject.relayChainAssetSymbol;
7557
- var combinedAssets = [].concat(_toConsumableArray(otherAssets), _toConsumableArray(nativeAssets));
7558
- var asset;
7559
- if (isSymbol === true) {
7560
- asset = findAssetBySymbol(otherAssets, nativeAssets, currencyString, isRelayDestination);
7561
- } else if (isSymbol === false) {
7562
- asset = findAssetById(combinedAssets, currencyString);
7563
- } else {
7564
- asset = findAssetBySymbol(otherAssets, nativeAssets, currencyString, isRelayDestination) || findAssetById(combinedAssets, currencyString);
7565
- }
7566
- if (asset) {
7567
- return {
7568
- symbol: asset.symbol,
7569
- assetId: asset.assetId
7570
- };
7571
- }
7572
- if (relayChainAssetSymbol === currencyString && isSymbol !== false) {
7573
- return {
7574
- symbol: relayChainAssetSymbol
7575
- };
7576
- }
7577
- return null;
7637
+ var getSupportedPallets = function getSupportedPallets(node) {
7638
+ return palletsMap$1[node].supportedPallets;
7578
7639
  };
7579
7640
 
7580
7641
  var getBalanceForeignXTokens = function getBalanceForeignXTokens(address, symbolOrId, symbol, id, api) {
@@ -7591,10 +7652,9 @@ var getBalanceForeignXTokens = function getBalanceForeignXTokens(address, symbol
7591
7652
  var _ref2 = _slicedToArray(_ref, 2),
7592
7653
  _ref2$0$args = _slicedToArray(_ref2[0].args, 2);
7593
7654
  _ref2$0$args[0];
7594
- var asset = _ref2$0$args[1],
7595
- value1 = _ref2[1];
7655
+ var asset = _ref2$0$args[1];
7656
+ _ref2[1];
7596
7657
  var _a, _b, _c;
7597
- console.log(asset.toHuman(), value1.toHuman());
7598
7658
  return asset.toString() === symbolOrId || asset.toString() === id || asset.toString() === symbol || Object.values((_a = asset.toHuman()) !== null && _a !== void 0 ? _a : {}).toString() === symbolOrId || Object.values((_b = asset.toHuman()) !== null && _b !== void 0 ? _b : {}).toString() === id || Object.values((_c = asset.toHuman()) !== null && _c !== void 0 ? _c : {}).toString() === symbol;
7599
7659
  });
7600
7660
  return _context.abrupt("return", entry ? BigInt(entry[1].free.toString()) : null);
@@ -7605,30 +7665,102 @@ var getBalanceForeignXTokens = function getBalanceForeignXTokens(address, symbol
7605
7665
  }, _callee);
7606
7666
  }));
7607
7667
  };
7608
- var getBalanceForeignPolkadotXcm = function getBalanceForeignPolkadotXcm(address, id, api) {
7668
+ var getAssetHubMultiLocation = function getAssetHubMultiLocation(symbol) {
7669
+ if (symbol === 'MYTH') {
7670
+ return {
7671
+ parents: 1,
7672
+ interior: {
7673
+ X1: {
7674
+ Parachain: '3369'
7675
+ }
7676
+ }
7677
+ };
7678
+ } else if (symbol === 'KSM') {
7679
+ return {
7680
+ parents: 2,
7681
+ interior: {
7682
+ X1: {
7683
+ GlobalConsensus: 'Kusama'
7684
+ }
7685
+ }
7686
+ };
7687
+ }
7688
+ var ethAssets = getOtherAssets('Ethereum');
7689
+ var ethAsset = ethAssets.find(function (asset) {
7690
+ return asset.symbol === symbol;
7691
+ });
7692
+ if (ethAsset) {
7693
+ return {
7694
+ parents: 2,
7695
+ interior: {
7696
+ X2: [{
7697
+ GlobalConsensus: {
7698
+ Ethereum: {
7699
+ chainId: 1
7700
+ }
7701
+ }
7702
+ }, {
7703
+ AccountKey20: {
7704
+ network: null,
7705
+ key: ethAsset.assetId
7706
+ }
7707
+ }]
7708
+ }
7709
+ };
7710
+ }
7711
+ return null;
7712
+ };
7713
+ var getBalanceForeignPolkadotXcm = function getBalanceForeignPolkadotXcm(address, id, api, node, symbol) {
7609
7714
  return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
7610
- var parsedId, response, obj;
7715
+ var _response, _obj, multiLocation, _response2, _obj2, parsedId, response, obj;
7611
7716
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
7612
7717
  while (1) switch (_context2.prev = _context2.next) {
7613
7718
  case 0:
7614
7719
  _context2.prev = 0;
7615
- parsedId = new types.u32(api.registry, id);
7720
+ if (!(node === 'Mythos')) {
7721
+ _context2.next = 7;
7722
+ break;
7723
+ }
7616
7724
  _context2.next = 4;
7617
- return api.query.assets.account(parsedId, address);
7725
+ return api.query.balances.account(address);
7618
7726
  case 4:
7727
+ _response = _context2.sent;
7728
+ _obj = _response.toJSON();
7729
+ return _context2.abrupt("return", BigInt(_obj.free));
7730
+ case 7:
7731
+ if (!(node === 'AssetHubPolkadot')) {
7732
+ _context2.next = 15;
7733
+ break;
7734
+ }
7735
+ multiLocation = getAssetHubMultiLocation(symbol !== null && symbol !== void 0 ? symbol : id);
7736
+ if (!multiLocation) {
7737
+ _context2.next = 15;
7738
+ break;
7739
+ }
7740
+ _context2.next = 12;
7741
+ return api.query.foreignAssets.account(multiLocation, address);
7742
+ case 12:
7743
+ _response2 = _context2.sent;
7744
+ _obj2 = _response2.toJSON();
7745
+ return _context2.abrupt("return", BigInt(_obj2 === null ? 0 : _obj2.balance));
7746
+ case 15:
7747
+ parsedId = new types.u32(api.registry, id);
7748
+ _context2.next = 18;
7749
+ return api.query.assets.account(parsedId, address);
7750
+ case 18:
7619
7751
  response = _context2.sent;
7620
7752
  obj = response.toJSON();
7621
7753
  return _context2.abrupt("return", BigInt(obj.balance));
7622
- case 9:
7623
- _context2.prev = 9;
7754
+ case 23:
7755
+ _context2.prev = 23;
7624
7756
  _context2.t0 = _context2["catch"](0);
7625
7757
  console.log('Error while fetching balance', _context2.t0);
7626
7758
  return _context2.abrupt("return", null);
7627
- case 13:
7759
+ case 27:
7628
7760
  case "end":
7629
7761
  return _context2.stop();
7630
7762
  }
7631
- }, _callee2, null, [[0, 9]]);
7763
+ }, _callee2, null, [[0, 23]]);
7632
7764
  }));
7633
7765
  };
7634
7766
  var getBalanceForeign = function getBalanceForeign(address, node, symbolOrId, api) {
@@ -7666,7 +7798,7 @@ var getBalanceForeign = function getBalanceForeign(address, node, symbolOrId, ap
7666
7798
  break;
7667
7799
  }
7668
7800
  _context3.next = 18;
7669
- return getBalanceForeignPolkadotXcm(address, (_a = asset === null || asset === void 0 ? void 0 : asset.assetId) !== null && _a !== void 0 ? _a : symbolOrId, apiWithFallback);
7801
+ return getBalanceForeignPolkadotXcm(address, (_a = asset === null || asset === void 0 ? void 0 : asset.assetId) !== null && _a !== void 0 ? _a : symbolOrId, apiWithFallback, node, asset === null || asset === void 0 ? void 0 : asset.symbol);
7670
7802
  case 18:
7671
7803
  return _context3.abrupt("return", _context3.sent);
7672
7804
  case 19:
@@ -8867,7 +8999,7 @@ var getAssetSymbol = function getAssetSymbol(node, assetId) {
8867
8999
  if (node === 'Polkadot' || node === 'Kusama') {
8868
9000
  return getNativeAssetSymbol(node);
8869
9001
  }
8870
- var asset = getAssetBySymbolOrId(node, assetId);
9002
+ var asset = getAssetBySymbolOrId(node, assetId, false, true);
8871
9003
  return asset === null || asset === void 0 ? void 0 : asset.symbol;
8872
9004
  };
8873
9005
  var getAssetBalance = function getAssetBalance(account, node, assetSymbolOrId) {
@@ -9013,6 +9145,7 @@ var index$1 = /*#__PURE__*/Object.freeze({
9013
9145
  getAllAssetsSymbols: getAllAssetsSymbols,
9014
9146
  getAssetDecimals: getAssetDecimals,
9015
9147
  getAssetId: getAssetId,
9148
+ getAssets: getAssets,
9016
9149
  getAssetsObject: getAssetsObject,
9017
9150
  getBalanceForeign: getBalanceForeign,
9018
9151
  getBalanceNative: getBalanceNative,
@@ -9021,6 +9154,7 @@ var index$1 = /*#__PURE__*/Object.freeze({
9021
9154
  getOtherAssets: getOtherAssets,
9022
9155
  getParaId: getParaId,
9023
9156
  getRelayChainSymbol: getRelayChainSymbol,
9157
+ getSupportedAssets: getSupportedAssets,
9024
9158
  getTNode: getTNode,
9025
9159
  getTransferInfo: getTransferInfo,
9026
9160
  hasSupportForAsset: hasSupportForAsset
@@ -9186,6 +9320,11 @@ var ParachainNode = /*#__PURE__*/function () {
9186
9320
  value: function createPolkadotXcmHeader$1(scenario, version, destination, paraId) {
9187
9321
  return createPolkadotXcmHeader(scenario, version, destination, paraId);
9188
9322
  }
9323
+ }, {
9324
+ key: "getNativeAssetSymbol",
9325
+ value: function getNativeAssetSymbol$1() {
9326
+ return getNativeAssetSymbol(this.node);
9327
+ }
9189
9328
  }]);
9190
9329
  }();
9191
9330
 
@@ -9224,7 +9363,9 @@ var getCurrencySelection = function getCurrencySelection(_ref2, isAssetHub, curr
9224
9363
  }
9225
9364
  return currencySelection;
9226
9365
  };
9227
- var getParameters = function getParameters(isAssetHub, currencySelection, addressSelection, amount, fees, feeAsset) {
9366
+ var getParameters = function getParameters(isAssetHub, currencySelection, addressSelection, amount, fees, feeAsset
9367
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9368
+ ) {
9228
9369
  if (isAssetHub) {
9229
9370
  return feeAsset !== undefined ? [currencySelection, feeAsset, addressSelection, fees] : [currencySelection, addressSelection, fees];
9230
9371
  }
@@ -9304,9 +9445,11 @@ var Unique = /*#__PURE__*/function (_ParachainNode) {
9304
9445
  return _createClass(Unique, [{
9305
9446
  key: "transferXTokens",
9306
9447
  value: function transferXTokens(input) {
9307
- return XTokensTransferImpl.transferXTokens(input, {
9308
- ForeignAssetId: input.currencyID
9309
- });
9448
+ var currencyID = input.currencyID;
9449
+ var currencySelection = {
9450
+ ForeignAssetId: currencyID
9451
+ };
9452
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
9310
9453
  }
9311
9454
  }]);
9312
9455
  }(ParachainNode);
@@ -9322,7 +9465,7 @@ var Crust = /*#__PURE__*/function (_ParachainNode) {
9322
9465
  value: function getCurrencySelection(_ref) {
9323
9466
  var currency = _ref.currency,
9324
9467
  currencyID = _ref.currencyID;
9325
- if (currency === 'CRU') {
9468
+ if (currency === this.getNativeAssetSymbol()) {
9326
9469
  return 'SelfReserve';
9327
9470
  }
9328
9471
  if (currencyID === undefined) {
@@ -9349,7 +9492,7 @@ var BifrostPolkadot = /*#__PURE__*/function (_ParachainNode) {
9349
9492
  return _createClass(BifrostPolkadot, [{
9350
9493
  key: "transferXTokens",
9351
9494
  value: function transferXTokens(input) {
9352
- var currencySelection = _defineProperty({}, input.currency === 'BNC' ? 'Native' : 'Token', input.currency);
9495
+ var currencySelection = _defineProperty({}, input.currency === this.getNativeAssetSymbol() ? 'Native' : 'Token', input.currency);
9353
9496
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
9354
9497
  }
9355
9498
  }]);
@@ -9375,7 +9518,7 @@ var Centrifuge = /*#__PURE__*/function (_ParachainNode) {
9375
9518
  value: function transferXTokens(input) {
9376
9519
  var currency = input.currency,
9377
9520
  currencyID = input.currencyID;
9378
- var currencySelection = currency === 'CFG' ? 'Native' : {
9521
+ var currencySelection = currency === this.getNativeAssetSymbol() ? 'Native' : {
9379
9522
  ForeignAsset: currencyID
9380
9523
  };
9381
9524
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
@@ -9443,7 +9586,8 @@ var Litentry = /*#__PURE__*/function (_ParachainNode) {
9443
9586
  return _createClass(Litentry, [{
9444
9587
  key: "transferXTokens",
9445
9588
  value: function transferXTokens(input) {
9446
- return XTokensTransferImpl.transferXTokens(input, 'SelfReserve');
9589
+ var currencySelection = 'SelfReserve';
9590
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
9447
9591
  }
9448
9592
  }]);
9449
9593
  }(ParachainNode);
@@ -9459,7 +9603,7 @@ var Moonbeam = /*#__PURE__*/function (_ParachainNode) {
9459
9603
  value: function transferXTokens(input) {
9460
9604
  var currency = input.currency,
9461
9605
  currencyID = input.currencyID;
9462
- var currencySelection = currency === 'GLMR' ? 'SelfReserve' : {
9606
+ var currencySelection = currency === this.getNativeAssetSymbol() ? 'SelfReserve' : {
9463
9607
  ForeignAsset: currencyID
9464
9608
  };
9465
9609
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
@@ -9492,7 +9636,8 @@ var Parallel = /*#__PURE__*/function (_ParachainNode) {
9492
9636
  return _createClass(Parallel, [{
9493
9637
  key: "transferXTokens",
9494
9638
  value: function transferXTokens(input) {
9495
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
9639
+ var currencyID = input.currencyID;
9640
+ return XTokensTransferImpl.transferXTokens(input, currencyID);
9496
9641
  }
9497
9642
  }]);
9498
9643
  }(ParachainNode);
@@ -9506,18 +9651,12 @@ var Altair = /*#__PURE__*/function (_ParachainNode) {
9506
9651
  return _createClass(Altair, [{
9507
9652
  key: "transferXTokens",
9508
9653
  value: function transferXTokens(input) {
9509
- var currencySelection = Altair.getCurrencySelection(input);
9510
- return XTokensTransferImpl.transferXTokens(input, currencySelection);
9511
- }
9512
- }], [{
9513
- key: "getCurrencySelection",
9514
- value: function getCurrencySelection(_ref) {
9515
- var currency = _ref.currency,
9516
- currencyID = _ref.currencyID;
9517
- if (currency === 'AIR') return 'Native';
9518
- return {
9654
+ var currency = input.currency,
9655
+ currencyID = input.currencyID;
9656
+ var currencySelection = currency === this.getNativeAssetSymbol() ? 'Native' : {
9519
9657
  ForeignAsset: currencyID
9520
9658
  };
9659
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
9521
9660
  }
9522
9661
  }]);
9523
9662
  }(ParachainNode);
@@ -9531,9 +9670,11 @@ var Amplitude = /*#__PURE__*/function (_ParachainNode) {
9531
9670
  return _createClass(Amplitude, [{
9532
9671
  key: "transferXTokens",
9533
9672
  value: function transferXTokens(input) {
9534
- return XTokensTransferImpl.transferXTokens(input, {
9535
- XCM: input.currencyID
9536
- });
9673
+ var currencyID = input.currencyID;
9674
+ var currencySelection = {
9675
+ XCM: currencyID
9676
+ };
9677
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
9537
9678
  }
9538
9679
  }]);
9539
9680
  }(ParachainNode);
@@ -9552,7 +9693,7 @@ var Bajun = /*#__PURE__*/function (_ParachainNode) {
9552
9693
  if (scenario !== 'ParaToPara') {
9553
9694
  throw new ScenarioNotSupportedError(this.node, scenario);
9554
9695
  }
9555
- var nativeSymbol = getNativeAssetSymbol(this.node);
9696
+ var nativeSymbol = this.getNativeAssetSymbol();
9556
9697
  if (currency !== nativeSymbol) {
9557
9698
  throw new InvalidCurrencyError("Node ".concat(this.node, " does not support currency ").concat(currency));
9558
9699
  }
@@ -9590,7 +9731,7 @@ var BifrostKusama = /*#__PURE__*/function (_ParachainNode) {
9590
9731
  return _createClass(BifrostKusama, [{
9591
9732
  key: "transferXTokens",
9592
9733
  value: function transferXTokens(input) {
9593
- var currencySelection = _defineProperty({}, input.currency === 'BNC' ? 'Native' : 'Token', input.currency);
9734
+ var currencySelection = _defineProperty({}, input.currency === this.getNativeAssetSymbol() ? 'Native' : 'Token', input.currency);
9594
9735
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
9595
9736
  }
9596
9737
  }]);
@@ -9606,7 +9747,9 @@ var Pioneer = /*#__PURE__*/function (_ParachainNode) {
9606
9747
  key: "transferXTokens",
9607
9748
  value: function transferXTokens(input) {
9608
9749
  // Multiple asset options needs addressing
9609
- return XTokensTransferImpl.transferXTokens(input, 'NativeToken', input.fees);
9750
+ var fees = input.fees;
9751
+ var currencySelection = 'NativeToken';
9752
+ return XTokensTransferImpl.transferXTokens(input, currencySelection, fees);
9610
9753
  }
9611
9754
  }]);
9612
9755
  }(ParachainNode);
@@ -9635,7 +9778,8 @@ var Picasso = /*#__PURE__*/function (_ParachainNode) {
9635
9778
  return _createClass(Picasso, [{
9636
9779
  key: "transferXTokens",
9637
9780
  value: function transferXTokens(input) {
9638
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
9781
+ var currencyID = input.currencyID;
9782
+ return XTokensTransferImpl.transferXTokens(input, currencyID);
9639
9783
  }
9640
9784
  }]);
9641
9785
  }(ParachainNode);
@@ -9649,7 +9793,7 @@ var ParallelHeiko = /*#__PURE__*/function (_ParachainNode) {
9649
9793
  return _createClass(ParallelHeiko, [{
9650
9794
  key: "transferXTokens",
9651
9795
  value: function transferXTokens(input) {
9652
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
9796
+ return getNode('Parallel').transferXTokens(input);
9653
9797
  }
9654
9798
  }]);
9655
9799
  }(ParachainNode);
@@ -9665,7 +9809,7 @@ var Moonriver = /*#__PURE__*/function (_ParachainNode) {
9665
9809
  value: function transferXTokens(input) {
9666
9810
  var currency = input.currency,
9667
9811
  currencyID = input.currencyID;
9668
- var currencySelection = currency === 'MOVR' ? 'SelfReserve' : {
9812
+ var currencySelection = currency === this.getNativeAssetSymbol() ? 'SelfReserve' : {
9669
9813
  ForeignAsset: currencyID
9670
9814
  };
9671
9815
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
@@ -9694,7 +9838,7 @@ var Litmus = /*#__PURE__*/function (_ParachainNode) {
9694
9838
  key: "transferXTokens",
9695
9839
  value: function transferXTokens(input) {
9696
9840
  // Multiple asset options needs addressing
9697
- return XTokensTransferImpl.transferXTokens(input, 'SelfReserve');
9841
+ return getNode('Litentry').transferXTokens(input);
9698
9842
  }
9699
9843
  }]);
9700
9844
  }(ParachainNode);
@@ -9731,9 +9875,10 @@ var Calamari = /*#__PURE__*/function (_ParachainNode) {
9731
9875
  value: function transferXTokens(input) {
9732
9876
  // Currently only option for XCM transfer
9733
9877
  var currencyID = input.currencyID;
9734
- return XTokensTransferImpl.transferXTokens(input, {
9878
+ var currencySelection = {
9735
9879
  MantaCurrency: currencyID
9736
- });
9880
+ };
9881
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
9737
9882
  }
9738
9883
  }]);
9739
9884
  }(ParachainNode);
@@ -9749,7 +9894,7 @@ var CrustShadow = /*#__PURE__*/function (_ParachainNode) {
9749
9894
  value: function getCurrencySelection(_ref) {
9750
9895
  var currency = _ref.currency,
9751
9896
  currencyID = _ref.currencyID;
9752
- if (currency === 'CSM') {
9897
+ if (currency === this.getNativeAssetSymbol()) {
9753
9898
  return 'SelfReserve';
9754
9899
  }
9755
9900
  if (currencyID === undefined) {
@@ -9826,14 +9971,7 @@ var Karura = /*#__PURE__*/function (_ParachainNode) {
9826
9971
  return _createClass(Karura, [{
9827
9972
  key: "transferXTokens",
9828
9973
  value: function transferXTokens(input) {
9829
- var currency = input.currency,
9830
- currencyID = input.currencyID;
9831
- var currencySelection = currencyID !== undefined ? {
9832
- ForeignAsset: currencyID
9833
- } : {
9834
- Token: currency
9835
- };
9836
- return XTokensTransferImpl.transferXTokens(input, currencySelection);
9974
+ return getNode('Acala').transferXTokens(input);
9837
9975
  }
9838
9976
  }, {
9839
9977
  key: "getProvider",
@@ -10152,13 +10290,15 @@ var Astar = /*#__PURE__*/function (_ParachainNode) {
10152
10290
  }, {
10153
10291
  key: "transferXTokens",
10154
10292
  value: function transferXTokens(input) {
10155
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
10293
+ var currencyID = input.currencyID;
10294
+ return XTokensTransferImpl.transferXTokens(input, currencyID);
10156
10295
  }
10157
10296
  }, {
10158
10297
  key: "canUseXTokens",
10159
10298
  value: function canUseXTokens(_ref) {
10160
- var currencySymbol = _ref.currencySymbol;
10161
- return currencySymbol !== 'ASTR';
10299
+ var currencySymbol = _ref.currencySymbol,
10300
+ currencyId = _ref.currencyId;
10301
+ return currencySymbol !== this.getNativeAssetSymbol() || !!currencyId;
10162
10302
  }
10163
10303
  }]);
10164
10304
  }(ParachainNode);
@@ -10172,9 +10312,11 @@ var Darwinia = /*#__PURE__*/function (_ParachainNode) {
10172
10312
  return _createClass(Darwinia, [{
10173
10313
  key: "transferXTokens",
10174
10314
  value: function transferXTokens(input) {
10175
- return XTokensTransferImpl.transferXTokens(input, input.currency === 'RING' ? 'SelfReserve' : {
10176
- ForeignAsset: input.currencyID
10177
- });
10315
+ var currencyID = input.currencyID;
10316
+ var currencySelection = input.currency === this.getNativeAssetSymbol() ? 'SelfReserve' : {
10317
+ ForeignAsset: currencyID
10318
+ };
10319
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
10178
10320
  }
10179
10321
  }, {
10180
10322
  key: "transferRelayToPara",
@@ -10238,10 +10380,7 @@ var Quartz = /*#__PURE__*/function (_ParachainNode) {
10238
10380
  return _createClass(Quartz, [{
10239
10381
  key: "transferXTokens",
10240
10382
  value: function transferXTokens(input) {
10241
- var currencyID = input.currencyID;
10242
- return XTokensTransferImpl.transferXTokens(input, {
10243
- ForeignAssetId: currencyID
10244
- });
10383
+ return getNode('Unique').transferXTokens(input);
10245
10384
  }
10246
10385
  }]);
10247
10386
  }(ParachainNode);
@@ -10257,19 +10396,19 @@ var Shiden = /*#__PURE__*/function (_ParachainNode) {
10257
10396
  value: function transferPolkadotXCM(input) {
10258
10397
  // Same as Astar, works
10259
10398
  // https://shiden.subscan.io/xcm_message/kusama-97eb47c25c781affa557f36dbd117d49f7e1ab4e
10260
- var method = input.scenario === 'ParaToPara' ? 'reserveTransferAssets' : 'reserveWithdrawAssets';
10261
- return PolkadotXCMTransferImpl.transferPolkadotXCM(input, method);
10399
+ return getNode('Astar').transferPolkadotXCM(input);
10262
10400
  }
10263
10401
  }, {
10264
10402
  key: "transferXTokens",
10265
10403
  value: function transferXTokens(input) {
10266
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
10404
+ return getNode('Astar').transferXTokens(input);
10267
10405
  }
10268
10406
  }, {
10269
10407
  key: "canUseXTokens",
10270
10408
  value: function canUseXTokens(_ref) {
10271
- var currencySymbol = _ref.currencySymbol;
10272
- return currencySymbol !== 'SDN';
10409
+ var currencySymbol = _ref.currencySymbol,
10410
+ currencyId = _ref.currencyId;
10411
+ return currencySymbol !== this.getNativeAssetSymbol() || !!currencyId;
10273
10412
  }
10274
10413
  }]);
10275
10414
  }(ParachainNode);
@@ -10283,9 +10422,11 @@ var Manta = /*#__PURE__*/function (_ParachainNode) {
10283
10422
  return _createClass(Manta, [{
10284
10423
  key: "transferXTokens",
10285
10424
  value: function transferXTokens(input) {
10286
- return XTokensTransferImpl.transferXTokens(input, {
10287
- MantaCurrency: input.currencyID
10288
- });
10425
+ var currencyID = input.currencyID;
10426
+ var currencySelection = {
10427
+ MantaCurrency: currencyID
10428
+ };
10429
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
10289
10430
  }
10290
10431
  }]);
10291
10432
  }(ParachainNode);
@@ -10302,10 +10443,11 @@ var Nodle = /*#__PURE__*/function (_ParachainNode) {
10302
10443
  if (input.scenario !== 'ParaToPara') {
10303
10444
  throw new ScenarioNotSupportedError(this.node, input.scenario);
10304
10445
  }
10305
- if (input.currency !== 'NODL') {
10446
+ if (input.currency !== this.getNativeAssetSymbol()) {
10306
10447
  throw new InvalidCurrencyError("Asset ".concat(input.currency, " is not supported by node ").concat(this.node, "."));
10307
10448
  }
10308
- return XTokensTransferImpl.transferXTokens(input, 'NodleNative');
10449
+ var currencySelection = 'NodleNative';
10450
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
10309
10451
  }
10310
10452
  }, {
10311
10453
  key: "transferRelayToPara",
@@ -10341,12 +10483,13 @@ var Pendulum = /*#__PURE__*/function (_ParachainNode) {
10341
10483
  if (input.scenario !== 'ParaToPara') {
10342
10484
  throw new ScenarioNotSupportedError(this.node, input.scenario);
10343
10485
  }
10344
- if (input.currency !== 'PEN') {
10486
+ if (input.currency !== this.getNativeAssetSymbol()) {
10345
10487
  throw new InvalidCurrencyError("Asset ".concat(input.currency, " is not supported by node ").concat(this.node, "."));
10346
10488
  }
10347
- return XTokensTransferImpl.transferXTokens(input, {
10489
+ var currencySelection = {
10348
10490
  XCM: input.currencyID
10349
- });
10491
+ };
10492
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
10350
10493
  }
10351
10494
  }, {
10352
10495
  key: "transferRelayToPara",
@@ -10365,7 +10508,8 @@ var Polkadex = /*#__PURE__*/function (_ParachainNode) {
10365
10508
  return _createClass(Polkadex, [{
10366
10509
  key: "transferXTokens",
10367
10510
  value: function transferXTokens(input) {
10368
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
10511
+ var currencyID = input.currencyID;
10512
+ return XTokensTransferImpl.transferXTokens(input, currencyID);
10369
10513
  }
10370
10514
  }, {
10371
10515
  key: "getProvider",
@@ -10384,7 +10528,7 @@ var Zeitgeist = /*#__PURE__*/function (_ParachainNode) {
10384
10528
  return _createClass(Zeitgeist, [{
10385
10529
  key: "transferXTokens",
10386
10530
  value: function transferXTokens(input) {
10387
- var currencySelection = input.currency === 'ZTG' ? 'Ztg' : {
10531
+ var currencySelection = input.currency === this.getNativeAssetSymbol() ? 'Ztg' : {
10388
10532
  ForeignAsset: input.currencyID
10389
10533
  };
10390
10534
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
@@ -10531,7 +10675,7 @@ var Phala = /*#__PURE__*/function (_ParachainNode) {
10531
10675
  key: "transferXTransfer",
10532
10676
  value: function transferXTransfer(input) {
10533
10677
  var currency = input.currency;
10534
- if (currency !== 'PHA') {
10678
+ if (currency !== this.getNativeAssetSymbol()) {
10535
10679
  throw new InvalidCurrencyError("Node ".concat(this.node, " does not support currency ").concat(currency));
10536
10680
  }
10537
10681
  return XTransferTransferImpl.transferXTransfer(input);
@@ -10684,15 +10828,16 @@ var Mythos = /*#__PURE__*/function (_ParachainNode) {
10684
10828
  key: "transferPolkadotXCM",
10685
10829
  value: function transferPolkadotXCM(input) {
10686
10830
  var scenario = input.scenario,
10687
- currencySymbol = input.currencySymbol;
10831
+ currencySymbol = input.currencySymbol,
10832
+ destination = input.destination;
10688
10833
  if (scenario !== 'ParaToPara') {
10689
10834
  throw new ScenarioNotSupportedError(this.node, scenario);
10690
10835
  }
10691
- var nativeSymbol = getNativeAssetSymbol(this.node);
10836
+ var nativeSymbol = this.getNativeAssetSymbol();
10692
10837
  if (currencySymbol !== nativeSymbol) {
10693
10838
  throw new InvalidCurrencyError("Node ".concat(this.node, " does not support currency ").concat(currencySymbol));
10694
10839
  }
10695
- return PolkadotXCMTransferImpl.transferPolkadotXCM(input, 'limitedReserveTransferAssets', 'Unlimited');
10840
+ return PolkadotXCMTransferImpl.transferPolkadotXCM(input, destination === 'AssetHubPolkadot' ? 'limitedTeleportAssets' : 'limitedReserveTransferAssets', 'Unlimited');
10696
10841
  }
10697
10842
  }, {
10698
10843
  key: "transferRelayToPara",
@@ -11253,85 +11398,91 @@ var sendCommon = function sendCommon(options) {
11253
11398
  }
11254
11399
  throw new InvalidCurrencyError('Fee asset index is out of bounds. Please provide a valid index.');
11255
11400
  case 17:
11401
+ if (!(destination === 'Ethereum' && origin !== 'AssetHubPolkadot')) {
11402
+ _context.next = 19;
11403
+ break;
11404
+ }
11405
+ throw new IncompatibleNodesError('Transfers to Ethereum are only supported from AssetHubPolkadot.');
11406
+ case 19:
11256
11407
  isMultiLocationDestination = _typeof(destination) === 'object';
11257
11408
  isMultiLocationCurrency = _typeof(currency) === 'object';
11258
- isBridge = origin === 'AssetHubPolkadot' && destination === 'AssetHubKusama' || origin === 'AssetHubKusama' && destination === 'AssetHubPolkadot' || destination === 'Ethereum';
11409
+ isBridge = origin === 'AssetHubPolkadot' && destination === 'AssetHubKusama' || origin === 'AssetHubKusama' && destination === 'AssetHubPolkadot';
11259
11410
  isRelayDestination = destination === undefined;
11260
11411
  if (!(!isRelayDestination && !isMultiLocationDestination)) {
11261
- _context.next = 26;
11412
+ _context.next = 28;
11262
11413
  break;
11263
11414
  }
11264
11415
  originRelayChainSymbol = getRelayChainSymbol(origin);
11265
11416
  destinationRelayChainSymbol = getRelayChainSymbol(destination);
11266
11417
  if (!(!isBridge && originRelayChainSymbol !== destinationRelayChainSymbol)) {
11267
- _context.next = 26;
11418
+ _context.next = 28;
11268
11419
  break;
11269
11420
  }
11270
11421
  throw new IncompatibleNodesError();
11271
- case 26:
11422
+ case 28:
11272
11423
  originNode = getNode(origin);
11273
11424
  assetCheckEnabled = isMultiLocationCurrency || isBridge ? false : originNode.assetCheckEnabled;
11274
- asset = assetCheckEnabled ? getAssetBySymbolOrId(origin, currency, isRelayDestination, isSymbol) : null;
11425
+ asset = assetCheckEnabled ? getAssetBySymbolOrId(origin, currency, isRelayDestination, isSymbol, isTMultiLocation(destination) ? undefined : destination) : null;
11275
11426
  if (!(!isBridge && asset === null && assetCheckEnabled)) {
11276
- _context.next = 31;
11427
+ _context.next = 33;
11277
11428
  break;
11278
11429
  }
11279
11430
  throw new InvalidCurrencyError("Origin node ".concat(origin, " does not support currency or currencyId ").concat(JSON.stringify(currency), "."));
11280
- case 31:
11431
+ case 33:
11281
11432
  if (!(!isBridge && !isRelayDestination && !isMultiLocationDestination && (asset === null || asset === void 0 ? void 0 : asset.symbol) !== undefined && assetCheckEnabled && isSymbol !== false && asset.assetId !== currency && !hasSupportForAsset(destination, asset.symbol))) {
11282
- _context.next = 33;
11433
+ _context.next = 35;
11283
11434
  break;
11284
11435
  }
11285
11436
  throw new InvalidCurrencyError("Destination node ".concat(destination, " does not support currency or currencyId ").concat(JSON.stringify(currency), "."));
11286
- case 33:
11437
+ case 35:
11287
11438
  if (!(api !== null && api !== void 0)) {
11288
- _context.next = 37;
11439
+ _context.next = 39;
11289
11440
  break;
11290
11441
  }
11291
11442
  _context.t0 = api;
11292
- _context.next = 40;
11443
+ _context.next = 42;
11293
11444
  break;
11294
- case 37:
11295
- _context.next = 39;
11296
- return createApiInstanceForNode(origin);
11297
11445
  case 39:
11446
+ _context.next = 41;
11447
+ return createApiInstanceForNode(origin);
11448
+ case 41:
11298
11449
  _context.t0 = _context.sent;
11299
- case 40:
11450
+ case 42:
11300
11451
  apiWithFallback = _context.t0;
11301
11452
  amountStr = amount === null || amount === void 0 ? void 0 : amount.toString();
11302
11453
  if (!isTMulti(currency)) {
11303
- _context.next = 46;
11454
+ _context.next = 48;
11304
11455
  break;
11305
11456
  }
11306
11457
  console.warn('Keep alive check is not supported when using MultiLocation as currency.');
11307
- _context.next = 60;
11458
+ _context.next = 62;
11308
11459
  break;
11309
- case 46:
11460
+ case 48:
11310
11461
  if (!(_typeof(address) === 'object')) {
11311
- _context.next = 50;
11462
+ _context.next = 52;
11312
11463
  break;
11313
11464
  }
11314
11465
  console.warn('Keep alive check is not supported when using MultiLocation as address.');
11315
- _context.next = 60;
11466
+ _context.next = 62;
11316
11467
  break;
11317
- case 50:
11468
+ case 52:
11318
11469
  if (!(_typeof(destination) === 'object')) {
11319
- _context.next = 54;
11470
+ _context.next = 56;
11320
11471
  break;
11321
11472
  }
11322
11473
  console.warn('Keep alive check is not supported when using MultiLocation as destination.');
11323
- _context.next = 60;
11474
+ _context.next = 62;
11324
11475
  break;
11325
- case 54:
11476
+ case 56:
11326
11477
  if (!(origin === 'Ethereum' || destination === 'Ethereum')) {
11327
- _context.next = 58;
11478
+ _context.next = 60;
11328
11479
  break;
11329
11480
  }
11330
11481
  console.warn('Keep alive check is not supported when using Ethereum as origin or destination.');
11331
- _context.next = 60;
11482
+ _context.next = 62;
11332
11483
  break;
11333
- case 58:
11334
- _context.next = 60;
11484
+ case 60:
11485
+ _context.next = 62;
11335
11486
  return checkKeepAlive({
11336
11487
  originApi: apiWithFallback,
11337
11488
  address: address,
@@ -11341,7 +11492,7 @@ var sendCommon = function sendCommon(options) {
11341
11492
  currencySymbol: (_a = asset === null || asset === void 0 ? void 0 : asset.symbol) !== null && _a !== void 0 ? _a : currency.toString(),
11342
11493
  destNode: destination
11343
11494
  });
11344
- case 60:
11495
+ case 62:
11345
11496
  currencyStr = isTMulti(currency) ? undefined : currency.toString();
11346
11497
  return _context.abrupt("return", originNode.transfer({
11347
11498
  api: apiWithFallback,
@@ -11356,7 +11507,7 @@ var sendCommon = function sendCommon(options) {
11356
11507
  version: version,
11357
11508
  serializedApiCallEnabled: serializedApiCallEnabled
11358
11509
  }));
11359
- case 62:
11510
+ case 64:
11360
11511
  case "end":
11361
11512
  return _context.stop();
11362
11513
  }
@@ -11550,6 +11701,7 @@ exports.getAllAssetsSymbols = getAllAssetsSymbols;
11550
11701
  exports.getAllNodeProviders = getAllNodeProviders;
11551
11702
  exports.getAssetDecimals = getAssetDecimals;
11552
11703
  exports.getAssetId = getAssetId;
11704
+ exports.getAssets = getAssets;
11553
11705
  exports.getAssetsObject = getAssetsObject;
11554
11706
  exports.getBalanceForeign = getBalanceForeign;
11555
11707
  exports.getBalanceNative = getBalanceNative;
@@ -11563,6 +11715,7 @@ exports.getNodeProvider = getNodeProvider;
11563
11715
  exports.getOtherAssets = getOtherAssets;
11564
11716
  exports.getParaId = getParaId;
11565
11717
  exports.getRelayChainSymbol = getRelayChainSymbol;
11718
+ exports.getSupportedAssets = getSupportedAssets;
11566
11719
  exports.getSupportedPallets = getSupportedPallets;
11567
11720
  exports.getTNode = getTNode;
11568
11721
  exports.getTransferInfo = getTransferInfo;