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