@paraspell/sdk-core 8.10.0 → 8.11.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
@@ -3212,7 +3212,7 @@ var ParachainNode = /*#__PURE__*/function () {
3212
3212
  key: "transfer",
3213
3213
  value: function () {
3214
3214
  var _transfer = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(options) {
3215
- var api, asset, feeAsset, address, destination, paraIdTo, overriddenAsset, version, senderAddress, pallet, method, isRelayDestination, scenario, paraId, versionOrDefault, isBifrostOrigin, isAssetHubDest, shouldUseMultiasset, input, _options, isEthAsset, isAHPOrigin, isAHPDest, isEthDest;
3215
+ var api, asset, feeAsset, address, destination, paraIdTo, overriddenAsset, version, senderAddress, pallet, method, isRelayDestination, scenario, paraId, versionOrDefault, isLocalTransfer, isBifrostOrigin, isAssetHubDest, shouldUseMultiasset, input, _options, isEthAsset, isAHPOrigin, isAHPDest, isEthDest;
3216
3216
  return _regeneratorRuntime().wrap(function _callee$(_context) {
3217
3217
  while (1) switch (_context.prev = _context.next) {
3218
3218
  case 0:
@@ -3220,15 +3220,22 @@ var ParachainNode = /*#__PURE__*/function () {
3220
3220
  isRelayDestination = !isTMultiLocation(destination) && isRelayChain(destination);
3221
3221
  scenario = isRelayDestination ? 'ParaToRelay' : 'ParaToPara';
3222
3222
  paraId = resolveParaId(paraIdTo, destination);
3223
- if (!(destination === 'Polimec' && this.node !== 'AssetHubPolkadot' && this.node !== 'Hydration')) {
3223
+ if (!(destination === 'Polimec' && this.node !== 'AssetHubPolkadot' && this.node !== 'Hydration' && this.node !== destination)) {
3224
3224
  _context.next = 6;
3225
3225
  break;
3226
3226
  }
3227
3227
  throw new Error('Sending assets to Polimec is supported only from AssetHubPolkadot and Hydration');
3228
3228
  case 6:
3229
3229
  versionOrDefault = version !== null && version !== void 0 ? version : this.version;
3230
+ isLocalTransfer = this.node === destination;
3231
+ if (!isLocalTransfer) {
3232
+ _context.next = 10;
3233
+ break;
3234
+ }
3235
+ return _context.abrupt("return", this.transferLocal(options));
3236
+ case 10:
3230
3237
  if (!(supportsXTokens(this) && this.canUseXTokens(options))) {
3231
- _context.next = 17;
3238
+ _context.next = 20;
3232
3239
  break;
3233
3240
  }
3234
3241
  isBifrostOrigin = this.node === 'BifrostPolkadot' || this.node === 'BifrostKusama';
@@ -3255,15 +3262,15 @@ var ParachainNode = /*#__PURE__*/function () {
3255
3262
  method: method
3256
3263
  };
3257
3264
  if (!shouldUseMultiasset) {
3258
- _context.next = 14;
3265
+ _context.next = 17;
3259
3266
  break;
3260
3267
  }
3261
3268
  return _context.abrupt("return", XTokensTransferImpl.transferXTokens(input, undefined));
3262
- case 14:
3263
- return _context.abrupt("return", this.transferXTokens(input));
3264
3269
  case 17:
3270
+ return _context.abrupt("return", this.transferXTokens(input));
3271
+ case 20:
3265
3272
  if (!supportsXTransfer(this)) {
3266
- _context.next = 21;
3273
+ _context.next = 24;
3267
3274
  break;
3268
3275
  }
3269
3276
  return _context.abrupt("return", this.transferXTransfer({
@@ -3277,9 +3284,9 @@ var ParachainNode = /*#__PURE__*/function () {
3277
3284
  pallet: pallet,
3278
3285
  method: method
3279
3286
  }));
3280
- case 21:
3287
+ case 24:
3281
3288
  if (!supportsPolkadotXCM(this)) {
3282
- _context.next = 34;
3289
+ _context.next = 37;
3283
3290
  break;
3284
3291
  }
3285
3292
  _options = {
@@ -3311,21 +3318,21 @@ var ParachainNode = /*#__PURE__*/function () {
3311
3318
  isAHPDest = destination === 'AssetHubPolkadot' || destination === 'AssetHubKusama';
3312
3319
  isEthDest = destination === 'Ethereum'; // Any origin to any dest via AH - DestinationReserve - multiple instructions
3313
3320
  if (!(isEthAsset && !isAHPOrigin && !isAHPDest && !isEthDest)) {
3314
- _context.next = 29;
3321
+ _context.next = 32;
3315
3322
  break;
3316
3323
  }
3317
3324
  return _context.abrupt("return", this.transferEthAssetViaAH(_options));
3318
- case 29:
3325
+ case 32:
3319
3326
  if (!(isEthAsset && isAHPDest && !isAHPOrigin && !isEthDest)) {
3320
- _context.next = 31;
3327
+ _context.next = 34;
3321
3328
  break;
3322
3329
  }
3323
3330
  return _context.abrupt("return", this.transferToEthereum(_options, true));
3324
- case 31:
3325
- return _context.abrupt("return", this.transferPolkadotXCM(_options));
3326
3331
  case 34:
3332
+ return _context.abrupt("return", this.transferPolkadotXCM(_options));
3333
+ case 37:
3327
3334
  throw new NoXCMSupportImplementedError(this._node);
3328
- case 35:
3335
+ case 38:
3329
3336
  case "end":
3330
3337
  return _context.stop();
3331
3338
  }
@@ -3380,6 +3387,65 @@ var ParachainNode = /*#__PURE__*/function () {
3380
3387
  value: function getNativeAssetSymbol$1() {
3381
3388
  return getNativeAssetSymbol(this.node);
3382
3389
  }
3390
+ }, {
3391
+ key: "transferLocal",
3392
+ value: function transferLocal(options) {
3393
+ var asset = options.asset,
3394
+ address = options.address;
3395
+ if (isTMultiLocation(address)) {
3396
+ throw new InvalidAddressError('Multi-Location address is not supported for local transfers');
3397
+ }
3398
+ var validatedOptions = _objectSpread2(_objectSpread2({}, options), {}, {
3399
+ address: address
3400
+ });
3401
+ var isNativeAsset = asset.symbol === this.getNativeAssetSymbol() && !isForeignAsset(asset);
3402
+ if (isNativeAsset) {
3403
+ return this.transferLocalNativeAsset(validatedOptions);
3404
+ } else {
3405
+ return this.transferLocalNonNativeAsset(validatedOptions);
3406
+ }
3407
+ }
3408
+ }, {
3409
+ key: "transferLocalNativeAsset",
3410
+ value: function transferLocalNativeAsset(options) {
3411
+ var api = options.api,
3412
+ asset = options.asset,
3413
+ address = options.address;
3414
+ return api.callTxMethod({
3415
+ module: 'Balances',
3416
+ section: 'transfer_keep_alive',
3417
+ parameters: {
3418
+ dest: isNodeEvm(this.node) ? address : {
3419
+ Id: address
3420
+ },
3421
+ value: BigInt(asset.amount)
3422
+ }
3423
+ });
3424
+ }
3425
+ }, {
3426
+ key: "transferLocalNonNativeAsset",
3427
+ value: function transferLocalNonNativeAsset(options) {
3428
+ var api = options.api,
3429
+ asset = options.asset,
3430
+ address = options.address;
3431
+ if (!isForeignAsset(asset)) {
3432
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
3433
+ }
3434
+ if (asset.assetId === undefined) {
3435
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
3436
+ }
3437
+ return api.callTxMethod({
3438
+ module: 'Tokens',
3439
+ section: 'transfer',
3440
+ parameters: {
3441
+ dest: {
3442
+ Id: address
3443
+ },
3444
+ currency_id: BigInt(asset.assetId),
3445
+ amount: BigInt(asset.amount)
3446
+ }
3447
+ });
3448
+ }
3383
3449
  }, {
3384
3450
  key: "transferEthAssetViaAH",
3385
3451
  value: function () {
@@ -3636,16 +3702,61 @@ var Acala = /*#__PURE__*/function (_ParachainNode) {
3636
3702
  }
3637
3703
  _inherits(Acala, _ParachainNode);
3638
3704
  return _createClass(Acala, [{
3639
- key: "transferXTokens",
3640
- value: function transferXTokens(input) {
3641
- var asset = input.asset;
3642
- var currencySelection = isForeignAsset(asset) ? {
3705
+ key: "getCurrencySelection",
3706
+ value: function getCurrencySelection(asset) {
3707
+ return isForeignAsset(asset) ? {
3643
3708
  ForeignAsset: Number(asset.assetId)
3644
3709
  } : {
3645
3710
  Token: asset.symbol
3646
3711
  };
3712
+ }
3713
+ }, {
3714
+ key: "transferXTokens",
3715
+ value: function transferXTokens(input) {
3716
+ var asset = input.asset;
3717
+ var currencySelection = this.getCurrencySelection(asset);
3647
3718
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
3648
3719
  }
3720
+ }, {
3721
+ key: "transferLocalNativeAsset",
3722
+ value: function transferLocalNativeAsset(options) {
3723
+ var api = options.api,
3724
+ asset = options.asset,
3725
+ address = options.address;
3726
+ return api.callTxMethod({
3727
+ module: 'Currencies',
3728
+ section: 'transfer_native_currency',
3729
+ parameters: {
3730
+ dest: {
3731
+ Id: address
3732
+ },
3733
+ amount: BigInt(asset.amount)
3734
+ }
3735
+ });
3736
+ }
3737
+ }, {
3738
+ key: "transferLocalNonNativeAsset",
3739
+ value: function transferLocalNonNativeAsset(options) {
3740
+ var api = options.api,
3741
+ asset = options.asset,
3742
+ address = options.address;
3743
+ if (asset.symbol.toLowerCase() === 'lcdot') {
3744
+ throw new InvalidCurrencyError('LcDOT local transfers are not supported');
3745
+ }
3746
+ return api.callTxMethod({
3747
+ module: 'Currencies',
3748
+ section: 'transfer',
3749
+ parameters: {
3750
+ dest: {
3751
+ Id: address
3752
+ },
3753
+ currency_id: this.getCurrencySelection(_objectSpread2(_objectSpread2({}, asset), {}, {
3754
+ symbol: asset.symbol === 'aSEED' ? 'AUSD' : asset.symbol
3755
+ })),
3756
+ amount: BigInt(asset.amount)
3757
+ }
3758
+ });
3759
+ }
3649
3760
  }]);
3650
3761
  }(ParachainNode);
3651
3762
 
@@ -3673,6 +3784,30 @@ var Altair = /*#__PURE__*/function (_ParachainNode) {
3673
3784
  var currencySelection = this.getCurrencySelection(asset);
3674
3785
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
3675
3786
  }
3787
+ }, {
3788
+ key: "transferLocalNonNativeAsset",
3789
+ value: function transferLocalNonNativeAsset(options) {
3790
+ var api = options.api,
3791
+ asset = options.asset,
3792
+ address = options.address;
3793
+ if (!isForeignAsset(asset)) {
3794
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
3795
+ }
3796
+ if (asset.assetId === undefined) {
3797
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
3798
+ }
3799
+ return api.callTxMethod({
3800
+ module: 'Tokens',
3801
+ section: 'transfer',
3802
+ parameters: {
3803
+ dest: {
3804
+ Id: address
3805
+ },
3806
+ currency_id: this.getCurrencySelection(asset),
3807
+ amount: BigInt(asset.amount)
3808
+ }
3809
+ });
3810
+ }
3676
3811
  }]);
3677
3812
  }(ParachainNode);
3678
3813
 
@@ -3778,6 +3913,11 @@ var AssetHubKusama = /*#__PURE__*/function (_ParachainNode) {
3778
3913
  value: function createCurrencySpec(amount, scenario, version, asset, isOverridenAsset) {
3779
3914
  return getNode('AssetHubPolkadot').createCurrencySpec(amount, scenario, version, asset, isOverridenAsset);
3780
3915
  }
3916
+ }, {
3917
+ key: "transferLocalNonNativeAsset",
3918
+ value: function transferLocalNonNativeAsset(options) {
3919
+ return getNode('AssetHubPolkadot').transferLocalNonNativeAsset(options);
3920
+ }
3781
3921
  }]);
3782
3922
  }(ParachainNode);
3783
3923
 
@@ -4344,6 +4484,40 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
4344
4484
  return _superPropGet(AssetHubPolkadot, "createCurrencySpec", this, 3)([amount, scenario, version, asset]);
4345
4485
  }
4346
4486
  }
4487
+ }, {
4488
+ key: "transferLocalNonNativeAsset",
4489
+ value: function transferLocalNonNativeAsset(options) {
4490
+ var api = options.api,
4491
+ asset = options.asset,
4492
+ address = options.address;
4493
+ if (!isForeignAsset(asset)) {
4494
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
4495
+ }
4496
+ if (asset.assetId !== undefined) {
4497
+ return api.callTxMethod({
4498
+ module: 'Assets',
4499
+ section: 'transfer',
4500
+ parameters: {
4501
+ id: Number(asset.assetId),
4502
+ target: {
4503
+ Id: address
4504
+ },
4505
+ amount: BigInt(asset.amount)
4506
+ }
4507
+ });
4508
+ }
4509
+ return api.callTxMethod({
4510
+ module: 'ForeignAssets',
4511
+ section: 'transfer',
4512
+ parameters: {
4513
+ id: asset.multiLocation,
4514
+ target: {
4515
+ Id: address
4516
+ },
4517
+ amount: BigInt(asset.amount)
4518
+ }
4519
+ });
4520
+ }
4347
4521
  }]);
4348
4522
  }(ParachainNode);
