@paraspell/sdk-core 11.12.13 → 11.12.15

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
@@ -3258,7 +3258,7 @@ var throwUnsupportedCurrency = function throwUnsupportedCurrency(currency, chain
3258
3258
  throw new assets.InvalidCurrencyError("".concat(isDestination ? 'Destination' : 'Origin', " chain ").concat(chain, " does not support currency ").concat(JSON.stringify(currency, sdkCommon.replaceBigInt), "."));
3259
3259
  };
3260
3260
 
3261
- var getAssetReserveChain = function getAssetReserveChain(chain, destChain, assetLocation) {
3261
+ var getAssetReserveChain = function getAssetReserveChain(chain, assetLocation) {
3262
3262
  var hasGlobalConsensusJunction = sdkCommon.hasJunction(assetLocation, 'GlobalConsensus');
3263
3263
  var paraId = sdkCommon.getJunctionValue(assetLocation, 'Parachain');
3264
3264
  if (paraId) {
@@ -3279,8 +3279,7 @@ var getAssetReserveChain = function getAssetReserveChain(chain, destChain, asset
3279
3279
  Here: null
3280
3280
  }
3281
3281
  })) {
3282
- if (relaychain === 'Paseo') return ahChain;
3283
- return CHAINS_DOT_RESERVE_AH.has(destChain) ? ahChain : relaychain;
3282
+ return ahChain;
3284
3283
  }
3285
3284
  return chain;
3286
3285
  };