4349
4523
 
@@ -4374,6 +4548,30 @@ var Astar = /*#__PURE__*/function (_ParachainNode) {
4374
4548
  var asset = _ref.asset;
4375
4549
  return asset.symbol !== this.getNativeAssetSymbol();
4376
4550
  }
4551
+ }, {
4552
+ key: "transferLocalNonNativeAsset",
4553
+ value: function transferLocalNonNativeAsset(options) {
4554
+ var api = options.api,
4555
+ asset = options.asset,
4556
+ address = options.address;
4557
+ if (!isForeignAsset(asset)) {
4558
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
4559
+ }
4560
+ if (asset.assetId === undefined) {
4561
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
4562
+ }
4563
+ return api.callTxMethod({
4564
+ module: 'Assets',
4565
+ section: 'transfer',
4566
+ parameters: {
4567
+ id: Number(asset.assetId),
4568
+ target: {
4569
+ Id: address
4570
+ },
4571
+ amount: BigInt(asset.amount)
4572
+ }
4573
+ });
4574
+ }
4377
4575
  }]);
4378
4576
  }(ParachainNode);
4379
4577
 
@@ -4392,6 +4590,16 @@ var Basilisk = /*#__PURE__*/function (_ParachainNode) {
4392
4590
  }
4393
4591
  return XTokensTransferImpl.transferXTokens(input, Number(asset.assetId));
4394
4592
  }
4593
+ }, {
4594
+ key: "transferLocalNativeAsset",
4595
+ value: function transferLocalNativeAsset(options) {
4596
+ return getNode('Hydration').transferLocalNativeAsset(options);
4597
+ }
4598
+ }, {
4599
+ key: "transferLocalNonNativeAsset",
4600
+ value: function transferLocalNonNativeAsset(options) {
4601
+ return getNode('Hydration').transferLocalNonNativeAsset(options);
4602
+ }
4395
4603
  }]);
4396
4604
  }(ParachainNode);
4397
4605
 
@@ -4406,6 +4614,11 @@ var BifrostKusama = /*#__PURE__*/function (_ParachainNode) {
4406
4614
  value: function transferXTokens(input) {
4407
4615
  return getNode('BifrostPolkadot').transferXTokens(input);
4408
4616
  }
4617
+ }, {
4618
+ key: "transferLocalNonNativeAsset",
4619
+ value: function transferLocalNonNativeAsset(options) {
4620
+ return getNode('BifrostPolkadot').transferLocalNonNativeAsset(options);
4621
+ }
4409
4622
  }]);
4410
4623
  }(ParachainNode);
4411
4624
 
@@ -4490,6 +4703,24 @@ var BifrostPolkadot = /*#__PURE__*/function (_ParachainNode) {
4490
4703
  if (destination === 'Ethereum') return false;
4491
4704
  return asset.symbol !== 'WETH' && asset.symbol !== 'DOT' || destination !== 'AssetHubPolkadot';
4492
4705
  }
4706
+ }, {
4707
+ key: "transferLocalNonNativeAsset",
4708
+ value: function transferLocalNonNativeAsset(options) {
4709
+ var api = options.api,
4710
+ asset = options.asset,
4711
+ address = options.address;
4712
+ return api.callTxMethod({
4713
+ module: 'Tokens',
4714
+ section: 'transfer',
4715
+ parameters: {
4716
+ dest: {
4717
+ Id: address
4718
+ },
4719
+ currency_id: this.getCurrencySelection(asset),
4720
+ amount: BigInt(asset.amount)
4721
+ }
4722
+ });
4723
+ }
4493
4724
  }]);
4494
4725
  }(ParachainNode);
4495
4726
 