@@ -3295,7 +3294,7 @@ var prepareExecuteContext = function prepareExecuteContext(_ref) {
3295
3294
  assertHasLocation(assetInfo);
3296
3295
  if (feeAssetInfo) assertHasLocation(feeAssetInfo);
3297
3296
  var amount = assetInfo.amount;
3298
- var reserveChain = getAssetReserveChain(chain, destChain, assetInfo.location);
3297
+ var reserveChain = getAssetReserveChain(chain, assetInfo.location);
3299
3298
  var asset = createAsset(version, amount, assetInfo.location);
3300
3299
  var assetLocalized = createAsset(version, amount, localizeLocation(chain, assetInfo.location));
3301
3300
  var assetLocalizedToDest = createAsset(version, amount, localizeLocation(destChain, assetInfo.location));
@@ -6390,7 +6389,7 @@ var Parachain = /*#__PURE__*/function () {
6390
6389
  key: "transfer",
6391
6390
  value: function () {
6392
6391
  var _transfer = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(sendOptions) {
6393
- var api, asset, currency, feeAsset, feeCurrency, address, destination, paraIdTo, overriddenAsset, version, senderAddress, ahAddress, pallet, method, scenario, paraId, destChain, isLocalTransfer, isRelayAsset, supportsTypeThen, isSubBridge, useTypeAndThen, isBifrostOrigin, isJamtonOrigin, isAssetHubDest, useMultiAssets, input, _asset$location2, options, shouldUseTeleport, isAhToOtherPara, isOtherParaToAh, isAllowedAhTransfer, isAHOrigin, isAHDest, isExternalAsset, isEthDest, isExternalAssetViaAh, isExternalAssetToAh, call, _t;
6392
+ var api, asset, currency, feeAsset, feeCurrency, address, destination, paraIdTo, overriddenAsset, version, senderAddress, ahAddress, pallet, method, scenario, paraId, destChain, isLocalTransfer, isRelayAsset, supportsTypeThen, isSubBridge, useTypeAndThen, isBifrostOrigin, isJamtonOrigin, isAssetHubDest, useMultiAssets, input, _asset$location2, options, shouldUseTeleport, isAhToOtherPara, isOtherParaToAh, isAllowedAhTransfer, isAHOrigin, isAHDest, isExternalAsset, isEthDest, isExternalAssetViaAh, isExternalAssetToAh, call;
6394
6393
  return _regenerator().w(function (_context) {
6395
6394
  while (1) switch (_context.n) {
6396
6395
  case 0:
@@ -6466,7 +6465,7 @@ var Parachain = /*#__PURE__*/function () {
6466
6465
  }));
6467
6466
  case 6:
6468
6467
  if (!(supportsPolkadotXCM(this) || useTypeAndThen)) {
6469
- _context.n = 15;
6468
+ _context.n = 12;
6470
6469
  break;
6471
6470
  }
6472
6471
  options = {
@@ -6478,7 +6477,7 @@ var Parachain = /*#__PURE__*/function () {
6478
6477
  version: version
6479
6478
  }),
6480
6479
  address: address,
6481
- asset: this.createCurrencySpec(asset.amount, scenario, version, asset, overriddenAsset !== undefined),
6480
+ asset: this.createAsset(asset, version),
6482
6481
  overriddenAsset: overriddenAsset,
6483
6482
  assetInfo: asset,
6484
6483
  currency: currency,
@@ -6519,7 +6518,7 @@ var Parachain = /*#__PURE__*/function () {
6519
6518
  isExternalAssetViaAh = isExternalAsset && !isAHOrigin && !isAHDest && !isEthDest && !feeAsset; // External asset - Any origin to AHP - DestinationReserve - one DepositAsset instruction
6520
6519
  isExternalAssetToAh = isExternalAsset && isAHDest && !isAHOrigin && !isEthDest && !feeAsset;
6521
6520
  if (!(isExternalAssetViaAh || isExternalAssetToAh || useTypeAndThen)) {
6522
- _context.n = 14;
6521
+ _context.n = 11;
6523
6522
  break;
6524
6523
  }
6525
6524
  if (!(useTypeAndThen && supportsPolkadotXCM(this) && !isSubBridge)) {
@@ -6529,33 +6528,20 @@ var Parachain = /*#__PURE__*/function () {
6529
6528
  _context.n = 9;
6530
6529
  return this.transferPolkadotXCM(options);
6531
6530
  case 9:
6532
- if (!isRelayAsset) {
6533
- _context.n = 11;
6534
- break;
6535
- }
6536
6531
  _context.n = 10;
6537
- return createTypeThenAutoReserve(this.chain, options);
6538
- case 10:
6539
- _t = _context.v;
6540
- _context.n = 13;
6541
- break;
6542
- case 11:
6543
- _context.n = 12;
6544
6532
  return createTypeAndThenCall(this.chain, options);
6545
- case 12:
6546
- _t = _context.v;
6547
- case 13:
6548
- call = _t;
6533
+ case 10:
6534
+ call = _context.v;
6549
6535
  return _context.a(2, api.callTxMethod(call));
6550
- case 14:
6536
+ case 11:
6551
6537
  if (!supportsPolkadotXCM(this)) {
6552
- _context.n = 15;
6538
+ _context.n = 12;
6553
6539
  break;
6554
6540
  }
6555
6541
  return _context.a(2, this.transferPolkadotXCM(options));
6556
- case 15:
6542
+ case 12:
6557
6543
  throw new NoXCMSupportImplementedError(this._chain);
6558
- case 16:
6544
+ case 13:
6559
6545
  return _context.a(2);
6560
6546
  }
6561
6547
  }, _callee, this);
@@ -6657,14 +6643,14 @@ var Parachain = /*#__PURE__*/function () {
6657
6643
  }
6658
6644
  throw new InvalidParameterError('Cannot override destination when using type and then transfer.');
6659
6645
  case 2:
6660
- return _context2.a(2, createTypeThenAutoReserve(getRelayChainOf(destChain), _objectSpread2(_objectSpread2({}, options), {}, {
6646
+ return _context2.a(2, createTypeAndThenCall(getRelayChainOf(destChain), _objectSpread2(_objectSpread2({}, options), {}, {
6661
6647
  beneficiaryLocation: createBeneficiaryLocation({
6662
6648
  api: api,
6663
6649
  address: address,
6664
6650
  version: version
6665
6651
  }),
6666
6652
  senderAddress: senderAddress,
6667
- asset: this.createCurrencySpec(assetInfo.amount, scenario, version, assetInfo, false),
6653
+ asset: this.createAsset(assetInfo, version),
6668
6654
  destLocation: createDestination(version, this.chain, destination, paraId),
6669
6655
  scenario: scenario,
6670
6656
  destChain: destChain,
@@ -6687,14 +6673,12 @@ var Parachain = /*#__PURE__*/function () {
6687
6673
  return transferRelayToPara;
6688
6674
  }()
6689
6675
  }, {
6690
- key: "createCurrencySpec",
6691
- value: function createCurrencySpec(amount, scenario, version, asset, _isOverridenAsset) {
6692
- var isRelayAsset = sdkCommon.deepEqual(asset === null || asset === void 0 ? void 0 : asset.location, RELAY_LOCATION);
6693
- var parents = scenario === 'ParaToRelay' || isRelayAsset && sdkCommon.isTrustedChain(this.chain) ? sdkCommon.Parents.ONE : sdkCommon.Parents.ZERO;
6694
- return createAsset(version, amount, {
6695
- parents: parents,
6696
- interior: 'Here'
6697
- });
6676
+ key: "createAsset",
6677
+ value: function createAsset$1(asset, version) {
6678
+ assertHasLocation(asset);
6679
+ var amount = asset.amount,
6680
+ location = asset.location;
6681
+ return createAsset(version, amount, localizeLocation(this.chain, location));
6698
6682
  }
6699
6683
  }, {
6700
6684
  key: "getNativeAssetSymbol",
@@ -7277,11 +7261,6 @@ var AssetHubKusama = /*#__PURE__*/function (_Parachain) {
7277
7261
  includeFee: true
7278
7262
  };
7279
7263
  }
7280
- }, {
7281
- key: "createCurrencySpec",
7282
- value: function createCurrencySpec(amount, scenario, version, asset, isOverridenAsset) {
7283
- return getChain('AssetHubPolkadot').createCurrencySpec(amount, scenario, version, asset, isOverridenAsset);
7284
- }
7285
7264
  }, {
7286
7265
  key: "transferLocalNonNativeAsset",
7287
7266
  value: function transferLocalNonNativeAsset(options) {
@@ -7564,25 +7543,6 @@ var AssetHubPolkadot = /*#__PURE__*/function (_Parachain) {
7564
7543
  includeFee: true
7565
7544
  };
7566
7545
  }
7567
- }, {
7568
- key: "createCurrencySpec",
7569
- value: function createCurrencySpec(amount, scenario, version, asset, isOverriddenAsset) {
7570
- if (scenario === 'ParaToPara') {
7571
- // If the asset has overridden location, provide default location
7572
- // as it will be replaced later
7573
- var location = isOverriddenAsset ? {
7574
- parents: sdkCommon.Parents.ZERO,
7575
- interior: 'Here'
7576
- } : asset === null || asset === void 0 ? void 0 : asset.location;
7577
- if (!location) {
7578
- throw new assets.InvalidCurrencyError('Asset does not have a location defined');
7579
- }
7580
- var transformedLocation = sdkCommon.hasJunction(location, 'Parachain', getParaId(this.chain)) ? localizeLocation(this.chain, location) : location;
7581
- return createAsset(version, amount, transformedLocation);
7582
- } else {
7583
- return _superPropGet(AssetHubPolkadot, "createCurrencySpec", this, 3)([amount, scenario, version, asset]);
7584
- }
7585
- }
7586
7546
  }, {
7587
7547
  key: "transferLocalNonNativeAsset",
7588
7548
  value: function transferLocalNonNativeAsset(options) {
@@ -7817,38 +7777,6 @@ var BifrostPolkadot = /*#__PURE__*/function (_Parachain) {
7817
7777
  var currencySelection = this.getCurrencySelection(asset);
7818
7778
  return transferXTokens(input, currencySelection);
7819
7779
  }
7820
- // Handles DOT, WETH transfers to AssetHubPolkadot
7821
- }, {
7822
- key: "transferToAssetHub",
7823
- value: function () {
7824
- var _transferToAssetHub = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(input) {
7825
- var api, assetInfo, _t;
7826
- return _regenerator().w(function (_context) {
7827
- while (1) switch (_context.n) {
7828
- case 0:
7829
- api = input.api, assetInfo = input.assetInfo;
7830
- if (!assets.isSymbolMatch(assetInfo.symbol, assets.getRelayChainSymbol(this.chain))) {
7831
- _context.n = 2;
7832
- break;
7833
- }
7834
- _t = api;
7835
- _context.n = 1;
7836
- return createTypeAndThenCall(this.chain, input);
7837
- case 1:
7838
- return _context.a(2, _t.callTxMethod.call(_t, _context.v));
7839
- case 2:
7840
- assertHasLocation(assetInfo);
7841
- return _context.a(2, transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
7842
- asset: createAsset(this.version, assetInfo.amount, assetInfo.location)
7843
- }), 'transfer_assets', 'Unlimited'));
7844
- }
7845
- }, _callee, this);
7846
- }));
7847
- function transferToAssetHub(_x) {
7848
- return _transferToAssetHub.apply(this, arguments);
7849
- }
7850
- return transferToAssetHub;
7851
- }()
7852
7780
  }, {
7853
7781
  key: "transferPolkadotXCM",
7854
7782
  value: function transferPolkadotXCM(options) {
@@ -7856,7 +7784,7 @@ var BifrostPolkadot = /*#__PURE__*/function (_Parachain) {
7856
7784
  if (destination === 'Ethereum') {
7857
7785
  return this.transferToEthereum(options);
7858
7786
  }
7859
- return this.transferToAssetHub(options);
7787
+ return transferPolkadotXcm(options, 'transfer_assets', 'Unlimited');
7860
7788
  }
7861
7789
  }, {
7862
7790
  key: "canUseXTokens",
@@ -8209,20 +8137,6 @@ var Crab = /*#__PURE__*/function (_Parachain) {
8209
8137
  value: function transferRelayToPara() {
8210
8138
  throw new ChainNotSupportedError();
8211
8139
  }
8212
- }, {
8213
- key: "createCurrencySpec",
8214
- value: function createCurrencySpec(amount, scenario, version, _asset) {
8215
- if (scenario === 'ParaToPara') {
8216
- return createAsset(version, amount, {
8217
- parents: sdkCommon.Parents.ZERO,
8218
- interior: createX1Payload(version, {
8219
- PalletInstance: 5
8220
- })
8221
- });
8222
- } else {
8223
- return _superPropGet(Crab, "createCurrencySpec", this, 3)([amount, scenario, version]);
8224
- }
8225
- }
8226
8140
  }, {
8227
8141
  key: "transferLocalNonNativeAsset",
8228
8142
  value: function transferLocalNonNativeAsset(options) {
@@ -8371,22 +8285,6 @@ var Darwinia = /*#__PURE__*/function (_Parachain) {
8371
8285
  }
8372
8286
  return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
8373
8287
  }
8374
- }, {
8375
- key: "createCurrencySpec",
8376
- value: function createCurrencySpec(amount, scenario, version, _asset) {
8377
- if (scenario === 'ParaToPara') {
8378
- return createAsset(version, amount, {
8379
- parents: sdkCommon.Parents.ZERO,
8380
- interior: {
8381
- X1: {
8382
- PalletInstance: 5
8383
- }
8384
- }
8385
- });
8386
- } else {
8387
- return _superPropGet(Darwinia, "createCurrencySpec", this, 3)([amount, scenario, version]);
8388
- }
8389
- }
8390
8288
  }, {
8391
8289
  key: "transferLocalNonNativeAsset",
8392
8290
  value: function transferLocalNonNativeAsset(options) {
@@ -9131,49 +9029,21 @@ var Moonbeam = /*#__PURE__*/function (_Parachain) {
9131
9029
  }
9132
9030
  _inherits(Moonbeam, _Parachain);
9133
9031
  return _createClass(Moonbeam, [{
9134
- key: "getLocation",
9135
- value: function getLocation(asset, scenario) {
9136
- if (scenario === 'ParaToRelay') return DOT_LOCATION;
9137
- if (asset.symbol === this.getNativeAssetSymbol()) return {
9138
- parents: sdkCommon.Parents.ZERO,
9139
- interior: {
9140
- X1: {
9141
- PalletInstance: 10
9142
- }
9143
- }
9144
- };
9145
- assertHasLocation(asset);
9146
- return asset.location;
9147
- }
9148
- }, {
9149
9032
  key: "transferPolkadotXCM",
9150
9033
  value: function () {
9151
- var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(input) {
9152
- var api, destination, assetInfo, scenario, version, location, _t;
9034
+ var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
9035
+ var destination;
9153
9036
  return _regenerator().w(function (_context) {
9154
9037
  while (1) switch (_context.n) {
9155
9038
  case 0:
9156
- api = input.api, destination = input.destination, assetInfo = input.assetInfo, scenario = input.scenario, version = input.version;
9039
+ destination = options.destination;
9157
9040
  if (!(destination === 'Ethereum')) {
9158
9041
  _context.n = 1;
9159
9042
  break;
9160
9043
  }
9161
- return _context.a(2, this.transferToEthereum(input));
9044
+ return _context.a(2, this.transferToEthereum(options));
9162
9045
  case 1:
9163
- if (!assets.isSymbolMatch(assetInfo.symbol, assets.getRelayChainSymbol(this.chain))) {
9164
- _context.n = 3;
9165
- break;
9166
- }
9167
- _t = api;
9168
- _context.n = 2;
9169
- return createTypeAndThenCall(this.chain, input);
9170
- case 2:
9171
- return _context.a(2, _t.callTxMethod.call(_t, _context.v));
9172
- case 3:
9173
- location = this.getLocation(assetInfo, scenario);
9174
- return _context.a(2, transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
9175
- asset: createAsset(version, assetInfo.amount, localizeLocation(this.chain, location))
9176
- }), 'transfer_assets', 'Unlimited'));
9046
+ return _context.a(2, transferPolkadotXcm(options, 'transfer_assets', 'Unlimited'));
9177
9047
  }
9178
9048
  }, _callee, this);
9179
9049
  }));
@@ -9197,30 +9067,9 @@ var Moonriver = /*#__PURE__*/function (_Parachain) {
9197
9067
  }
9198
9068
  _inherits(Moonriver, _Parachain);
9199
9069
  return _createClass(Moonriver, [{
9200
- key: "getLocation",
9201
- value: function getLocation(asset, scenario) {
9202
- if (scenario === 'ParaToRelay') return DOT_LOCATION;
9203
- if (asset.symbol === this.getNativeAssetSymbol()) return {
9204
- parents: sdkCommon.Parents.ZERO,
9205
- interior: {
9206
- X1: {
9207
- PalletInstance: 10
9208
- }
9209
- }
9210
- };
9211
- assertHasLocation(asset);
9212
- return asset.location;
9213
- }
9214
- }, {
9215
9070
  key: "transferPolkadotXCM",
9216
- value: function transferPolkadotXCM(input) {
9217
- var assetInfo = input.assetInfo,
9218
- scenario = input.scenario,
9219
- version = input.version;
9220
- var location = this.getLocation(assetInfo, scenario);
9221
- return transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
9222
- asset: createAsset(version, assetInfo.amount, location)
9223
- }), 'transfer_assets', 'Unlimited');
9071
+ value: function transferPolkadotXCM(options) {
9072
+ return transferPolkadotXcm(options, 'transfer_assets', 'Unlimited');
9224
9073
  }
9225
9074
  }, {
9226
9075
  key: "transferLocalNonNativeAsset",
@@ -9932,9 +9781,7 @@ var Xode = /*#__PURE__*/function (_Parachain) {
9932
9781
  throw new IncompatibleChainsError('Xode chain only supports transfers to / from AssetHubPolkadot');
9933
9782
  }
9934
9783
  assertHasLocation(assetInfo);
9935
- return transferPolkadotXcm(_objectSpread2(_objectSpread2({}, options), {}, {
9936
- asset: createAsset(this.version, assetInfo.amount, assetInfo.location)
9937
- }), 'limited_reserve_transfer_assets', 'Unlimited');
9784
+ return transferPolkadotXcm(options, 'limited_reserve_transfer_assets', 'Unlimited');
9938
9785
  }
9939
9786
  }, {
9940
9787
  key: "canReceiveFrom",
@@ -10114,7 +9961,6 @@ var RELAY_LOCATION = {
10114
9961
  Here: null
10115
9962
  }
10116
9963
  };
10117
- var CHAINS_DOT_RESERVE_AH = new Set(['Acala', 'Karura', 'Moonbeam', 'Hydration', 'HydrationPaseo', 'AssetHubPolkadot', 'AssetHubKusama', 'AssetHubWestend', 'AssetHubPaseo', 'BifrostPolkadot', 'BifrostKusama', 'PeoplePolkadot', 'PeopleKusama', 'Ajuna', 'IntegriteePolkadot', 'IntegriteeKusama', 'IntegriteePaseo']);
10118
9964
  var ASSET_HUB_EXECUTION_FEE = 2200000000n; // 0.22 DOT
10119
9965
  var TX_CLIENT_TIMEOUT_MS = 20 * 60 * 1000; // 20 minutes
10120
9966
  var DRY_RUN_CLIENT_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
@@ -12658,15 +12504,7 @@ var resolveReserveChain = function resolveReserveChain(chain, destination, asset
12658
12504
  if (overrideReserve !== undefined) {
12659
12505
  return overrideReserve;
12660
12506
  }
12661
- var relayChain = getRelayChainOf(chain);
12662
- if (relayChain === 'Paseo' || relayChain === 'Kusama') {
12663
- // Paseo and Kusama ecosystems migrate reserves to AssetHub
12664
- return getAssetReserveChain(chain, chain, assetLocation);
12665
- }
12666
- if (sdkCommon.isRelayChain(destination)) {
12667
- return destination;
12668
- }
12669
- return getAssetReserveChain(chain, chain, assetLocation);
12507
+ return getAssetReserveChain(chain, assetLocation);
12670
12508
  };
12671
12509
  var createTypeAndThenCallContext = /*#__PURE__*/function () {
12672
12510
  var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, options, overrideReserve) {
@@ -12886,179 +12724,6 @@ var createTypeAndThenCall = /*#__PURE__*/function () {
12886
12724
  };
12887
12725
  }();
12888
12726
 
12889
- /**
12890
- * Choose a reserve (AssetHub or Relay) by checking the beneficiary’s balance on each.
12891
- * We resolve the beneficiary account on every candidate and return the first with
12892
- * balance \>= amount, or undefined if none qualify.
12893
- */
12894
- var selectReserveByBalance = /*#__PURE__*/function () {
12895
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, options) {
12896
- var api, assetInfo, destination, version, paraIdTo, relay, candidates, _i, _candidates, reserve, reserveApi, location, resolvedAddress, balance;
12897
- return _regenerator().w(function (_context) {
12898
- while (1) switch (_context.n) {
12899
- case 0:
12900
- api = options.api, assetInfo = options.assetInfo, destination = options.destination, version = options.version, paraIdTo = options.paraIdTo;
12901
- relay = getRelayChainOf(chain);
12902
- candidates = ["AssetHub".concat(relay), relay];
12903
- _i = 0, _candidates = candidates;
12904
- case 1:
12905
- if (!(_i < _candidates.length)) {
12906
- _context.n = 7;
12907
- break;
12908
- }
12909
- reserve = _candidates[_i];
12910
- reserveApi = api.clone();
12911
- _context.n = 2;
12912
- return reserveApi.init(reserve);
12913
- case 2:
12914
- location = createDestination(version, chain, destination, paraIdTo);
12915
- _context.n = 3;
12916
- return reserveApi.convertLocationToAccount(location);
12917
- case 3:
12918
- resolvedAddress = _context.v;
12919
- if (resolvedAddress) {
12920
- _context.n = 4;
12921
- break;
12922
- }
12923
- return _context.a(3, 6);
12924
- case 4:
12925
- assertAddressIsString(resolvedAddress);
12926
- _context.n = 5;
12927
- return getAssetBalanceInternal({
12928
- api: reserveApi,
12929
- chain: reserve,
12930
- address: resolvedAddress,
12931
- currency: getCurrencySelection(assetInfo)
12932
- });
12933
- case 5:
12934
- balance = _context.v;
12935
- if (!(balance >= assetInfo.amount)) {
12936
- _context.n = 6;
12937
- break;
12938
- }
12939
- return _context.a(2, reserve);
12940
- case 6:
12941
- _i++;
12942
- _context.n = 1;
12943
- break;
12944
- case 7:
12945
- return _context.a(2, undefined);
12946
- }
12947
- }, _callee);
12948
- }));
12949
- return function selectReserveByBalance(_x, _x2) {
12950
- return _ref.apply(this, arguments);
12951
- };
12952
- }();
12953
-
12954
- var createCallForReserve = /*#__PURE__*/function () {
12955
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, reserveChain, options) {
12956
- var api, destination, address, senderAddress, currency, feeCurrency, serialized, tx, dryRunResult, success;
12957
- return _regenerator().w(function (_context) {
12958
- while (1) switch (_context.n) {
12959
- case 0:
12960
- api = options.api, destination = options.destination, address = options.address, senderAddress = options.senderAddress, currency = options.currency, feeCurrency = options.feeCurrency;
12961
- _context.n = 1;
12962
- return createTypeAndThenCall(chain, options, reserveChain);
12963
- case 1:
12964
- serialized = _context.v;
12965
- assertAddressIsString(address);
12966
- assertToIsString(destination, 'Location destination is not supported for reserve auto-selection.');
12967
- assertSenderAddress(senderAddress);
12968
- tx = api.callTxMethod(serialized);
12969
- _context.n = 2;
12970
- return dryRunInternal({
12971
- api: api,
12972
- tx: tx,
12973
- origin: chain,
12974
- destination: destination,
12975
- address: address,
12976
- senderAddress: senderAddress,
12977
- currency: currency,
12978
- feeAsset: feeCurrency,
12979
- useRootOrigin: true
12980
- });
12981
- case 2:
12982
- dryRunResult = _context.v;
12983
- success = !dryRunResult.failureReason;
12984
- return _context.a(2, {
12985
- call: serialized,
12986
- success: success
12987
- });
12988
- }
12989
- }, _callee);
12990
- }));
12991
- return function createCallForReserve(_x, _x2, _x3) {
12992
- return _ref.apply(this, arguments);
12993
- };
12994
- }();
12995
- /**
12996
- * Creates a type-and-then call but auto-selects the asset reserve between AssetHub and the Relay chain
12997
- * by dry-running both variants and preferring the one that succeeds. If both fail, returns the
12998
- * AssetHub variant. Supports only relaychain assets.
12999
- */
13000
- var createTypeThenAutoReserve = /*#__PURE__*/function () {
13001
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(chain, options) {
13002
- var originSupports, destSupports, reserve, relay, assetHubReserve, ahResult, relayResult;
13003
- return _regenerator().w(function (_context2) {
13004
- while (1) switch (_context2.n) {
13005
- case 0:
13006
- // Use dry-run path only when BOTH origin and destination support it
13007
- originSupports = assets.hasDryRunSupport(chain);
13008
- destSupports = options.destChain ? assets.hasDryRunSupport(options.destChain) : false;
13009
- if (originSupports && destSupports) {
13010
- _context2.n = 5;
13011
- break;
13012
- }
13013
- _context2.n = 1;
13014
- return selectReserveByBalance(chain, options);
13015
- case 1:
13016
- reserve = _context2.v;
13017
- if (!reserve) {
13018
- _context2.n = 3;
13019
- break;
13020
- }
13021
- _context2.n = 2;
13022
- return createTypeAndThenCall(chain, options, reserve);
13023
- case 2:
13024
- return _context2.a(2, _context2.v);
13025
- case 3:
13026
- _context2.n = 4;
13027
- return createTypeAndThenCall(chain, options);
13028
- case 4:
13029
- return _context2.a(2, _context2.v);
13030
- case 5:
13031
- relay = getRelayChainOf(chain);
13032
- assetHubReserve = "AssetHub".concat(relay);
13033
- _context2.n = 6;
13034
- return createCallForReserve(chain, assetHubReserve, options);
13035
- case 6:
13036
- ahResult = _context2.v;
13037
- if (!ahResult.success) {
13038
- _context2.n = 7;
13039
- break;
13040
- }
13041
- return _context2.a(2, ahResult.call);
13042
- case 7:
13043
- _context2.n = 8;
13044
- return createCallForReserve(chain, relay, options);
13045
- case 8:
13046
- relayResult = _context2.v;
13047
- if (!relayResult.success) {
13048
- _context2.n = 9;
13049
- break;
13050
- }
13051
- return _context2.a(2, relayResult.call);
13052
- case 9:
13053
- return _context2.a(2, ahResult.call);
13054
- }
13055
- }, _callee2);
13056
- }));
13057
- return function createTypeThenAutoReserve(_x4, _x5) {
13058
- return _ref2.apply(this, arguments);
13059
- };
13060
- }();
13061
-
13062
12727
  var calculateTotalXcmFee = function calculateTotalXcmFee(feeResult) {
13063
12728
  var _feeResult$assetHub;
13064
12729
  var totalFee = 0n;
@@ -14362,7 +14027,6 @@ exports.createExecuteCall = createExecuteCall;
14362
14027
  exports.createExecuteExchangeXcm = createExecuteExchangeXcm;
14363
14028
  exports.createTx = createTx;
14364
14029
  exports.createTypeAndThenCall = createTypeAndThenCall;
14365
- exports.createTypeThenAutoReserve = createTypeThenAutoReserve;
14366
14030
  exports.createVersionedAssets = createVersionedAssets;
14367
14031
  exports.createX1Payload = createX1Payload;
14368
14032
  exports.deriveAccountId = deriveAccountId;
@@ -14426,6 +14090,9 @@ exports.transferMoonbeamToEth = transferMoonbeamToEth;
14426
14090
  exports.transferRelayToPara = transferRelayToPara;
14427
14091
  exports.traverseXcmHops = traverseXcmHops;
14428
14092
  exports.validateAddress = validateAddress;
14093
+ exports.validateAssetSpecifiers = validateAssetSpecifiers;
14094
+ exports.validateCurrency = validateCurrency;
14095
+ exports.validateDestination = validateDestination;
14429
14096
  exports.verifyEdOnDestination = verifyEdOnDestination;
14430
14097
  exports.wrapTxBypass = wrapTxBypass;
14431
14098
  Object.keys(assets).forEach(function (k) {
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import * as _paraspell_sdk_common from '@paraspell/sdk-common';
2
2
  import { TChain, TLocation, TSubstrateChain, Version, TRelaychain, TParachain, TExternalChain, TJunction, TJunctions } from '@paraspell/sdk-common';
3
3
  export * from '@paraspell/sdk-common';
4
- import * as _paraspell_assets from '@paraspell/assets';
5
4
  import { TCurrencyInputWithAmount, TCurrencyInput, WithAmount, TAssetInfo, TAsset, TAssetWithFee, WithComplexAmount, TCurrencyCore, TAmount, TAssetWithLocation, TForeignAssetWithId, TForeignAssetInfo } from '@paraspell/assets';
6
5
  export * from '@paraspell/assets';
7
6
  import { TPallet } from '@paraspell/pallets';
@@ -1534,7 +1533,7 @@ declare abstract class Parachain<TApi, TRes> {
1534
1533
  shouldUseNativeAssetTeleport({ assetInfo: asset, to }: TSendInternalOptions<TApi, TRes>): boolean;
1535
1534
  getRelayToParaOverrides(): TRelayToParaOverrides;
1536
1535
  transferRelayToPara(options: TRelayToParaOptions<TApi, TRes>): Promise<TSerializedApiCall>;
1537
- createCurrencySpec(amount: bigint, scenario: TScenario, version: Version, asset?: TAssetInfo, _isOverridenAsset?: boolean): TAsset;
1536
+ createAsset(asset: WithAmount<TAssetInfo>, version: Version): TAsset;
1538
1537
  getNativeAssetSymbol(): string;
1539
1538
  transferLocal(options: TSendInternalOptions<TApi, TRes>): Promise<TRes>;
1540
1539
  transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): Promise<TRes>;
@@ -1580,7 +1579,6 @@ declare class AssetHubKusama<TApi, TRes> extends Parachain<TApi, TRes> implement
1580
1579
  transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1581
1580
  getMethod(scenario: TScenario, destination: TDestination): TPolkadotXcmMethod;
1582
1581
  getRelayToParaOverrides(): TRelayToParaOverrides;
1583
- createCurrencySpec(amount: bigint, scenario: TScenario, version: Version, asset?: TAssetInfo, isOverridenAsset?: boolean): _paraspell_assets.TAsset;
1584
1582
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1585
1583
  }
1586
1584
 
@@ -1593,7 +1591,6 @@ declare class AssetHubPolkadot<TApi, TRes> extends Parachain<TApi, TRes> impleme
1593
1591
  private getMethod;
1594
1592
  transferPolkadotXCM<TApi, TRes>(options: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1595
1593
  getRelayToParaOverrides(): TRelayToParaOverrides;
1596
- createCurrencySpec(amount: bigint, scenario: TScenario, version: Version, asset?: TAssetInfo, isOverriddenAsset?: boolean): _paraspell_assets.TAsset;
1597
1594
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1598
1595
  }
1599
1596
 
@@ -1672,7 +1669,6 @@ declare class BifrostPolkadot<TApi, TRes> extends Parachain<TApi, TRes> implemen
1672
1669
  VToken2?: undefined;
1673
1670
  };
1674
1671
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1675
- transferToAssetHub<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1676
1672
  transferPolkadotXCM<TApi, TRes>(options: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1677
1673
  canUseXTokens({ assetInfo, to: destination }: TSendInternalOptions<TApi, TRes>): boolean;
1678
1674
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
@@ -1751,7 +1747,6 @@ declare class Crab<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkado
1751
1747
  constructor();
1752
1748
  transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1753
1749
  transferRelayToPara(): Promise<TSerializedApiCall>;
1754
- createCurrencySpec(amount: bigint, scenario: TScenario, version: Version, _asset?: TAssetInfo): _paraspell_assets.TAsset;
1755
1750
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1756
1751
  }
1757
1752
 
@@ -1779,7 +1774,6 @@ declare class Curio<TApi, TRes> extends Parachain<TApi, TRes> implements IXToken
1779
1774
  declare class Darwinia<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
1780
1775
  constructor();
1781
1776
  transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1782
- createCurrencySpec(amount: bigint, scenario: TScenario, version: Version, _asset?: TAssetInfo): _paraspell_assets.TAsset;
1783
1777
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1784
1778
  }
1785
1779
 
@@ -1897,15 +1891,13 @@ declare class Manta<TApi, TRes> extends Parachain<TApi, TRes> implements IXToken
1897
1891
 
1898
1892
  declare class Moonbeam<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
1899
1893
  constructor(chain?: TParachain, info?: string, ecosystem?: TRelaychain, version?: Version);
1900
- private getLocation;
1901
- transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1894
+ transferPolkadotXCM<TApi, TRes>(options: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1902
1895
  transferLocalNonNativeAsset(_options: TTransferLocalOptions<TApi, TRes>): TRes;
1903
1896
  }
1904
1897
 
1905
1898
  declare class Moonriver<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
1906
1899
  constructor();
1907
- private getLocation;
1908
- transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1900
+ transferPolkadotXCM<TApi, TRes>(options: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1909
1901
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1910
1902
  }
1911
1903
 
@@ -2209,12 +2201,9 @@ declare const transferRelayToPara: <TApi, TRes>(options: TRelayToParaOptions<TAp
2209
2201
  */
2210
2202
  declare const createTypeAndThenCall: <TApi, TRes>(chain: TSubstrateChain, options: TPolkadotXCMTransferOptions<TApi, TRes>, overrideReserve?: TSubstrateChain) => Promise<TSerializedApiCall>;
2211
2203
 
2212
- /**
2213
- * Creates a type-and-then call but auto-selects the asset reserve between AssetHub and the Relay chain
2214
- * by dry-running both variants and preferring the one that succeeds. If both fail, returns the
2215
- * AssetHub variant. Supports only relaychain assets.
2216
- */
2217
- declare const createTypeThenAutoReserve: <TApi, TRes>(chain: TSubstrateChain, options: TPolkadotXCMTransferOptions<TApi, TRes>) => Promise<TSerializedApiCall>;
2204
+ declare const validateCurrency: (currency: TCurrencyInput, feeAsset?: TCurrencyInput) => void;
2205
+ declare const validateDestination: (origin: TSubstrateChain, destination: TDestination) => void;
2206
+ declare const validateAssetSpecifiers: (assetCheckEnabled: boolean, currency: TCurrencyInput) => void;
2218
2207
 
2219
2208
  declare const verifyEdOnDestination: <TApi, TRes>(options: TVerifyEdOnDestinationOptions<TApi, TRes>) => Promise<boolean>;
2220
2209
 
@@ -2320,7 +2309,7 @@ declare const createExecuteExchangeXcm: <TApi, TRes>(input: TPolkadotXCMTransfer
2320
2309
 
2321
2310
  declare const createDirectExecuteXcm: <TApi, TRes>(options: TCreateTransferXcmOptions<TApi, TRes>) => OneKey<_paraspell_sdk_common.Version, unknown[]>;
2322
2311
 
2323
- declare const getAssetReserveChain: (chain: TSubstrateChain, destChain: TChain, assetLocation: TLocation) => TSubstrateChain;
2312
+ declare const getAssetReserveChain: (chain: TSubstrateChain, assetLocation: TLocation) => TSubstrateChain;
2324
2313
 
2325
2314
  declare const handleExecuteTransfer: <TApi, TRes>(chain: TParachain, options: TPolkadotXCMTransferOptions<TApi, TRes>) => Promise<TSerializedApiCall>;
2326
2315
 
@@ -2333,5 +2322,5 @@ declare const formatUnits: typeof formatUnits$1;
2333
2322
 
2334
2323
  declare const validateAddress: (address: TAddress, chain: TChain, isDestination?: boolean) => void;
2335
2324
 
2336
- export { AmountTooLowError, AssetClaimBuilder, AssetsPallet, BatchMode, BridgeHaltedError, Builder, ChainNotSupportedError, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, GeneralBuilder, IncompatibleChainsError, InvalidAddressError, InvalidParameterError, MissingChainApiError, NoXCMSupportImplementedError, PolkadotXcmError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, UnableToComputeError, XTokensError, abstractDecimals, addEthereumBridgeFees, addXcmVersionHeader, applyDecimalAbstraction, assertAddressIsString, assertHasId, assertHasLocation, assertIsForeign, assertSenderAddress, assertToIsString, blake2b256, blake2b512, calcPreviewMintAmount, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, computeOverridenAmount, convertSs58, createAsset, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createChainClient, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createTx, createTypeAndThenCall, createTypeThenAutoReserve, createVersionedAssets, createX1Payload, deriveAccountId, dryRun, dryRunInternal, dryRunOrigin, encodeSs58, formatUnits, getAssetBalance, getAssetBalanceInternal, getAssetReserveChain, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChain, getChainConfig, getChainLocation, getChainProviders, getChainVersion, getCurrencySelection, getFailureInfo, getMinTransferableAmount, getMinTransferableAmountInternal, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getRelayChainOf, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, getXcmFeeInternal, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, localizeLocation, maybeOverrideAsset, maybeOverrideAssets, normalizeAmount, overrideTxAmount, padFee, padValueBy, parseUnits, resolveDestChain, resolveModuleError, resolveParaId, reverseTransformLocation, send, sortAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, verifyEdOnDestination, wrapTxBypass };
2325
+ export { AmountTooLowError, AssetClaimBuilder, AssetsPallet, BatchMode, BridgeHaltedError, Builder, ChainNotSupportedError, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, GeneralBuilder, IncompatibleChainsError, InvalidAddressError, InvalidParameterError, MissingChainApiError, NoXCMSupportImplementedError, PolkadotXcmError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, UnableToComputeError, XTokensError, abstractDecimals, addEthereumBridgeFees, addXcmVersionHeader, applyDecimalAbstraction, assertAddressIsString, assertHasId, assertHasLocation, assertIsForeign, assertSenderAddress, assertToIsString, blake2b256, blake2b512, calcPreviewMintAmount, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, computeOverridenAmount, convertSs58, createAsset, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createChainClient, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createTx, createTypeAndThenCall, createVersionedAssets, createX1Payload, deriveAccountId, dryRun, dryRunInternal, dryRunOrigin, encodeSs58, formatUnits, getAssetBalance, getAssetBalanceInternal, getAssetReserveChain, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChain, getChainConfig, getChainLocation, getChainProviders, getChainVersion, getCurrencySelection, getFailureInfo, getMinTransferableAmount, getMinTransferableAmountInternal, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getRelayChainOf, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, getXcmFeeInternal, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, localizeLocation, maybeOverrideAsset, maybeOverrideAssets, normalizeAmount, overrideTxAmount, padFee, padValueBy, parseUnits, resolveDestChain, resolveModuleError, resolveParaId, reverseTransformLocation, send, sortAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, validateAssetSpecifiers, validateCurrency, validateDestination, verifyEdOnDestination, wrapTxBypass };
2337
2326
  export type { BuildHopInfoOptions, HopProcessParams, HopTraversalConfig, HopTraversalResult, IPolkadotApi, IPolkadotXCMTransfer, IXTokensTransfer, IXTransferTransfer, OneKey, TAddress, TApiOrUrl, TAssetClaimInternalOptions, TAssetClaimOptions, TAssetClaimOptionsBase, TBatchOptions, TBatchedSendOptions, TBifrostToken, TBridgeStatus, TBuildDestInfoOptions, TBuildInternalRes, TBuilderConfig, TBuilderOptions, TBypassOptions, TChainConfig, TChainConfigMap, TChainWithApi, TConditionalXcmFeeDetail, TConditionalXcmFeeHopInfo, TCreateBaseSwapXcmOptions, TCreateBaseTransferXcmOptions, TCreateBeneficiaryOptions, TCreateBeneficiaryXTokensOptions, TCreateSwapXcmInternalOptions, TCreateSwapXcmOptions, TCreateTransferXcmOptions, TCreateTxsOptions, TDestWeight, TDestXcmFeeDetail, TDestination, TDryRunBaseOptions, TDryRunBypassOptions, TDryRunCallBaseOptions, TDryRunCallOptions, TDryRunChain, TDryRunChainFailure, TDryRunChainResult, TDryRunChainSuccess, TDryRunOptions, TDryRunPreviewOptions, TDryRunResBase, TDryRunResult, TDryRunXcmBaseOptions, TDryRunXcmOptions, TEvmBuilderOptions, TEvmBuilderOptionsBase, TEvmChainFrom, TFeeType, TForeignAssetId, TForeignOrNativeAsset, TForeignOrTokenAsset, TGetAssetBalanceOptions, TGetAssetBalanceOptionsBase, TGetBalanceForeignByAssetOptions, TGetBalanceForeignOptions, TGetBalanceForeignOptionsBase, TGetBalanceNativeOptions, TGetBalanceNativeOptionsBase, TGetFeeForDestChainBaseOptions, TGetFeeForDestChainOptions, TGetMinTransferableAmountOptions, TGetOriginFeeDetailsOptions, TGetOriginFeeDetailsOptionsBase, TGetOriginXcmFeeBaseOptions, TGetOriginXcmFeeEstimateOptions, TGetOriginXcmFeeInternalOptions, TGetOriginXcmFeeOptions, TGetReverseTxFeeOptions, TGetTransferInfoOptions, TGetTransferInfoOptionsBase, TGetTransferableAmountOptions, TGetTransferableAmountOptionsBase, TGetXcmFeeBaseOptions, TGetXcmFeeBuilderOptions, TGetXcmFeeEstimateDetail, TGetXcmFeeEstimateOptions, TGetXcmFeeEstimateResult, TGetXcmFeeInternalOptions, TGetXcmFeeOptions, TGetXcmFeeResult, THopInfo, THopTransferInfo, THubKey, TMantaAsset, TModuleError, TNativeTokenAsset, TNodleAsset, TOriginFeeDetails, TOtherReserveAsset, TPolkadotXCMTransferOptions, TPolkadotXcmMethod, TProviderEntry, TRelayToParaDestination, TRelayToParaOptions, TRelayToParaOverrides, TReserveAsset, TResolveHopParams, TScenario, TSelfReserveAsset, TSendBaseOptions, TSendBaseOptionsWithSenderAddress, TSendInternalOptions, TSendOptions, TSerializeEthTransferOptions, TSerializedApiCall, TSerializedEthTransfer, TSwapConfig, TSwapFeeEstimates, TTransferFeeEstimates, TTransferInfo, TTransferLocalOptions, TTxFactory, TTypeAndThenCallContext, TTypeAndThenFees, TUrl, TVerifyEdOnDestinationOptions, TVerifyEdOnDestinationOptionsBase, TWeight, TXTokensCurrencySelection, TXTokensMethod, TXTokensTransferOptions, TXTransferMethod, TXTransferTransferOptions, TXcmAsset, TXcmFeeBase, TXcmFeeChain, TXcmFeeDetail, TXcmFeeDetailError, TXcmFeeDetailSuccess, TXcmFeeDetailWithFallback, TXcmFeeHopInfo, TXcmFeeHopResult, TXcmFeeSwapConfig, TXcmForeignAsset, TXcmPalletMethod, TXcmVersioned, TZeitgeistAsset, WithApi, WithRequiredSenderAddress };
package/dist/index.mjs CHANGED
@@ -3259,7 +3259,7 @@ var throwUnsupportedCurrency = function throwUnsupportedCurrency(currency, chain
3259
3259
  throw new InvalidCurrencyError("".concat(isDestination ? 'Destination' : 'Origin', " chain ").concat(chain, " does not support currency ").concat(JSON.stringify(currency, replaceBigInt), "."));
3260
3260
  };
3261
3261
 
3262
- var getAssetReserveChain = function getAssetReserveChain(chain, destChain, assetLocation) {
3262
+ var getAssetReserveChain = function getAssetReserveChain(chain, assetLocation) {
3263
3263
  var hasGlobalConsensusJunction = hasJunction(assetLocation, 'GlobalConsensus');
3264
3264
  var paraId = getJunctionValue(assetLocation, 'Parachain');
3265
3265
  if (paraId) {
@@ -3280,8 +3280,7 @@ var getAssetReserveChain = function getAssetReserveChain(chain, destChain, asset
3280
3280
  Here: null
3281
3281
  }
3282
3282
  })) {
3283
- if (relaychain === 'Paseo') return ahChain;
3284
- return CHAINS_DOT_RESERVE_AH.has(destChain) ? ahChain : relaychain;
3283
+ return ahChain;
3285
3284
  }
3286
3285
  return chain;
3287
3286
  };
@@ -3296,7 +3295,7 @@ var prepareExecuteContext = function prepareExecuteContext(_ref) {
3296
3295
  assertHasLocation(assetInfo);
3297
3296
  if (feeAssetInfo) assertHasLocation(feeAssetInfo);
3298
3297
  var amount = assetInfo.amount;
3299
- var reserveChain = getAssetReserveChain(chain, destChain, assetInfo.location);
3298
+ var reserveChain = getAssetReserveChain(chain, assetInfo.location);
3300
3299
  var asset = createAsset(version, amount, assetInfo.location);
3301
3300
  var assetLocalized = createAsset(version, amount, localizeLocation(chain, assetInfo.location));
3302
3301
  var assetLocalizedToDest = createAsset(version, amount, localizeLocation(destChain, assetInfo.location));
@@ -6391,7 +6390,7 @@ var Parachain = /*#__PURE__*/function () {
6391
6390
  key: "transfer",
6392
6391
  value: function () {
6393
6392
  var _transfer = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(sendOptions) {
6394
- var api, asset, currency, feeAsset, feeCurrency, address, destination, paraIdTo, overriddenAsset, version, senderAddress, ahAddress, pallet, method, scenario, paraId, destChain, isLocalTransfer, isRelayAsset, supportsTypeThen, isSubBridge, useTypeAndThen, isBifrostOrigin, isJamtonOrigin, isAssetHubDest, useMultiAssets, input, _asset$location2, options, shouldUseTeleport, isAhToOtherPara, isOtherParaToAh, isAllowedAhTransfer, isAHOrigin, isAHDest, isExternalAsset, isEthDest, isExternalAssetViaAh, isExternalAssetToAh, call, _t;
6393
+ var api, asset, currency, feeAsset, feeCurrency, address, destination, paraIdTo, overriddenAsset, version, senderAddress, ahAddress, pallet, method, scenario, paraId, destChain, isLocalTransfer, isRelayAsset, supportsTypeThen, isSubBridge, useTypeAndThen, isBifrostOrigin, isJamtonOrigin, isAssetHubDest, useMultiAssets, input, _asset$location2, options, shouldUseTeleport, isAhToOtherPara, isOtherParaToAh, isAllowedAhTransfer, isAHOrigin, isAHDest, isExternalAsset, isEthDest, isExternalAssetViaAh, isExternalAssetToAh, call;
6395
6394
  return _regenerator().w(function (_context) {
6396
6395
  while (1) switch (_context.n) {
6397
6396
  case 0:
@@ -6467,7 +6466,7 @@ var Parachain = /*#__PURE__*/function () {
6467
6466
  }));
6468
6467
  case 6:
6469
6468
  if (!(supportsPolkadotXCM(this) || useTypeAndThen)) {
6470
- _context.n = 15;
6469
+ _context.n = 12;
6471
6470
  break;
6472
6471
  }
6473
6472
  options = {
@@ -6479,7 +6478,7 @@ var Parachain = /*#__PURE__*/function () {
6479
6478
  version: version
6480
6479
  }),
6481
6480
  address: address,
6482
- asset: this.createCurrencySpec(asset.amount, scenario, version, asset, overriddenAsset !== undefined),
6481
+ asset: this.createAsset(asset, version),
6483
6482
  overriddenAsset: overriddenAsset,
6484
6483
  assetInfo: asset,
6485
6484
  currency: currency,
@@ -6520,7 +6519,7 @@ var Parachain = /*#__PURE__*/function () {
6520
6519
  isExternalAssetViaAh = isExternalAsset && !isAHOrigin && !isAHDest && !isEthDest && !feeAsset; // External asset - Any origin to AHP - DestinationReserve - one DepositAsset instruction
6521
6520
  isExternalAssetToAh = isExternalAsset && isAHDest && !isAHOrigin && !isEthDest && !feeAsset;
6522
6521
  if (!(isExternalAssetViaAh || isExternalAssetToAh || useTypeAndThen)) {
6523
- _context.n = 14;
6522
+ _context.n = 11;
6524
6523
  break;
6525
6524
  }
6526
6525
  if (!(useTypeAndThen && supportsPolkadotXCM(this) && !isSubBridge)) {
@@ -6530,33 +6529,20 @@ var Parachain = /*#__PURE__*/function () {
6530
6529
  _context.n = 9;
6531
6530
  return this.transferPolkadotXCM(options);
6532
6531
  case 9:
6533
- if (!isRelayAsset) {
6534
- _context.n = 11;
6535
- break;
6536
- }
6537
6532
  _context.n = 10;
6538
- return createTypeThenAutoReserve(this.chain, options);
6539
- case 10:
6540
- _t = _context.v;
6541
- _context.n = 13;
6542
- break;
6543
- case 11:
6544
- _context.n = 12;
6545
6533
  return createTypeAndThenCall(this.chain, options);
6546
- case 12:
6547
- _t = _context.v;
6548
- case 13:
6549
- call = _t;
6534
+ case 10:
6535
+ call = _context.v;
6550
6536
  return _context.a(2, api.callTxMethod(call));
6551
- case 14:
6537
+ case 11:
6552
6538
  if (!supportsPolkadotXCM(this)) {
6553
- _context.n = 15;
6539
+ _context.n = 12;
6554
6540
  break;
6555
6541
  }
6556
6542
  return _context.a(2, this.transferPolkadotXCM(options));
6557
- case 15:
6543
+ case 12:
6558
6544
  throw new NoXCMSupportImplementedError(this._chain);
6559
- case 16:
6545
+ case 13:
6560
6546
  return _context.a(2);
6561
6547
  }
6562
6548
  }, _callee, this);
@@ -6658,14 +6644,14 @@ var Parachain = /*#__PURE__*/function () {
6658
6644
  }
6659
6645
  throw new InvalidParameterError('Cannot override destination when using type and then transfer.');
6660
6646
  case 2:
6661
- return _context2.a(2, createTypeThenAutoReserve(getRelayChainOf(destChain), _objectSpread2(_objectSpread2({}, options), {}, {
6647
+ return _context2.a(2, createTypeAndThenCall(getRelayChainOf(destChain), _objectSpread2(_objectSpread2({}, options), {}, {
6662
6648
  beneficiaryLocation: createBeneficiaryLocation({
6663
6649
  api: api,
6664
6650
  address: address,
6665
6651
  version: version
6666
6652
  }),
6667
6653
  senderAddress: senderAddress,
6668
- asset: this.createCurrencySpec(assetInfo.amount, scenario, version, assetInfo, false),
6654
+ asset: this.createAsset(assetInfo, version),
6669
6655
  destLocation: createDestination(version, this.chain, destination, paraId),
6670
6656
  scenario: scenario,
6671
6657
  destChain: destChain,
@@ -6688,14 +6674,12 @@ var Parachain = /*#__PURE__*/function () {
6688
6674
  return transferRelayToPara;
6689
6675
  }()
6690
6676
  }, {
6691
- key: "createCurrencySpec",
6692
- value: function createCurrencySpec(amount, scenario, version, asset, _isOverridenAsset) {
6693
- var isRelayAsset = deepEqual(asset === null || asset === void 0 ? void 0 : asset.location, RELAY_LOCATION);
6694
- var parents = scenario === 'ParaToRelay' || isRelayAsset && isTrustedChain(this.chain) ? Parents.ONE : Parents.ZERO;
6695
- return createAsset(version, amount, {
6696
- parents: parents,
6697
- interior: 'Here'
6698
- });
6677
+ key: "createAsset",
6678
+ value: function createAsset$1(asset, version) {
6679
+ assertHasLocation(asset);
6680
+ var amount = asset.amount,
6681
+ location = asset.location;
6682
+ return createAsset(version, amount, localizeLocation(this.chain, location));
6699
6683
  }
6700
6684
  }, {
6701
6685
  key: "getNativeAssetSymbol",
@@ -7278,11 +7262,6 @@ var AssetHubKusama = /*#__PURE__*/function (_Parachain) {
7278
7262
  includeFee: true
7279
7263
  };
7280
7264
  }
7281
- }, {
7282
- key: "createCurrencySpec",
7283
- value: function createCurrencySpec(amount, scenario, version, asset, isOverridenAsset) {
7284
- return getChain('AssetHubPolkadot').createCurrencySpec(amount, scenario, version, asset, isOverridenAsset);
7285
- }
7286
7265
  }, {
7287
7266
  key: "transferLocalNonNativeAsset",
7288
7267
  value: function transferLocalNonNativeAsset(options) {
@@ -7565,25 +7544,6 @@ var AssetHubPolkadot = /*#__PURE__*/function (_Parachain) {
7565
7544
  includeFee: true
7566
7545
  };
7567
7546
  }
7568
- }, {
7569
- key: "createCurrencySpec",
7570
- value: function createCurrencySpec(amount, scenario, version, asset, isOverriddenAsset) {
7571
- if (scenario === 'ParaToPara') {
7572
- // If the asset has overridden location, provide default location
7573
- // as it will be replaced later
7574
- var location = isOverriddenAsset ? {
7575
- parents: Parents.ZERO,
7576
- interior: 'Here'
7577
- } : asset === null || asset === void 0 ? void 0 : asset.location;
7578
- if (!location) {
7579
- throw new InvalidCurrencyError('Asset does not have a location defined');
7580
- }
7581
- var transformedLocation = hasJunction(location, 'Parachain', getParaId(this.chain)) ? localizeLocation(this.chain, location) : location;
7582
- return createAsset(version, amount, transformedLocation);
7583
- } else {
7584
- return _superPropGet(AssetHubPolkadot, "createCurrencySpec", this, 3)([amount, scenario, version, asset]);
7585
- }
7586
- }
7587
7547
  }, {
7588
7548
  key: "transferLocalNonNativeAsset",
7589
7549
  value: function transferLocalNonNativeAsset(options) {
@@ -7818,38 +7778,6 @@ var BifrostPolkadot = /*#__PURE__*/function (_Parachain) {
7818
7778
  var currencySelection = this.getCurrencySelection(asset);
7819
7779
  return transferXTokens(input, currencySelection);
7820
7780
  }
7821
- // Handles DOT, WETH transfers to AssetHubPolkadot
7822
- }, {
7823
- key: "transferToAssetHub",
7824
- value: function () {
7825
- var _transferToAssetHub = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(input) {
7826
- var api, assetInfo, _t;
7827
- return _regenerator().w(function (_context) {
7828
- while (1) switch (_context.n) {
7829
- case 0:
7830
- api = input.api, assetInfo = input.assetInfo;
7831
- if (!isSymbolMatch(assetInfo.symbol, getRelayChainSymbol(this.chain))) {
7832
- _context.n = 2;
7833
- break;
7834
- }
7835
- _t = api;
7836
- _context.n = 1;
7837
- return createTypeAndThenCall(this.chain, input);
7838
- case 1:
7839
- return _context.a(2, _t.callTxMethod.call(_t, _context.v));
7840
- case 2:
7841
- assertHasLocation(assetInfo);
7842
- return _context.a(2, transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
7843
- asset: createAsset(this.version, assetInfo.amount, assetInfo.location)
7844
- }), 'transfer_assets', 'Unlimited'));
7845
- }
7846
- }, _callee, this);
7847
- }));
7848
- function transferToAssetHub(_x) {
7849
- return _transferToAssetHub.apply(this, arguments);
7850
- }
7851
- return transferToAssetHub;
7852
- }()
7853
7781
  }, {
7854
7782
  key: "transferPolkadotXCM",
7855
7783
  value: function transferPolkadotXCM(options) {
@@ -7857,7 +7785,7 @@ var BifrostPolkadot = /*#__PURE__*/function (_Parachain) {
7857
7785
  if (destination === 'Ethereum') {
7858
7786
  return this.transferToEthereum(options);
7859
7787
  }
7860
- return this.transferToAssetHub(options);
7788
+ return transferPolkadotXcm(options, 'transfer_assets', 'Unlimited');
7861
7789
  }
7862
7790
  }, {
7863
7791
  key: "canUseXTokens",
@@ -8210,20 +8138,6 @@ var Crab = /*#__PURE__*/function (_Parachain) {
8210
8138
  value: function transferRelayToPara() {
8211
8139
  throw new ChainNotSupportedError();
8212
8140
  }
8213
- }, {
8214
- key: "createCurrencySpec",
8215
- value: function createCurrencySpec(amount, scenario, version, _asset) {
8216
- if (scenario === 'ParaToPara') {
8217
- return createAsset(version, amount, {
8218
- parents: Parents.ZERO,
8219
- interior: createX1Payload(version, {
8220
- PalletInstance: 5
8221
- })
8222
- });
8223
- } else {
8224
- return _superPropGet(Crab, "createCurrencySpec", this, 3)([amount, scenario, version]);
8225
- }
8226
- }
8227
8141
  }, {
8228
8142
  key: "transferLocalNonNativeAsset",
8229
8143
  value: function transferLocalNonNativeAsset(options) {
@@ -8372,22 +8286,6 @@ var Darwinia = /*#__PURE__*/function (_Parachain) {
8372
8286
  }
8373
8287
  return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
8374
8288
  }
8375
- }, {
8376
- key: "createCurrencySpec",
8377
- value: function createCurrencySpec(amount, scenario, version, _asset) {
8378
- if (scenario === 'ParaToPara') {
8379
- return createAsset(version, amount, {
8380
- parents: Parents.ZERO,
8381
- interior: {
8382
- X1: {
8383
- PalletInstance: 5
8384
- }
8385
- }
8386
- });
8387
- } else {
8388
- return _superPropGet(Darwinia, "createCurrencySpec", this, 3)([amount, scenario, version]);
8389
- }
8390
- }
8391
8289
  }, {
8392
8290
  key: "transferLocalNonNativeAsset",
8393
8291
  value: function transferLocalNonNativeAsset(options) {
@@ -9132,49 +9030,21 @@ var Moonbeam = /*#__PURE__*/function (_Parachain) {
9132
9030
  }
9133
9031
  _inherits(Moonbeam, _Parachain);
9134
9032
  return _createClass(Moonbeam, [{
9135
- key: "getLocation",
9136
- value: function getLocation(asset, scenario) {
9137
- if (scenario === 'ParaToRelay') return DOT_LOCATION;
9138
- if (asset.symbol === this.getNativeAssetSymbol()) return {
9139
- parents: Parents.ZERO,
9140
- interior: {
9141
- X1: {
9142
- PalletInstance: 10
9143
- }
9144
- }
9145
- };
9146
- assertHasLocation(asset);
9147
- return asset.location;
9148
- }
9149
- }, {
9150
9033
  key: "transferPolkadotXCM",
9151
9034
  value: function () {
9152
- var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(input) {
9153
- var api, destination, assetInfo, scenario, version, location, _t;
9035
+ var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
9036
+ var destination;
9154
9037
  return _regenerator().w(function (_context) {
9155
9038
  while (1) switch (_context.n) {
9156
9039
  case 0:
9157
- api = input.api, destination = input.destination, assetInfo = input.assetInfo, scenario = input.scenario, version = input.version;
9040
+ destination = options.destination;
9158
9041
  if (!(destination === 'Ethereum')) {
9159
9042
  _context.n = 1;
9160
9043
  break;
9161
9044
  }
9162
- return _context.a(2, this.transferToEthereum(input));
9045
+ return _context.a(2, this.transferToEthereum(options));
9163
9046
  case 1:
9164
- if (!isSymbolMatch(assetInfo.symbol, getRelayChainSymbol(this.chain))) {
9165
- _context.n = 3;
9166
- break;
9167
- }
9168
- _t = api;
9169
- _context.n = 2;
9170
- return createTypeAndThenCall(this.chain, input);
9171
- case 2:
9172
- return _context.a(2, _t.callTxMethod.call(_t, _context.v));
9173
- case 3:
9174
- location = this.getLocation(assetInfo, scenario);
9175
- return _context.a(2, transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
9176
- asset: createAsset(version, assetInfo.amount, localizeLocation(this.chain, location))
9177
- }), 'transfer_assets', 'Unlimited'));
9047
+ return _context.a(2, transferPolkadotXcm(options, 'transfer_assets', 'Unlimited'));
9178
9048
  }
9179
9049
  }, _callee, this);
9180
9050
  }));
@@ -9198,30 +9068,9 @@ var Moonriver = /*#__PURE__*/function (_Parachain) {
9198
9068
  }
9199
9069
  _inherits(Moonriver, _Parachain);
9200
9070
  return _createClass(Moonriver, [{
9201
- key: "getLocation",
9202
- value: function getLocation(asset, scenario) {
9203
- if (scenario === 'ParaToRelay') return DOT_LOCATION;
9204
- if (asset.symbol === this.getNativeAssetSymbol()) return {
9205
- parents: Parents.ZERO,
9206
- interior: {
9207
- X1: {
9208
- PalletInstance: 10
9209
- }
9210
- }
9211
- };
9212
- assertHasLocation(asset);
9213
- return asset.location;
9214
- }
9215
- }, {
9216
9071
  key: "transferPolkadotXCM",
9217
- value: function transferPolkadotXCM(input) {
9218
- var assetInfo = input.assetInfo,
9219
- scenario = input.scenario,
9220
- version = input.version;
9221
- var location = this.getLocation(assetInfo, scenario);
9222
- return transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
9223
- asset: createAsset(version, assetInfo.amount, location)
9224
- }), 'transfer_assets', 'Unlimited');
9072
+ value: function transferPolkadotXCM(options) {
9073
+ return transferPolkadotXcm(options, 'transfer_assets', 'Unlimited');
9225
9074
  }
9226
9075
  }, {
9227
9076
  key: "transferLocalNonNativeAsset",
@@ -9933,9 +9782,7 @@ var Xode = /*#__PURE__*/function (_Parachain) {
9933
9782
  throw new IncompatibleChainsError('Xode chain only supports transfers to / from AssetHubPolkadot');
9934
9783
  }
9935
9784
  assertHasLocation(assetInfo);
9936
- return transferPolkadotXcm(_objectSpread2(_objectSpread2({}, options), {}, {
9937
- asset: createAsset(this.version, assetInfo.amount, assetInfo.location)
9938
- }), 'limited_reserve_transfer_assets', 'Unlimited');
9785
+ return transferPolkadotXcm(options, 'limited_reserve_transfer_assets', 'Unlimited');
9939
9786
  }
9940
9787
  }, {
9941
9788
  key: "canReceiveFrom",
@@ -10115,7 +9962,6 @@ var RELAY_LOCATION = {
10115
9962
  Here: null
10116
9963
  }
10117
9964
  };
10118
- var CHAINS_DOT_RESERVE_AH = new Set(['Acala', 'Karura', 'Moonbeam', 'Hydration', 'HydrationPaseo', 'AssetHubPolkadot', 'AssetHubKusama', 'AssetHubWestend', 'AssetHubPaseo', 'BifrostPolkadot', 'BifrostKusama', 'PeoplePolkadot', 'PeopleKusama', 'Ajuna', 'IntegriteePolkadot', 'IntegriteeKusama', 'IntegriteePaseo']);
10119
9965
  var ASSET_HUB_EXECUTION_FEE = 2200000000n; // 0.22 DOT
10120
9966
  var TX_CLIENT_TIMEOUT_MS = 20 * 60 * 1000; // 20 minutes
10121
9967
  var DRY_RUN_CLIENT_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
@@ -12659,15 +12505,7 @@ var resolveReserveChain = function resolveReserveChain(chain, destination, asset
12659
12505
  if (overrideReserve !== undefined) {
12660
12506
  return overrideReserve;
12661
12507
  }
12662
- var relayChain = getRelayChainOf(chain);
12663
- if (relayChain === 'Paseo' || relayChain === 'Kusama') {
12664
- // Paseo and Kusama ecosystems migrate reserves to AssetHub
12665
- return getAssetReserveChain(chain, chain, assetLocation);
12666
- }
12667
- if (isRelayChain(destination)) {
12668
- return destination;
12669
- }
12670
- return getAssetReserveChain(chain, chain, assetLocation);
12508
+ return getAssetReserveChain(chain, assetLocation);
12671
12509
  };
12672
12510
  var createTypeAndThenCallContext = /*#__PURE__*/function () {
12673
12511
  var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, options, overrideReserve) {
@@ -12887,179 +12725,6 @@ var createTypeAndThenCall = /*#__PURE__*/function () {
12887
12725
  };
12888
12726
  }();
12889
12727
 
12890
- /**
12891
- * Choose a reserve (AssetHub or Relay) by checking the beneficiary’s balance on each.
12892
- * We resolve the beneficiary account on every candidate and return the first with
12893
- * balance \>= amount, or undefined if none qualify.
12894
- */
12895
- var selectReserveByBalance = /*#__PURE__*/function () {
12896
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, options) {
12897
- var api, assetInfo, destination, version, paraIdTo, relay, candidates, _i, _candidates, reserve, reserveApi, location, resolvedAddress, balance;
12898
- return _regenerator().w(function (_context) {
12899
- while (1) switch (_context.n) {
12900
- case 0:
12901
- api = options.api, assetInfo = options.assetInfo, destination = options.destination, version = options.version, paraIdTo = options.paraIdTo;
12902
- relay = getRelayChainOf(chain);
12903
- candidates = ["AssetHub".concat(relay), relay];
12904
- _i = 0, _candidates = candidates;
12905
- case 1:
12906
- if (!(_i < _candidates.length)) {
12907
- _context.n = 7;
12908
- break;
12909
- }
12910
- reserve = _candidates[_i];
12911
- reserveApi = api.clone();
12912
- _context.n = 2;
12913
- return reserveApi.init(reserve);
12914
- case 2:
12915
- location = createDestination(version, chain, destination, paraIdTo);
12916
- _context.n = 3;
12917
- return reserveApi.convertLocationToAccount(location);
12918
- case 3:
12919
- resolvedAddress = _context.v;
12920
- if (resolvedAddress) {
12921
- _context.n = 4;
12922
- break;
12923
- }
12924
- return _context.a(3, 6);
12925
- case 4:
12926
- assertAddressIsString(resolvedAddress);
12927
- _context.n = 5;
12928
- return getAssetBalanceInternal({
12929
- api: reserveApi,
12930
- chain: reserve,
12931
- address: resolvedAddress,
12932
- currency: getCurrencySelection(assetInfo)
12933
- });
12934
- case 5:
12935
- balance = _context.v;
12936
- if (!(balance >= assetInfo.amount)) {
12937
- _context.n = 6;
12938
- break;
12939
- }
12940
- return _context.a(2, reserve);
12941
- case 6:
12942
- _i++;
12943
- _context.n = 1;
12944
- break;
12945
- case 7:
12946
- return _context.a(2, undefined);
12947
- }
12948
- }, _callee);
12949
- }));
12950
- return function selectReserveByBalance(_x, _x2) {
12951
- return _ref.apply(this, arguments);
12952
- };
12953
- }();
12954
-
12955
- var createCallForReserve = /*#__PURE__*/function () {
12956
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, reserveChain, options) {
12957
- var api, destination, address, senderAddress, currency, feeCurrency, serialized, tx, dryRunResult, success;
12958
- return _regenerator().w(function (_context) {
12959
- while (1) switch (_context.n) {
12960
- case 0:
12961
- api = options.api, destination = options.destination, address = options.address, senderAddress = options.senderAddress, currency = options.currency, feeCurrency = options.feeCurrency;
12962
- _context.n = 1;
12963
- return createTypeAndThenCall(chain, options, reserveChain);
12964
- case 1:
12965
- serialized = _context.v;
12966
- assertAddressIsString(address);
12967
- assertToIsString(destination, 'Location destination is not supported for reserve auto-selection.');
12968
- assertSenderAddress(senderAddress);
12969
- tx = api.callTxMethod(serialized);
12970
- _context.n = 2;
12971
- return dryRunInternal({
12972
- api: api,
12973
- tx: tx,
12974
- origin: chain,
12975
- destination: destination,
12976
- address: address,
12977
- senderAddress: senderAddress,
12978
- currency: currency,
12979
- feeAsset: feeCurrency,
12980
- useRootOrigin: true
12981
- });
12982
- case 2:
12983
- dryRunResult = _context.v;
12984
- success = !dryRunResult.failureReason;
12985
- return _context.a(2, {
12986
- call: serialized,
12987
- success: success
12988
- });
12989
- }
12990
- }, _callee);
12991
- }));
12992
- return function createCallForReserve(_x, _x2, _x3) {
12993
- return _ref.apply(this, arguments);
12994
- };
12995
- }();
12996
- /**
12997
- * Creates a type-and-then call but auto-selects the asset reserve between AssetHub and the Relay chain
12998
- * by dry-running both variants and preferring the one that succeeds. If both fail, returns the
12999
- * AssetHub variant. Supports only relaychain assets.
13000
- */
13001
- var createTypeThenAutoReserve = /*#__PURE__*/function () {
13002
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(chain, options) {
13003
- var originSupports, destSupports, reserve, relay, assetHubReserve, ahResult, relayResult;
13004
- return _regenerator().w(function (_context2) {
13005
- while (1) switch (_context2.n) {
13006
- case 0:
13007
- // Use dry-run path only when BOTH origin and destination support it
13008
- originSupports = hasDryRunSupport(chain);
13009
- destSupports = options.destChain ? hasDryRunSupport(options.destChain) : false;
13010
- if (originSupports && destSupports) {
13011
- _context2.n = 5;
13012
- break;
13013
- }
13014
- _context2.n = 1;
13015
- return selectReserveByBalance(chain, options);
13016
- case 1:
13017
- reserve = _context2.v;
13018
- if (!reserve) {
13019
- _context2.n = 3;
13020
- break;
13021
- }
13022
- _context2.n = 2;
13023
- return createTypeAndThenCall(chain, options, reserve);
13024
- case 2:
13025
- return _context2.a(2, _context2.v);
13026
- case 3:
13027
- _context2.n = 4;
13028
- return createTypeAndThenCall(chain, options);
13029
- case 4:
13030
- return _context2.a(2, _context2.v);
13031
- case 5:
13032
- relay = getRelayChainOf(chain);
13033
- assetHubReserve = "AssetHub".concat(relay);
13034
- _context2.n = 6;
13035
- return createCallForReserve(chain, assetHubReserve, options);
13036
- case 6:
13037
- ahResult = _context2.v;
13038
- if (!ahResult.success) {
13039
- _context2.n = 7;
13040
- break;
13041
- }
13042
- return _context2.a(2, ahResult.call);
13043
- case 7:
13044
- _context2.n = 8;
13045
- return createCallForReserve(chain, relay, options);
13046
- case 8:
13047
- relayResult = _context2.v;
13048
- if (!relayResult.success) {
13049
- _context2.n = 9;
13050
- break;
13051
- }
13052
- return _context2.a(2, relayResult.call);
13053
- case 9:
13054
- return _context2.a(2, ahResult.call);
13055
- }
13056
- }, _callee2);
13057
- }));
13058
- return function createTypeThenAutoReserve(_x4, _x5) {
13059
- return _ref2.apply(this, arguments);
13060
- };
13061
- }();
13062
-
13063
12728
  var calculateTotalXcmFee = function calculateTotalXcmFee(feeResult) {
13064
12729
  var _feeResult$assetHub;
13065
12730
  var totalFee = 0n;
@@ -14314,4 +13979,4 @@ var Builder = function Builder(api) {
14314
13979
  return new GeneralBuilder(api, new BatchTransactionManager());
14315
13980
  };
14316
13981
 
14317
- export { AmountTooLowError, AssetClaimBuilder, AssetsPallet, BatchMode, BridgeHaltedError, Builder, ChainNotSupportedError, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, GeneralBuilder, IncompatibleChainsError, InvalidAddressError, InvalidParameterError, MissingChainApiError, NoXCMSupportImplementedError, PolkadotXcmError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, UnableToComputeError, XTokensError, abstractDecimals, addEthereumBridgeFees, addXcmVersionHeader, applyDecimalAbstraction, assertAddressIsString, assertHasId, assertHasLocation, assertIsForeign, assertSenderAddress, assertToIsString, blake2b256, blake2b512, calcPreviewMintAmount, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, computeOverridenAmount, convertSs58, createAsset, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createChainClient, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createTx, createTypeAndThenCall, createTypeThenAutoReserve, createVersionedAssets, createX1Payload, deriveAccountId, dryRun, dryRunInternal, dryRunOrigin, encodeSs58, formatUnits, getAssetBalance, getAssetBalanceInternal, getAssetReserveChain, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChain, getChainConfig, getChainLocation, getChainProviders, getChainVersion, getCurrencySelection, getFailureInfo$1 as getFailureInfo, getMinTransferableAmount, getMinTransferableAmountInternal, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getRelayChainOf, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, getXcmFeeInternal, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, localizeLocation, maybeOverrideAsset, maybeOverrideAssets, normalizeAmount, overrideTxAmount, padFee, padValueBy, parseUnits, resolveDestChain, resolveModuleError, resolveParaId, reverseTransformLocation, send, sortAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, verifyEdOnDestination, wrapTxBypass };
13982
+ export { AmountTooLowError, AssetClaimBuilder, AssetsPallet, BatchMode, BridgeHaltedError, Builder, ChainNotSupportedError, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, GeneralBuilder, IncompatibleChainsError, InvalidAddressError, InvalidParameterError, MissingChainApiError, NoXCMSupportImplementedError, PolkadotXcmError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, UnableToComputeError, XTokensError, abstractDecimals, addEthereumBridgeFees, addXcmVersionHeader, applyDecimalAbstraction, assertAddressIsString, assertHasId, assertHasLocation, assertIsForeign, assertSenderAddress, assertToIsString, blake2b256, blake2b512, calcPreviewMintAmount, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, computeOverridenAmount, convertSs58, createAsset, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createChainClient, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createTx, createTypeAndThenCall, createVersionedAssets, createX1Payload, deriveAccountId, dryRun, dryRunInternal, dryRunOrigin, encodeSs58, formatUnits, getAssetBalance, getAssetBalanceInternal, getAssetReserveChain, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChain, getChainConfig, getChainLocation, getChainProviders, getChainVersion, getCurrencySelection, getFailureInfo$1 as getFailureInfo, getMinTransferableAmount, getMinTransferableAmountInternal, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getRelayChainOf, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, getXcmFeeInternal, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, localizeLocation, maybeOverrideAsset, maybeOverrideAssets, normalizeAmount, overrideTxAmount, padFee, padValueBy, parseUnits, resolveDestChain, resolveModuleError, resolveParaId, reverseTransformLocation, send, sortAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, validateAssetSpecifiers, validateCurrency, validateDestination, verifyEdOnDestination, wrapTxBypass };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraspell/sdk-core",
3
- "version": "11.12.13",
3
+ "version": "11.12.15",
4
4
  "description": "SDK core for ParaSpell XCM/XCMP tool for developers",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,9 +26,9 @@
26
26
  "@noble/hashes": "^1.8.0",
27
27
  "@scure/base": "^2.0.0",
28
28
  "viem": "^2.38.5",
29
- "@paraspell/assets": "11.12.13",
30
- "@paraspell/sdk-common": "11.12.13",
31
- "@paraspell/pallets": "11.12.13"
29
+ "@paraspell/assets": "11.12.15",
30
+ "@paraspell/sdk-common": "11.12.15",
31
+ "@paraspell/pallets": "11.12.15"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@babel/plugin-syntax-import-attributes": "^7.27.1",