@@ -4608,6 +4839,30 @@ var Centrifuge = /*#__PURE__*/function (_ParachainNode) {
4608
4839
  var currencySelection = this.getCurrencySelection(asset);
4609
4840
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
4610
4841
  }
4842
+ }, {
4843
+ key: "transferLocalNonNativeAsset",
4844
+ value: function transferLocalNonNativeAsset(options) {
4845
+ var api = options.api,
4846
+ asset = options.asset,
4847
+ address = options.address;
4848
+ if (!isForeignAsset(asset)) {
4849
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
4850
+ }
4851
+ if (asset.assetId === undefined) {
4852
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
4853
+ }
4854
+ return api.callTxMethod({
4855
+ module: 'Tokens',
4856
+ section: 'transfer',
4857
+ parameters: {
4858
+ dest: {
4859
+ Id: address
4860
+ },
4861
+ currency_id: this.getCurrencySelection(asset),
4862
+ amount: BigInt(asset.amount)
4863
+ }
4864
+ });
4865
+ }
4611
4866
  }]);
4612
4867
  }(ParachainNode);
4613
4868
 
@@ -4751,6 +5006,11 @@ var Crab = /*#__PURE__*/function (_ParachainNode) {
4751
5006
  return _superPropGet(Crab, "createCurrencySpec", this, 3)([amount, scenario, version]);
4752
5007
  }
4753
5008
  }
5009
+ }, {
5010
+ key: "transferLocalNonNativeAsset",
5011
+ value: function transferLocalNonNativeAsset(options) {
5012
+ return getNode('Darwinia').transferLocalNonNativeAsset(options);
5013
+ }
4754
5014
  }]);
4755
5015
  }(ParachainNode);
4756
5016
 
@@ -4780,6 +5040,30 @@ var Crust = /*#__PURE__*/function (_ParachainNode) {
4780
5040
  var currencySelection = this.getCurrencySelection(asset);
4781
5041
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
4782
5042
  }
5043
+ }, {
5044
+ key: "transferLocalNonNativeAsset",
5045
+ value: function transferLocalNonNativeAsset(options) {
5046
+ var api = options.api,
5047
+ asset = options.asset,
5048
+ address = options.address;
5049
+ if (!isForeignAsset(asset)) {
5050
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
5051
+ }
5052
+ if (asset.assetId === undefined) {
5053
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
5054
+ }
5055
+ return api.callTxMethod({
5056
+ module: 'Assets',
5057
+ section: 'transfer',
5058
+ parameters: {
5059
+ id: BigInt(asset.assetId),
5060
+ target: {
5061
+ Id: address
5062
+ },
5063
+ amount: BigInt(asset.amount)
5064
+ }
5065
+ });
5066
+ }
4783
5067
  }]);
4784
5068
  }(ParachainNode);
4785
5069
 
@@ -4809,6 +5093,11 @@ var CrustShadow = /*#__PURE__*/function (_ParachainNode) {
4809
5093
  var currencySelection = this.getCurrencySelection(asset);
4810
5094
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
4811
5095
  }
5096
+ }, {
5097
+ key: "transferLocalNonNativeAsset",
5098
+ value: function transferLocalNonNativeAsset(options) {
5099
+ return getNode('Crust').transferLocalNonNativeAsset(options);
5100
+ }
4812
5101
  }]);
4813
5102
  }(ParachainNode);
4814
5103
 
@@ -4847,6 +5136,28 @@ var Darwinia = /*#__PURE__*/function (_ParachainNode) {
4847
5136
  }
4848
5137
  return Promise.resolve(PolkadotXCMTransferImpl.transferPolkadotXCM(input, 'reserve_transfer_assets'));
4849
5138
  }
5139
+ }, {
5140
+ key: "transferLocalNonNativeAsset",
5141
+ value: function transferLocalNonNativeAsset(options) {
5142
+ var api = options.api,
5143
+ asset = options.asset,
5144
+ address = options.address;
5145
+ if (!isForeignAsset(asset)) {
5146
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
5147
+ }
5148
+ if (asset.assetId === undefined) {
5149
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
5150
+ }
5151
+ return api.callTxMethod({
5152
+ module: 'Assets',
5153
+ section: 'transfer',
5154
+ parameters: {
5155
+ id: BigInt(asset.assetId),
5156
+ target: address,
5157
+ amount: BigInt(asset.amount)
5158
+ }
5159
+ });
5160
+ }
4850
5161
  }]);
4851
5162
  }(ParachainNode);
4852
5163
 
@@ -5058,6 +5369,30 @@ var Polimec = /*#__PURE__*/function (_ParachainNode) {
5058
5369
  }), version, 'Teleport');
5059
5370
  return call;
5060
5371
  }
5372
+ }, {
5373
+ key: "transferLocalNonNativeAsset",
5374
+ value: function transferLocalNonNativeAsset(options) {
5375
+ var api = options.api,
5376
+ asset = options.asset,
5377
+ address = options.address;
5378
+ if (!isForeignAsset(asset)) {
5379
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
5380
+ }
5381
+ if (asset.multiLocation === undefined) {
5382
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no multi-location"));
5383
+ }
5384
+ return api.callTxMethod({
5385
+ module: 'ForeignAssets',
5386
+ section: 'transfer',
5387
+ parameters: {
5388
+ id: asset.multiLocation,
5389
+ target: {
5390
+ Id: address
5391
+ },
5392
+ amount: BigInt(asset.amount)
5393
+ }
5394
+ });
5395
+ }
5061
5396
  }]);
5062
5397
  }(ParachainNode);
5063
5398
 
@@ -5187,6 +5522,43 @@ var Hydration = /*#__PURE__*/function (_ParachainNode) {
5187
5522
  var isEthAsset = asset.multiLocation && findAssetByMultiLocation(getOtherAssets('Ethereum'), asset.multiLocation);
5188
5523
  return destination !== 'Ethereum' && destination !== 'Polimec' && !(destination === 'AssetHubPolkadot' && asset.symbol === 'DOT') && !isEthAsset;
5189
5524
  }
5525
+ }, {
5526
+ key: "transferLocalNativeAsset",
5527
+ value: function transferLocalNativeAsset(options) {
5528
+ var api = options.api,
5529
+ asset = options.asset,
5530
+ address = options.address;
5531
+ return api.callTxMethod({
5532
+ module: 'Balances',
5533
+ section: 'transfer_keep_alive',
5534
+ parameters: {
5535
+ dest: address,
5536
+ value: BigInt(asset.amount)
5537
+ }
5538
+ });
5539
+ }
5540
+ }, {
5541
+ key: "transferLocalNonNativeAsset",
5542
+ value: function transferLocalNonNativeAsset(options) {
5543
+ var api = options.api,
5544
+ asset = options.asset,
5545
+ address = options.address;
5546
+ if (!isForeignAsset(asset)) {
5547
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
5548
+ }
5549
+ if (asset.assetId === undefined) {
5550
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
5551
+ }
5552
+ return api.callTxMethod({
5553
+ module: 'Tokens',
5554
+ section: 'transfer',
5555
+ parameters: {
5556
+ dest: address,
5557
+ currency_id: Number(asset.assetId),
5558
+ amount: BigInt(asset.amount)
5559
+ }
5560
+ });
5561
+ }
5190
5562
  }]);
5191
5563
  }(ParachainNode);
5192
5564
  Hydration.NATIVE_ASSET_ID = 0;
@@ -5198,16 +5570,42 @@ var Interlay = /*#__PURE__*/function (_ParachainNode) {
5198
5570
  }
5199
5571
  _inherits(Interlay, _ParachainNode);
5200
5572
  return _createClass(Interlay, [{
5201
- key: "transferXTokens",
5202
- value: function transferXTokens(input) {
5203
- var asset = input.asset;
5204
- var currencySelection = isForeignAsset(asset) ? {
5573
+ key: "getCurrencySelection",
5574
+ value: function getCurrencySelection(asset) {
5575
+ return isForeignAsset(asset) ? {
5205
5576
  ForeignAsset: Number(asset.assetId)
5206
5577
  } : {
5207
5578
  Token: asset.symbol
5208
5579
  };
5580
+ }
5581
+ }, {
5582
+ key: "transferXTokens",
5583
+ value: function transferXTokens(input) {
5584
+ var asset = input.asset;
5585
+ var currencySelection = this.getCurrencySelection(asset);
5209
5586
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
5210
5587
  }
5588
+ }, {
5589
+ key: "transferLocalNativeAsset",
5590
+ value: function transferLocalNativeAsset(options) {
5591
+ return this.transferLocalNonNativeAsset(options);
5592
+ }
5593
+ }, {
5594
+ key: "transferLocalNonNativeAsset",
5595
+ value: function transferLocalNonNativeAsset(options) {
5596
+ var api = options.api,
5597
+ asset = options.asset,
5598
+ address = options.address;
5599
+ return api.callTxMethod({
5600
+ module: 'Tokens',
5601
+ section: 'transfer',
5602
+ parameters: {
5603
+ dest: address,
5604
+ currency_id: this.getCurrencySelection(asset),
5605
+ value: BigInt(asset.amount)
5606
+ }
5607
+ });
5608
+ }
5211
5609
  }]);
5212
5610
  }(ParachainNode);
5213
5611
 
@@ -5240,6 +5638,16 @@ var Karura = /*#__PURE__*/function (_ParachainNode) {
5240
5638
  value: function transferXTokens(input) {
5241
5639
  return getNode('Acala').transferXTokens(input);
5242
5640
  }
5641
+ }, {
5642
+ key: "transferLocalNativeAsset",
5643
+ value: function transferLocalNativeAsset(options) {
5644
+ return getNode('Acala').transferLocalNativeAsset(options);
5645
+ }
5646
+ }, {
5647
+ key: "transferLocalNonNativeAsset",
5648
+ value: function transferLocalNonNativeAsset(options) {
5649
+ return getNode('Acala').transferLocalNonNativeAsset(options);
5650
+ }
5243
5651
  }]);
5244
5652
  }(ParachainNode);
5245
5653
 
@@ -5272,16 +5680,42 @@ var Kintsugi = /*#__PURE__*/function (_ParachainNode) {
5272
5680
  }
5273
5681
  _inherits(Kintsugi, _ParachainNode);
5274
5682
  return _createClass(Kintsugi, [{
5275
- key: "transferXTokens",
5276
- value: function transferXTokens(input) {
5277
- var asset = input.asset;
5278
- var currencySelection = isForeignAsset(asset) ? {
5683
+ key: "getCurrencySelection",
5684
+ value: function getCurrencySelection(asset) {
5685
+ return isForeignAsset(asset) ? {
5279
5686
  ForeignAsset: Number(asset.assetId)
5280
5687
  } : {
5281
5688
  Token: asset.symbol
5282
5689
  };
5690
+ }
5691
+ }, {
5692
+ key: "transferXTokens",
5693
+ value: function transferXTokens(input) {
5694
+ var asset = input.asset;
5695
+ var currencySelection = this.getCurrencySelection(asset);
5283
5696
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
5284
5697
  }
5698
+ }, {
5699
+ key: "transferLocalNativeAsset",
5700
+ value: function transferLocalNativeAsset(options) {
5701
+ return this.transferLocalNonNativeAsset(options);
5702
+ }
5703
+ }, {
5704
+ key: "transferLocalNonNativeAsset",
5705
+ value: function transferLocalNonNativeAsset(options) {
5706
+ var api = options.api,
5707
+ asset = options.asset,
5708
+ address = options.address;
5709
+ return api.callTxMethod({
5710
+ module: 'Tokens',
5711
+ section: 'transfer',
5712
+ parameters: {
5713
+ dest: address,
5714
+ currency_id: this.getCurrencySelection(asset),
5715
+ value: BigInt(asset.amount)
5716
+ }
5717
+ });
5718
+ }
5285
5719
  }]);
5286
5720
  }(ParachainNode);
5287
5721
 
@@ -5309,6 +5743,30 @@ var Manta = /*#__PURE__*/function (_ParachainNode) {
5309
5743
  };
5310
5744
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
5311
5745
  }
5746
+ }, {
5747
+ key: "transferLocalNonNativeAsset",
5748
+ value: function transferLocalNonNativeAsset(options) {
5749
+ var api = options.api,
5750
+ asset = options.asset,
5751
+ address = options.address;
5752
+ if (!isForeignAsset(asset)) {
5753
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
5754
+ }
5755
+ if (asset.assetId === undefined) {
5756
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
5757
+ }
5758
+ return api.callTxMethod({
5759
+ module: 'Assets',
5760
+ section: 'transfer',
5761
+ parameters: {
5762
+ id: BigInt(asset.assetId),
5763
+ target: {
5764
+ Id: address
5765
+ },
5766
+ amount: BigInt(asset.amount)
5767
+ }
5768
+ });
5769
+ }
5312
5770
  }]);
5313
5771
  }(ParachainNode);
5314
5772
  Manta.NATIVE_ASSET_ID = 1n;
@@ -5356,6 +5814,28 @@ var Moonbeam = /*#__PURE__*/function (_ParachainNode) {
5356
5814
  includeFee: true
5357
5815
  };
5358
5816
  }
5817
+ }, {
5818
+ key: "transferLocalNonNativeAsset",
5819
+ value: function transferLocalNonNativeAsset(options) {
5820
+ var api = options.api,
5821
+ asset = options.asset,
5822
+ address = options.address;
5823
+ if (!isForeignAsset(asset)) {
5824
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
5825
+ }
5826
+ if (asset.assetId === undefined) {
5827
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
5828
+ }
5829
+ return api.callTxMethod({
5830
+ module: 'Assets',
5831
+ section: 'transfer',
5832
+ parameters: {
5833
+ id: BigInt(asset.assetId),
5834
+ target: address,
5835
+ amount: BigInt(asset.amount)
5836
+ }
5837
+ });
5838
+ }
5359
5839
  }]);
5360
5840
  }(ParachainNode);
5361
5841
 
@@ -5402,6 +5882,11 @@ var Moonriver = /*#__PURE__*/function (_ParachainNode) {
5402
5882
  includeFee: true
5403
5883
  };
5404
5884
  }
5885
+ }, {
5886
+ key: "transferLocalNonNativeAsset",
5887
+ value: function transferLocalNonNativeAsset(options) {
5888
+ return getNode('Moonbeam').transferLocalNonNativeAsset(options);
5889
+ }
5405
5890
  }]);
5406
5891
  }(ParachainNode);
5407
5892
 
@@ -5499,6 +5984,30 @@ var Peaq = /*#__PURE__*/function (_ParachainNode) {
5499
5984
  value: function transferRelayToPara() {
5500
5985
  throw new NodeNotSupportedError();
5501
5986
  }
5987
+ }, {
5988
+ key: "transferLocalNonNativeAsset",
5989
+ value: function transferLocalNonNativeAsset(options) {
5990
+ var api = options.api,
5991
+ asset = options.asset,
5992
+ address = options.address;
5993
+ if (!isForeignAsset(asset)) {
5994
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
5995
+ }
5996
+ if (asset.assetId === undefined) {
5997
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
5998
+ }
5999
+ return api.callTxMethod({
6000
+ module: 'Assets',
6001
+ section: 'transfer',
6002
+ parameters: {
6003
+ id: BigInt(asset.assetId),
6004
+ target: {
6005
+ Id: address
6006
+ },
6007
+ amount: BigInt(asset.amount)
6008
+ }
6009
+ });
6010
+ }
5502
6011
  }]);
5503
6012
  }(ParachainNode);
5504
6013
 
@@ -5688,6 +6197,30 @@ var Phala = /*#__PURE__*/function (_ParachainNode) {
5688
6197
  }
5689
6198
  return XTransferTransferImpl.transferXTransfer(input);
5690
6199
  }
6200
+ }, {
6201
+ key: "transferLocalNonNativeAsset",
6202
+ value: function transferLocalNonNativeAsset(options) {
6203
+ var api = options.api,
6204
+ asset = options.asset,
6205
+ address = options.address;
6206
+ if (!isForeignAsset(asset)) {
6207
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
6208
+ }
6209
+ if (asset.assetId === undefined) {
6210
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
6211
+ }
6212
+ return api.callTxMethod({
6213
+ module: 'Assets',
6214
+ section: 'transfer',
6215
+ parameters: {
6216
+ id: BigInt(asset.assetId),
6217
+ target: {
6218
+ Id: address
6219
+ },
6220
+ amount: BigInt(asset.amount)
6221
+ }
6222
+ });
6223
+ }
5691
6224
  }]);
5692
6225
  }(ParachainNode);
5693
6226
 
@@ -5724,6 +6257,11 @@ var RobonomicsKusama = /*#__PURE__*/function (_ParachainNode) {
5724
6257
  value: function transferPolkadotXCM(input) {
5725
6258
  return Promise.resolve(PolkadotXCMTransferImpl.transferPolkadotXCM(input, 'limited_reserve_transfer_assets', 'Unlimited'));
5726
6259
  }
6260
+ }, {
6261
+ key: "transferLocalNonNativeAsset",
6262
+ value: function transferLocalNonNativeAsset(options) {
6263
+ return getNode('RobonomicsPolkadot').transferLocalNonNativeAsset(options);
6264
+ }
5727
6265
  }]);
5728
6266
  }(ParachainNode);
5729
6267
 
@@ -5738,6 +6276,30 @@ var RobonomicsPolkadot = /*#__PURE__*/function (_ParachainNode) {
5738
6276
  value: function transferPolkadotXCM(input) {
5739
6277
  return Promise.resolve(PolkadotXCMTransferImpl.transferPolkadotXCM(input, 'limited_reserve_transfer_assets', 'Unlimited'));
5740
6278
  }
6279
+ }, {
6280
+ key: "transferLocalNonNativeAsset",
6281
+ value: function transferLocalNonNativeAsset(options) {
6282
+ var api = options.api,
6283
+ asset = options.asset,
6284
+ address = options.address;
6285
+ if (!isForeignAsset(asset)) {
6286
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
6287
+ }
6288
+ if (asset.assetId === undefined) {
6289
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
6290
+ }
6291
+ return api.callTxMethod({
6292
+ module: 'Assets',
6293
+ section: 'transfer',
6294
+ parameters: {
6295
+ id: BigInt(asset.assetId),
6296
+ target: {
6297
+ Id: address
6298
+ },
6299
+ amount: BigInt(asset.amount)
6300
+ }
6301
+ });
6302
+ }
5741
6303
  }]);
5742
6304
  }(ParachainNode);
5743
6305
 
@@ -5765,6 +6327,11 @@ var Shiden = /*#__PURE__*/function (_ParachainNode) {
5765
6327
  var asset = _ref.asset;
5766
6328
  return asset.symbol !== this.getNativeAssetSymbol();
5767
6329
  }
6330
+ }, {
6331
+ key: "transferLocalNonNativeAsset",
6332
+ value: function transferLocalNonNativeAsset(options) {
6333
+ return getNode('Astar').transferLocalNonNativeAsset(options);
6334
+ }
5768
6335
  }]);
5769
6336
  }(ParachainNode);
5770
6337
 
@@ -5807,6 +6374,30 @@ var Turing = /*#__PURE__*/function (_ParachainNode) {
5807
6374
  useMultiAssetTransfer: true
5808
6375
  }), BigInt(asset.assetId));
5809
6376
  }
6377
+ }, {
6378
+ key: "transferLocalNonNativeAsset",
6379
+ value: function transferLocalNonNativeAsset(options) {
6380
+ var api = options.api,
6381
+ asset = options.asset,
6382
+ address = options.address;
6383
+ if (!isForeignAsset(asset)) {
6384
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
6385
+ }
6386
+ if (asset.assetId === undefined) {
6387
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
6388
+ }
6389
+ return api.callTxMethod({
6390
+ module: 'Currencies',
6391
+ section: 'transfer',
6392
+ parameters: {
6393
+ dest: {
6394
+ Id: address
6395
+ },
6396
+ currency_id: BigInt(asset.assetId),
6397
+ amount: BigInt(asset.amount)
6398
+ }
6399
+ });
6400
+ }
5810
6401
  }]);
5811
6402
  }(ParachainNode);
5812
6403
 
@@ -5828,6 +6419,11 @@ var Unique = /*#__PURE__*/function (_ParachainNode) {
5828
6419
  }
5829
6420
  return XTokensTransferImpl.transferXTokens(input, Number(asset.assetId));
5830
6421
  }
6422
+ }, {
6423
+ key: "transferLocalNonNativeAsset",
6424
+ value: function transferLocalNonNativeAsset(_options) {
6425
+ throw new ScenarioNotSupportedError(this.node, 'ParaToPara', "".concat(this.node, " does not support foreign assets local transfers"));
6426
+ }
5831
6427
  }]);
5832
6428
  }(ParachainNode);
5833
6429
  Unique.NATIVE_ASSET_ID = 0;
@@ -5856,6 +6452,30 @@ var Zeitgeist = /*#__PURE__*/function (_ParachainNode) {
5856
6452
  var currencySelection = this.getCurrencySelection(asset);
5857
6453
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
5858
6454
  }
6455
+ }, {
6456
+ key: "transferLocalNonNativeAsset",
6457
+ value: function transferLocalNonNativeAsset(options) {
6458
+ var api = options.api,
6459
+ asset = options.asset,
6460
+ address = options.address;
6461
+ if (!isForeignAsset(asset)) {
6462
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " is not a foreign asset"));
6463
+ }
6464
+ if (asset.assetId === undefined) {
6465
+ throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no assetId"));
6466
+ }
6467
+ return api.callTxMethod({
6468
+ module: 'AssetManager',
6469
+ section: 'transfer',
6470
+ parameters: {
6471
+ dest: {
6472
+ Id: address
6473
+ },
6474
+ currency_id: this.getCurrencySelection(asset),
6475
+ amount: BigInt(asset.amount)
6476
+ }
6477
+ });
6478
+ }
5859
6479
  }]);
5860
6480
  }(ParachainNode);
5861
6481
 
@@ -6518,7 +7138,7 @@ var validateCurrency = function validateCurrency(currency, feeAsset) {
6518
7138
  }
6519
7139
  };
6520
7140
  var validateDestination = function validateDestination(origin, destination) {
6521
- if (isRelayChain(origin) && !isTMultiLocation(destination) && isRelayChain(destination)) {
7141
+ if (isRelayChain(origin) && !isTMultiLocation(destination) && isRelayChain(destination) && origin !== destination) {
6522
7142
  throw new IncompatibleNodesError('Direct relay chain to relay chain transfers are not supported. Please use Polkadot <-> Kusama bridge through AssetHub.');
6523
7143
  }
6524
7144
  if (destination === 'Ethereum' && origin !== 'AssetHubPolkadot' && origin !== 'Hydration' && origin !== 'BifrostPolkadot') {
@@ -6647,7 +7267,7 @@ var validateDestinationAddress = function validateDestinationAddress(address, de
6647
7267
 
6648
7268
  var send = /*#__PURE__*/function () {
6649
7269
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(options) {
6650
- var api, origin, currency, feeAsset, address, destination, paraIdTo, version, senderAddress, pallet, method, isBridge, assetCheckEnabled, asset, resolvedFeeAsset, overriddenAsset, resolvedAsset, originNode;
7270
+ var api, origin, currency, feeAsset, address, destination, paraIdTo, version, senderAddress, pallet, method, isBridge, assetCheckEnabled, asset, resolvedFeeAsset, isLocalTransfer, overriddenAsset, resolvedAsset, originNode;
6651
7271
  return _regeneratorRuntime().wrap(function _callee$(_context) {
6652
7272
  while (1) switch (_context.prev = _context.next) {
6653
7273
  case 0:
@@ -6656,12 +7276,6 @@ var send = /*#__PURE__*/function () {
6656
7276
  validateDestination(origin, destination);
6657
7277
  validateDestinationAddress(address, destination);
6658
7278
  if (senderAddress) validateAddress(senderAddress, origin, false);
6659
- if (!(isRelayChain(origin) && !isTMultiLocation(destination) && isRelayChain(destination))) {
6660
- _context.next = 7;
6661
- break;
6662
- }
6663
- throw new Error('Relay chain to relay chain transfers are not supported.');
6664
- case 7:
6665
7279
  isBridge = isBridgeTransfer(origin, destination);
6666
7280
  assetCheckEnabled = determineAssetCheckEnabled(origin, currency);
6667
7281
  validateAssetSpecifiers(assetCheckEnabled, currency);
@@ -6669,21 +7283,46 @@ var send = /*#__PURE__*/function () {
6669
7283
  resolvedFeeAsset = feeAsset ? resolveFeeAsset(feeAsset, origin, destination, currency) : undefined;
6670
7284
  validateAssetSupport(options, assetCheckEnabled, isBridge, asset);
6671
7285
  if (!isRelayChain(origin)) {
6672
- _context.next = 19;
7286
+ _context.next = 24;
6673
7287
  break;
6674
7288
  }
6675
7289
  if (!(destination === 'Ethereum')) {
6676
- _context.next = 16;
7290
+ _context.next = 14;
6677
7291
  break;
6678
7292
  }
6679
7293
  throw new Error('Transfers from relay chain to Ethereum are not supported.');
6680
- case 16:
7294
+ case 14:
6681
7295
  if (asset) {
6682
- _context.next = 18;
7296
+ _context.next = 16;
6683
7297
  break;
6684
7298
  }
6685
7299
  throw new Error('Asset is required for relay chain to relay chain transfers.');
6686
- case 18:
7300
+ case 16:
7301
+ isLocalTransfer = origin === destination;
7302
+ if (!isLocalTransfer) {
7303
+ _context.next = 23;
7304
+ break;
7305
+ }
7306
+ if (!isTMultiLocation(address)) {
7307
+ _context.next = 20;
7308
+ break;
7309
+ }
7310
+ throw new InvalidAddressError('Multi-Location address is not supported for local transfers.');
7311
+ case 20:
7312
+ _context.next = 22;
7313
+ return api.init(origin);
7314
+ case 22:
7315
+ return _context.abrupt("return", api.callTxMethod({
7316
+ module: 'Balances',
7317
+ section: 'transfer_keep_alive',
7318
+ parameters: {
7319
+ dest: {
7320
+ Id: address
7321
+ },
7322
+ value: 'multiasset' in currency ? 0n : BigInt(currency.amount)
7323
+ }
7324
+ }));
7325
+ case 23:
6687
7326
  return _context.abrupt("return", transferRelayToPara({
6688
7327
  api: api,
6689
7328
  origin: origin,
@@ -6697,11 +7336,11 @@ var send = /*#__PURE__*/function () {
6697
7336
  pallet: pallet,
6698
7337
  method: method
6699
7338
  }));
6700
- case 19:
7339
+ case 24:
6701
7340
  overriddenAsset = resolveOverriddenAsset(options, isBridge, assetCheckEnabled, resolvedFeeAsset);
6702
- _context.next = 22;
7341
+ _context.next = 27;
6703
7342
  return api.init(origin);
6704
- case 22:
7343
+ case 27:
6705
7344
  // In case asset check is disabled, we create asset object from currency symbol
6706
7345
  resolvedAsset = asset !== null && asset !== void 0 ? asset : {
6707
7346
  symbol: 'symbol' in currency ? currency.symbol : undefined
@@ -6722,7 +7361,7 @@ var send = /*#__PURE__*/function () {
6722
7361
  pallet: pallet,
6723
7362
  method: method
6724
7363
  }));
6725
- case 25:
7364
+ case 30:
6726
7365
  case "end":
6727
7366
  return _context.stop();
6728
7367
  }
@@ -6976,6 +7615,7 @@ var GeneralBuilder = /*#__PURE__*/function () {
6976
7615
  key: "build",
6977
7616
  value: (function () {
6978
7617
  var _build = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
7618
+ var _this$_options, from, to;
6979
7619
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
6980
7620
  while (1) switch (_context2.prev = _context2.next) {
6981
7621
  case 0:
@@ -6985,16 +7625,17 @@ var GeneralBuilder = /*#__PURE__*/function () {
6985
7625
  }
6986
7626
  throw new Error('Transaction manager contains batched items. Use buildBatch() to process them.');
6987
7627
  case 2:
6988
- if (!(!isTMultiLocation(this._options.to) && isRelayChain(this._options.from) && isRelayChain(this._options.to))) {
6989
- _context2.next = 4;
7628
+ _this$_options = this._options, from = _this$_options.from, to = _this$_options.to;
7629
+ if (!(!isTMultiLocation(to) && isRelayChain(from) && isRelayChain(to) && from !== to)) {
7630
+ _context2.next = 5;
6990
7631
  break;
6991
7632
  }
6992
7633
  throw new Error('Transfers between relay chains are not yet supported.');
6993
- case 4:
7634
+ case 5:
6994
7635
  return _context2.abrupt("return", send(_objectSpread2({
6995
7636
  api: this.api
6996
7637
  }, this._options)));
6997
- case 5:
7638
+ case 6:
6998
7639
  case "end":
6999
7640
  return _context2.stop();
7000
7641
  }