@paraspell/sdk-core 11.8.5 → 11.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  import { blake2b } from '@noble/hashes/blake2';
2
- import { isChainEvm, getAssetsObject, InvalidCurrencyError, isForeignAsset, extractAssetLocation, findAssetInfoOrThrow, getNativeAssetSymbol, getOtherAssets, isAssetEqual, findNativeAssetInfoOrThrow, findAssetInfo, isTAsset, getExistentialDeposit, getExistentialDepositOrThrow, isSymbolMatch, hasDryRunSupport, isOverrideLocationSpecifier, findAssetInfoByLoc, findAssetOnDestOrThrow, Native, hasXcmPaymentApiSupport, getRelayChainSymbol, findNativeAssetInfo, isAssetXcEqual, hasSupportForAsset, isSymbolSpecifier, normalizeLocation, getEdFromAssetOrThrow, normalizeSymbol } from '@paraspell/assets';
2
+ import { isChainEvm, getAssetsObject, InvalidCurrencyError, isForeignAsset, extractAssetLocation, findAssetInfoOrThrow, getNativeAssetSymbol, getOtherAssets, isAssetEqual, findNativeAssetInfoOrThrow, findAssetInfo, isTAsset, getExistentialDepositOrThrow, isSymbolMatch, hasDryRunSupport, isOverrideLocationSpecifier, findAssetInfoByLoc, findAssetOnDestOrThrow, Native, hasXcmPaymentApiSupport, getExistentialDeposit, getRelayChainSymbol, findNativeAssetInfo, isAssetXcEqual, hasSupportForAsset, isSymbolSpecifier, normalizeLocation, getEdFromAssetOrThrow, normalizeSymbol } from '@paraspell/assets';
3
3
  export * from '@paraspell/assets';
4
4
  import { base58 } from '@scure/base';
5
5
  import { isAddress, parseUnits, createPublicClient, http, getContract, pad, toHex, getAddress, concat, keccak256 } from 'viem';
6
6
  import { getSupportedPalletsDetails, getDefaultPallet, getSupportedPallets, getNativeAssetsPallet, getOtherAssetsPallets } from '@paraspell/pallets';
7
7
  export * from '@paraspell/pallets';
8
- import { replaceBigInt, isTLocation, Version, hasJunction, getJunctionValue, isRelayChain, Parents, PARACHAINS, deepEqual, isTrustedChain, isExternalChain, isDotKsmBridge } from '@paraspell/sdk-common';
8
+ import { replaceBigInt, isTLocation, Version, hasJunction, getJunctionValue, isRelayChain, Parents, PARACHAINS, deepEqual, isTrustedChain, isExternalChain, isDotKsmBridge, isSystemChain } from '@paraspell/sdk-common';
9
9
  export * from '@paraspell/sdk-common';
10
10
  import { moonbeam, moonriver, mainnet } from 'viem/chains';
11
11
 
@@ -772,6 +772,20 @@ var createVersionedAssets = function createVersionedAssets(version, amount, loca
772
772
  return addXcmVersionHeader([asset], version);
773
773
  };
774
774
 
775
+ var getCurrencySelection = function getCurrencySelection(asset) {
776
+ if (asset.location) return {
777
+ location: asset.location
778
+ };
779
+ if (isForeignAsset(asset) && asset.assetId) {
780
+ return {
781
+ id: asset.assetId
782
+ };
783
+ }
784
+ return {
785
+ symbol: asset.symbol
786
+ };
787
+ };
788
+
775
789
  var maybeOverrideAssets = function maybeOverrideAssets(version, amount, assets, overriddenCurrency) {
776
790
  if (!overriddenCurrency) {
777
791
  return assets;
@@ -847,35 +861,54 @@ var computeOverridenAmount = function computeOverridenAmount(options, increaseAm
847
861
  return parseUnits(increaseAmount, asset.decimals) + BigInt(amount);
848
862
  }
849
863
  };
850
- var overrideTxAmount = function overrideTxAmount(options, builder, amount) {
851
- var modifiedBuilder = builder.currency(_objectSpread2(_objectSpread2({}, options.currency), {}, {
852
- amount: computeOverridenAmount(options, amount)
853
- }));
854
- return modifiedBuilder['buildInternal']();
855
- };
856
- var createTx = /*#__PURE__*/function () {
864
+ var overrideTxAmount = /*#__PURE__*/function () {
857
865
  var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options, builder, amount) {
866
+ var modifiedBuilder, _yield$modifiedBuilde, tx;
858
867
  return _regenerator().w(function (_context) {
859
868
  while (1) switch (_context.n) {
869
+ case 0:
870
+ modifiedBuilder = builder.currency(_objectSpread2(_objectSpread2({}, options.currency), {}, {
871
+ amount: computeOverridenAmount(options, amount)
872
+ }));
873
+ _context.n = 1;
874
+ return modifiedBuilder['buildInternal']();
875
+ case 1:
876
+ _yield$modifiedBuilde = _context.v;
877
+ tx = _yield$modifiedBuilde.tx;
878
+ return _context.a(2, tx);
879
+ }
880
+ }, _callee);
881
+ }));
882
+ return function overrideTxAmount(_x, _x2, _x3) {
883
+ return _ref.apply(this, arguments);
884
+ };
885
+ }();
886
+ var createTx = /*#__PURE__*/function () {
887
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options, builder, amount) {
888
+ var _yield$builder$buildI, tx;
889
+ return _regenerator().w(function (_context2) {
890
+ while (1) switch (_context2.n) {
860
891
  case 0:
861
892
  if (!(amount === undefined)) {
862
- _context.n = 2;
893
+ _context2.n = 2;
863
894
  break;
864
895
  }
865
- _context.n = 1;
896
+ _context2.n = 1;
866
897
  return builder['buildInternal']();
867
898
  case 1:
868
- return _context.a(2, _context.v);
899
+ _yield$builder$buildI = _context2.v;
900
+ tx = _yield$builder$buildI.tx;
901
+ return _context2.a(2, tx);
869
902
  case 2:
870
- _context.n = 3;
903
+ _context2.n = 3;
871
904
  return overrideTxAmount(options, builder, amount);
872
905
  case 3:
873
- return _context.a(2, _context.v);
906
+ return _context2.a(2, _context2.v);
874
907
  }
875
- }, _callee);
908
+ }, _callee2);
876
909
  }));
877
- return function createTx(_x, _x2, _x3) {
878
- return _ref.apply(this, arguments);
910
+ return function createTx(_x4, _x5, _x6) {
911
+ return _ref2.apply(this, arguments);
879
912
  };
880
913
  }();
881
914
 
@@ -909,7 +942,7 @@ var getRelayChainOf = function getRelayChainOf(chain) {
909
942
  };
910
943
 
911
944
  var AssetHubPolkadot$1 = {
912
- name: "AssetHub",
945
+ name: "Asset Hub",
913
946
  info: "PolkadotAssetHub",
914
947
  paraId: 1000,
915
948
  providers: [
@@ -1010,10 +1043,6 @@ var Astar$1 = {
1010
1043
  name: "Astar",
1011
1044
  endpoint: "wss://rpc.astar.network"
1012
1045
  },
1013
- {
1014
- name: "Automata 1RPC",
1015
- endpoint: "wss://1rpc.io/astr"
1016
- },
1017
1046
  {
1018
1047
  name: "Blast",
1019
1048
  endpoint: "wss://astar.public.blastapi.io"
@@ -1052,15 +1081,11 @@ var BifrostPolkadot$1 = {
1052
1081
  {
1053
1082
  name: "LiebiEU",
1054
1083
  endpoint: "wss://eu.bifrost-polkadot-rpc.liebi.com/ws"
1055
- },
1056
- {
1057
- name: "RadiumBlock",
1058
- endpoint: "wss://bifrost.public.curie.radiumblock.co/ws"
1059
1084
  }
1060
1085
  ]
1061
1086
  };
1062
1087
  var BridgeHubPolkadot$1 = {
1063
- name: "BridgeHub",
1088
+ name: "Bridge Hub",
1064
1089
  info: "polkadotBridgeHub",
1065
1090
  paraId: 1002,
1066
1091
  providers: [
@@ -1209,16 +1234,16 @@ var Interlay$1 = {
1209
1234
  };
1210
1235
  var Heima$1 = {
1211
1236
  name: "Heima",
1212
- info: "litentry",
1237
+ info: "heima",
1213
1238
  paraId: 2013,
1214
1239
  providers: [
1215
1240
  {
1216
1241
  name: "Dwellir",
1217
- endpoint: "wss://litentry-rpc.dwellir.com"
1242
+ endpoint: "wss://heima-rpc.n.dwellir.com"
1218
1243
  },
1219
1244
  {
1220
- name: "Litentry",
1221
- endpoint: "wss://rpc.litentry-parachain.litentry.io"
1245
+ name: "Heima",
1246
+ endpoint: "wss://rpc.heima-parachain.heima.network"
1222
1247
  }
1223
1248
  ]
1224
1249
  };
@@ -1643,7 +1668,7 @@ var Xode$1 = {
1643
1668
  ]
1644
1669
  };
1645
1670
  var AssetHubKusama$1 = {
1646
- name: "AssetHub",
1671
+ name: "Asset Hub",
1647
1672
  info: "KusamaAssetHub",
1648
1673
  paraId: 1000,
1649
1674
  providers: [
@@ -1686,7 +1711,7 @@ var AssetHubKusama$1 = {
1686
1711
  ]
1687
1712
  };
1688
1713
  var BridgeHubKusama$1 = {
1689
- name: "BridgeHub",
1714
+ name: "Bridge Hub",
1690
1715
  info: "kusamaBridgeHub",
1691
1716
  paraId: 1002,
1692
1717
  providers: [
@@ -1988,10 +2013,6 @@ var Quartz$1 = {
1988
2013
  name: "Geo Load Balancer",
1989
2014
  endpoint: "wss://ws-quartz.unique.network"
1990
2015
  },
1991
- {
1992
- name: "Unique Asia",
1993
- endpoint: "wss://asia-ws-quartz.unique.network"
1994
- },
1995
2016
  {
1996
2017
  name: "Unique Europe",
1997
2018
  endpoint: "wss://eu-ws-quartz.unique.network"
@@ -2083,7 +2104,7 @@ var Zeitgeist$1 = {
2083
2104
  ]
2084
2105
  };
2085
2106
  var AssetHubWestend$1 = {
2086
- name: "AssetHub",
2107
+ name: "Asset Hub",
2087
2108
  info: "WestendAssetHub",
2088
2109
  paraId: 1000,
2089
2110
  providers: [
@@ -2106,7 +2127,7 @@ var AssetHubWestend$1 = {
2106
2127
  ]
2107
2128
  };
2108
2129
  var BridgeHubWestend$1 = {
2109
- name: "BridgeHub",
2130
+ name: "Bridge Hub",
2110
2131
  info: "westendBridgeHub",
2111
2132
  paraId: 1002,
2112
2133
  providers: [
@@ -2196,7 +2217,7 @@ var AjunaPaseo$1 = {
2196
2217
  ]
2197
2218
  };
2198
2219
  var AssetHubPaseo$1 = {
2199
- name: "AssetHub",
2220
+ name: "Asset Hub",
2200
2221
  info: "PaseoAssetHub",
2201
2222
  paraId: 1000,
2202
2223
  providers: [
@@ -2234,7 +2255,7 @@ var BifrostPaseo$1 = {
2234
2255
  ]
2235
2256
  };
2236
2257
  var BridgeHubPaseo$1 = {
2237
- name: "BridgeHub",
2258
+ name: "Bridge Hub",
2238
2259
  info: "PaseoBridgeHub",
2239
2260
  paraId: 1002,
2240
2261
  providers: [
@@ -2401,7 +2422,7 @@ var ZeitgeistPaseo$1 = {
2401
2422
  ]
2402
2423
  };
2403
2424
  var Polkadot = {
2404
- name: "Polkadot",
2425
+ name: "Polkadot Relay",
2405
2426
  info: "polkadot",
2406
2427
  paraId: 0,
2407
2428
  providers: [
@@ -2464,7 +2485,7 @@ var Polkadot = {
2464
2485
  ]
2465
2486
  };
2466
2487
  var Kusama = {
2467
- name: "Kusama",
2488
+ name: "Kusama Relay",
2468
2489
  info: "kusama",
2469
2490
  paraId: 0,
2470
2491
  providers: [
@@ -2515,7 +2536,7 @@ var Kusama = {
2515
2536
  ]
2516
2537
  };
2517
2538
  var Westend = {
2518
- name: "Westend",
2539
+ name: "Westend Relay",
2519
2540
  info: "westend",
2520
2541
  paraId: 0,
2521
2542
  providers: [
@@ -2542,7 +2563,7 @@ var Westend = {
2542
2563
  ]
2543
2564
  };
2544
2565
  var Paseo = {
2545
- name: "Paseo",
2566
+ name: "Paseo Relay",
2546
2567
  info: "paseo",
2547
2568
  paraId: 0,
2548
2569
  providers: [
@@ -3292,6 +3313,7 @@ var getAssetReserveChain = function getAssetReserveChain(chain, destChain, asset
3292
3313
  Here: null
3293
3314
  }
3294
3315
  })) {
3316
+ if (relaychain === 'Paseo') return ahChain;
3295
3317
  return CHAINS_DOT_RESERVE_AH.has(destChain) ? ahChain : relaychain;
3296
3318
  }
3297
3319
  return chain;
@@ -3751,7 +3773,7 @@ var determineAddress = function determineAddress(chain, address, senderAddress)
3751
3773
  };
3752
3774
  var getReverseTxFee = /*#__PURE__*/function () {
3753
3775
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref, currencyInput) {
3754
- var api, origin, destination, senderAddress, address, toAddress, fromAddress, tx, rawFee;
3776
+ var api, origin, destination, senderAddress, address, toAddress, fromAddress, _yield$Builder$from$t, tx, rawFee;
3755
3777
  return _regenerator().w(function (_context) {
3756
3778
  while (1) switch (_context.n) {
3757
3779
  case 0:
@@ -3761,7 +3783,8 @@ var getReverseTxFee = /*#__PURE__*/function () {
3761
3783
  _context.n = 1;
3762
3784
  return Builder(api).from(destination).to(origin).address(toAddress).senderAddress(fromAddress).currency(currencyInput)['buildInternal']();
3763
3785
  case 1:
3764
- tx = _context.v;
3786
+ _yield$Builder$from$t = _context.v;
3787
+ tx = _yield$Builder$from$t.tx;
3765
3788
  _context.n = 2;
3766
3789
  return api.calculateTransactionFee(tx, fromAddress);
3767
3790
  case 2:
@@ -3775,49 +3798,6 @@ var getReverseTxFee = /*#__PURE__*/function () {
3775
3798
  };
3776
3799
  }();
3777
3800
 
3778
- var AssetsPallet = /*#__PURE__*/function () {
3779
- function AssetsPallet() {
3780
- _classCallCheck(this, AssetsPallet);
3781
- }
3782
- return _createClass(AssetsPallet, [{
3783
- key: "mint",
3784
- value: function mint(address, asset, _balance, chain) {
3785
- assertHasId(asset);
3786
- var assetId = asset.assetId,
3787
- amount = asset.amount;
3788
- var id = chain === 'Astar' || chain === 'Shiden' || chain === 'Moonbeam' ? BigInt(assetId) : Number(assetId);
3789
- var addr = isChainEvm(chain) ? address : {
3790
- Id: address
3791
- };
3792
- return Promise.resolve({
3793
- assetStatusTx: {
3794
- module: 'Assets',
3795
- method: 'force_asset_status',
3796
- parameters: {
3797
- id: id,
3798
- owner: addr,
3799
- issuer: addr,
3800
- admin: addr,
3801
- freezer: addr,
3802
- min_balance: 0n,
3803
- is_sufficient: true,
3804
- is_frozen: false
3805
- }
3806
- },
3807
- balanceTx: {
3808
- module: 'Assets',
3809
- method: 'mint',
3810
- parameters: {
3811
- id: id,
3812
- beneficiary: addr,
3813
- amount: amount
3814
- }
3815
- }
3816
- });
3817
- }
3818
- }]);
3819
- }();
3820
-
3821
3801
  // Inspired by Moonbeam XCM-SDK
3822
3802
  // https://github.com/moonbeam-foundation/xcm-sdk/blob/ab835c15bf41612604b1c858d956a9f07705ed65/packages/utils/src/format/asset.ts#L1
3823
3803
  var formatAssetIdToERC20 = function formatAssetIdToERC20(id) {
@@ -3898,7 +3878,7 @@ var getBalanceForeignPolkadotXcm = /*#__PURE__*/function () {
3898
3878
  assertHasLocation(asset);
3899
3879
  return _context.a(2, api.getBalanceForeignAssetsPallet(address, asset.location));
3900
3880
  case 3:
3901
- if (!(chain === 'AssetHubPolkadot')) {
3881
+ if (!chain.startsWith('AssetHub')) {
3902
3882
  _context.n = 5;
3903
3883
  break;
3904
3884
  }
@@ -3912,7 +3892,7 @@ var getBalanceForeignPolkadotXcm = /*#__PURE__*/function () {
3912
3892
  case 4:
3913
3893
  return _context.a(2, api.getBalanceForeignAssetsPallet(address, asset.location));
3914
3894
  case 5:
3915
- return _context.a(2, api.getBalanceForeignPolkadotXcm(address, asset.assetId));
3895
+ return _context.a(2, api.getBalanceForeignPolkadotXcm(chain, address, asset));
3916
3896
  }
3917
3897
  }, _callee);
3918
3898
  }));
@@ -4025,7 +4005,7 @@ var getBalanceForeignInternal = /*#__PURE__*/function () {
4025
4005
  }
4026
4006
  return _context.a(2, getBalanceForeignXTokens(api, chain, address, asset));
4027
4007
  case 3:
4028
- if (!(defaultPallet === 'PolkadotXcm')) {
4008
+ if (!(defaultPallet === 'PolkadotXcm' || defaultPallet === 'XTransfer')) {
4029
4009
  _context.n = 4;
4030
4010
  break;
4031
4011
  }
@@ -4240,77 +4220,6 @@ var getAssetBalance = /*#__PURE__*/function () {
4240
4220
  };
4241
4221
  }();
4242
4222
 
4243
- var getOriginFeeDetailsInternal = /*#__PURE__*/function () {
4244
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
4245
- var _getExistentialDeposi;
4246
- var api, account, accountDestination, ahAddress, currency, origin, destination, _ref$feeMarginPercent, feeMarginPercentage, tx, xcmFee, xcmFeeWithMargin, nativeBalance, existentialDeposit, sufficientForXCM;
4247
- return _regenerator().w(function (_context) {
4248
- while (1) switch (_context.n) {
4249
- case 0:
4250
- api = _ref.api, account = _ref.account, accountDestination = _ref.accountDestination, ahAddress = _ref.ahAddress, currency = _ref.currency, origin = _ref.origin, destination = _ref.destination, _ref$feeMarginPercent = _ref.feeMarginPercentage, feeMarginPercentage = _ref$feeMarginPercent === void 0 ? 10 : _ref$feeMarginPercent;
4251
- _context.n = 1;
4252
- return api.init(origin);
4253
- case 1:
4254
- _context.n = 2;
4255
- return Builder(api).from(origin).to(destination).currency(currency).address(accountDestination).senderAddress(account).ahAddress(ahAddress)['buildInternal']();
4256
- case 2:
4257
- tx = _context.v;
4258
- _context.n = 3;
4259
- return api.calculateTransactionFee(tx, account);
4260
- case 3:
4261
- xcmFee = _context.v;
4262
- xcmFeeWithMargin = xcmFee + xcmFee / BigInt(feeMarginPercentage);
4263
- _context.n = 4;
4264
- return getBalanceNativeInternal({
4265
- address: account,
4266
- chain: origin,
4267
- api: api
4268
- });
4269
- case 4:
4270
- nativeBalance = _context.v;
4271
- existentialDeposit = BigInt((_getExistentialDeposi = getExistentialDeposit(origin)) !== null && _getExistentialDeposi !== void 0 ? _getExistentialDeposi : '0');
4272
- sufficientForXCM = nativeBalance - existentialDeposit - xcmFeeWithMargin > 0;
4273
- return _context.a(2, {
4274
- sufficientForXCM: sufficientForXCM,
4275
- xcmFee: xcmFee
4276
- });
4277
- }
4278
- }, _callee);
4279
- }));
4280
- return function getOriginFeeDetailsInternal(_x) {
4281
- return _ref2.apply(this, arguments);
4282
- };
4283
- }();
4284
- var getOriginFeeDetails = /*#__PURE__*/function () {
4285
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options) {
4286
- var api;
4287
- return _regenerator().w(function (_context2) {
4288
- while (1) switch (_context2.p = _context2.n) {
4289
- case 0:
4290
- api = options.api;
4291
- api.setDisconnectAllowed(false);
4292
- _context2.p = 1;
4293
- _context2.n = 2;
4294
- return getOriginFeeDetailsInternal(options);
4295
- case 2:
4296
- return _context2.a(2, _context2.v);
4297
- case 3:
4298
- _context2.p = 3;
4299
- api.setDisconnectAllowed(true);
4300
- _context2.n = 4;
4301
- return api.disconnect();
4302
- case 4:
4303
- return _context2.f(3);
4304
- case 5:
4305
- return _context2.a(2);
4306
- }
4307
- }, _callee2, null, [[1,, 3, 5]]);
4308
- }));
4309
- return function getOriginFeeDetails(_x2) {
4310
- return _ref3.apply(this, arguments);
4311
- };
4312
- }();
4313
-
4314
4223
  var isSufficientOrigin = /*#__PURE__*/function () {
4315
4224
  var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api, origin, destination, senderAddress, feeNative, currency, asset, feeAsset) {
4316
4225
  var edNative, balanceNative, isNativeAssetToOrigin, isNativeAssetToDest, isSufficientNative, balanceAsset, edAsset, isSufficientAsset;
@@ -4498,7 +4407,7 @@ var getDestXcmFee = /*#__PURE__*/function () {
4498
4407
  _context2.n = 5;
4499
4408
  break;
4500
4409
  }
4501
- throw _t2;
4410
+ return _context2.a(2, 0n);
4502
4411
  case 5:
4503
4412
  _context2.n = 6;
4504
4413
  return attempt(swapConfig.exchangeChain, swapConfig.currencyTo, swapConfig.amountOut);
@@ -4541,7 +4450,7 @@ var getDestXcmFee = /*#__PURE__*/function () {
4541
4450
  asset: asset,
4542
4451
  originFee: originFee,
4543
4452
  feeAsset: resolvedFeeAsset,
4544
- amount: currency.amount < 2n ? 2n : currency.amount
4453
+ amount: currency.amount < MIN_AMOUNT ? MIN_AMOUNT : currency.amount
4545
4454
  });
4546
4455
  case 4:
4547
4456
  dryRunResult = _context3.v;
@@ -5933,20 +5842,15 @@ var handleToAhTeleport = /*#__PURE__*/function () {
5933
5842
  while (1) switch (_context.n) {
5934
5843
  case 0:
5935
5844
  api = input.api, destination = input.destination, address = input.address, senderAddress = input.senderAddress, asset = input.assetInfo, currency = input.currency;
5936
- if (!isTLocation(destination)) {
5937
- _context.n = 1;
5938
- break;
5939
- }
5940
- throw new InvalidParameterError('Location destination is not supported for this scenario');
5941
- case 1:
5845
+ assertToIsString(destination, 'Location destination is not supported for AH teleport.');
5942
5846
  if (!isTLocation(address)) {
5943
- _context.n = 2;
5847
+ _context.n = 1;
5944
5848
  break;
5945
5849
  }
5946
5850
  throw new InvalidParameterError('Location address is not supported for this scenario');
5947
- case 2:
5851
+ case 1:
5948
5852
  assertSenderAddress(senderAddress);
5949
- _context.n = 3;
5853
+ _context.n = 2;
5950
5854
  return dryRunInternal({
5951
5855
  api: api,
5952
5856
  tx: defaultTx,
@@ -5956,19 +5860,19 @@ var handleToAhTeleport = /*#__PURE__*/function () {
5956
5860
  address: address,
5957
5861
  currency: currency
5958
5862
  });
5959
- case 3:
5863
+ case 2:
5960
5864
  dryRunResult = _context.v;
5961
5865
  if (!((_dryRunResult$destina = dryRunResult.destination) !== null && _dryRunResult$destina !== void 0 && _dryRunResult$destina.success)) {
5962
- _context.n = 4;
5866
+ _context.n = 3;
5963
5867
  break;
5964
5868
  }
5965
5869
  return _context.a(2, defaultTx);
5966
- case 4:
5870
+ case 3:
5967
5871
  // If the default tx dry run failed, we need to create execute transaction
5968
5872
  dummyTx = createExecuteExchangeXcm(input, origin, MAX_WEIGHT,
5969
5873
  // Enter dummy fee values just to get the dry run to pass
5970
5874
  asset.amount, asset.amount / 2n);
5971
- _context.n = 5;
5875
+ _context.n = 4;
5972
5876
  return getXcmFeeInternal({
5973
5877
  api: api,
5974
5878
  tx: dummyTx,
@@ -5980,7 +5884,7 @@ var handleToAhTeleport = /*#__PURE__*/function () {
5980
5884
  disableFallback: false,
5981
5885
  useRootOrigin: true
5982
5886
  });
5983
- case 5:
5887
+ case 4:
5984
5888
  feeResult = _context.v;
5985
5889
  originExecutionFee = padFeeBy(feeResult.origin.fee, 20); // Pad by 20%
5986
5890
  destinationExecutionFee = padFeeBy(
@@ -6155,40 +6059,162 @@ var transferXTokens = function transferXTokens(input, currencySelection) {
6155
6059
  return api.callTxMethod(call);
6156
6060
  };
6157
6061
 
6158
- var supportsXTokens = function supportsXTokens(obj) {
6159
- return _typeof(obj) === 'object' && obj !== null && 'transferXTokens' in obj;
6160
- };
6161
- var supportsXTransfer = function supportsXTransfer(obj) {
6162
- return _typeof(obj) === 'object' && obj !== null && 'transferXTransfer' in obj;
6163
- };
6164
- var supportsPolkadotXCM = function supportsPolkadotXCM(obj) {
6165
- return _typeof(obj) === 'object' && obj !== null && 'transferPolkadotXCM' in obj;
6166
- };
6167
- var Parachain = /*#__PURE__*/function () {
6168
- function Parachain(chain, info, ecosystem, version) {
6169
- _classCallCheck(this, Parachain);
6170
- this._info = info;
6171
- this._ecosystem = ecosystem;
6172
- this._chain = chain;
6173
- this._version = version;
6062
+ var BaseAssetsPallet = /*#__PURE__*/_createClass(function BaseAssetsPallet(palletName) {
6063
+ _classCallCheck(this, BaseAssetsPallet);
6064
+ this.palletName = palletName;
6065
+ });
6066
+
6067
+ var AssetsPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
6068
+ function AssetsPallet() {
6069
+ _classCallCheck(this, AssetsPallet);
6070
+ return _callSuper(this, AssetsPallet, arguments);
6174
6071
  }
6175
- return _createClass(Parachain, [{
6176
- key: "info",
6177
- get: function get() {
6178
- return this._info;
6179
- }
6180
- }, {
6181
- key: "ecosystem",
6182
- get: function get() {
6183
- return this._ecosystem;
6184
- }
6185
- }, {
6186
- key: "chain",
6187
- get: function get() {
6188
- return this._chain;
6072
+ _inherits(AssetsPallet, _BaseAssetsPallet);
6073
+ return _createClass(AssetsPallet, [{
6074
+ key: "mint",
6075
+ value: function mint(address, asset, _balance, chain) {
6076
+ assertHasId(asset);
6077
+ var assetId = asset.assetId,
6078
+ amount = asset.amount;
6079
+ var id = chain === 'Astar' || chain === 'Shiden' || chain === 'Moonbeam' ? BigInt(assetId) : Number(assetId);
6080
+ var addr = isChainEvm(chain) ? address : {
6081
+ Id: address
6082
+ };
6083
+ return Promise.resolve({
6084
+ assetStatusTx: {
6085
+ module: this.palletName,
6086
+ method: 'force_asset_status',
6087
+ parameters: {
6088
+ id: id,
6089
+ owner: addr,
6090
+ issuer: addr,
6091
+ admin: addr,
6092
+ freezer: addr,
6093
+ min_balance: 0n,
6094
+ is_sufficient: true,
6095
+ is_frozen: false
6096
+ }
6097
+ },
6098
+ balanceTx: {
6099
+ module: this.palletName,
6100
+ method: 'mint',
6101
+ parameters: {
6102
+ id: id,
6103
+ beneficiary: addr,
6104
+ amount: amount
6105
+ }
6106
+ }
6107
+ });
6189
6108
  }
6190
- }, {
6191
- key: "version",
6109
+ }]);
6110
+ }(BaseAssetsPallet);
6111
+
6112
+ var getOriginFeeDetailsInternal = /*#__PURE__*/function () {
6113
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
6114
+ var _getExistentialDeposi;
6115
+ var api, account, accountDestination, ahAddress, currency, origin, destination, _ref$feeMarginPercent, feeMarginPercentage, _yield$Builder$from$t, tx, xcmFee, xcmFeeWithMargin, nativeBalance, existentialDeposit, sufficientForXCM;
6116
+ return _regenerator().w(function (_context) {
6117
+ while (1) switch (_context.n) {
6118
+ case 0:
6119
+ api = _ref.api, account = _ref.account, accountDestination = _ref.accountDestination, ahAddress = _ref.ahAddress, currency = _ref.currency, origin = _ref.origin, destination = _ref.destination, _ref$feeMarginPercent = _ref.feeMarginPercentage, feeMarginPercentage = _ref$feeMarginPercent === void 0 ? 10 : _ref$feeMarginPercent;
6120
+ _context.n = 1;
6121
+ return api.init(origin);
6122
+ case 1:
6123
+ _context.n = 2;
6124
+ return Builder(api).from(origin).to(destination).currency(currency).address(accountDestination).senderAddress(account).ahAddress(ahAddress)['buildInternal']();
6125
+ case 2:
6126
+ _yield$Builder$from$t = _context.v;
6127
+ tx = _yield$Builder$from$t.tx;
6128
+ _context.n = 3;
6129
+ return api.calculateTransactionFee(tx, account);
6130
+ case 3:
6131
+ xcmFee = _context.v;
6132
+ xcmFeeWithMargin = xcmFee + xcmFee / BigInt(feeMarginPercentage);
6133
+ _context.n = 4;
6134
+ return getBalanceNativeInternal({
6135
+ address: account,
6136
+ chain: origin,
6137
+ api: api
6138
+ });
6139
+ case 4:
6140
+ nativeBalance = _context.v;
6141
+ existentialDeposit = BigInt((_getExistentialDeposi = getExistentialDeposit(origin)) !== null && _getExistentialDeposi !== void 0 ? _getExistentialDeposi : '0');
6142
+ sufficientForXCM = nativeBalance - existentialDeposit - xcmFeeWithMargin > 0;
6143
+ return _context.a(2, {
6144
+ sufficientForXCM: sufficientForXCM,
6145
+ xcmFee: xcmFee
6146
+ });
6147
+ }
6148
+ }, _callee);
6149
+ }));
6150
+ return function getOriginFeeDetailsInternal(_x) {
6151
+ return _ref2.apply(this, arguments);
6152
+ };
6153
+ }();
6154
+ var getOriginFeeDetails = /*#__PURE__*/function () {
6155
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options) {
6156
+ var api;
6157
+ return _regenerator().w(function (_context2) {
6158
+ while (1) switch (_context2.p = _context2.n) {
6159
+ case 0:
6160
+ api = options.api;
6161
+ api.setDisconnectAllowed(false);
6162
+ _context2.p = 1;
6163
+ _context2.n = 2;
6164
+ return getOriginFeeDetailsInternal(options);
6165
+ case 2:
6166
+ return _context2.a(2, _context2.v);
6167
+ case 3:
6168
+ _context2.p = 3;
6169
+ api.setDisconnectAllowed(true);
6170
+ _context2.n = 4;
6171
+ return api.disconnect();
6172
+ case 4:
6173
+ return _context2.f(3);
6174
+ case 5:
6175
+ return _context2.a(2);
6176
+ }
6177
+ }, _callee2, null, [[1,, 3, 5]]);
6178
+ }));
6179
+ return function getOriginFeeDetails(_x2) {
6180
+ return _ref3.apply(this, arguments);
6181
+ };
6182
+ }();
6183
+
6184
+ var supportsXTokens = function supportsXTokens(obj) {
6185
+ return _typeof(obj) === 'object' && obj !== null && 'transferXTokens' in obj;
6186
+ };
6187
+ var supportsXTransfer = function supportsXTransfer(obj) {
6188
+ return _typeof(obj) === 'object' && obj !== null && 'transferXTransfer' in obj;
6189
+ };
6190
+ var supportsPolkadotXCM = function supportsPolkadotXCM(obj) {
6191
+ return _typeof(obj) === 'object' && obj !== null && 'transferPolkadotXCM' in obj;
6192
+ };
6193
+ var Parachain = /*#__PURE__*/function () {
6194
+ function Parachain(chain, info, ecosystem, version) {
6195
+ _classCallCheck(this, Parachain);
6196
+ this._info = info;
6197
+ this._ecosystem = ecosystem;
6198
+ this._chain = chain;
6199
+ this._version = version;
6200
+ }
6201
+ return _createClass(Parachain, [{
6202
+ key: "info",
6203
+ get: function get() {
6204
+ return this._info;
6205
+ }
6206
+ }, {
6207
+ key: "ecosystem",
6208
+ get: function get() {
6209
+ return this._ecosystem;
6210
+ }
6211
+ }, {
6212
+ key: "chain",
6213
+ get: function get() {
6214
+ return this._chain;
6215
+ }
6216
+ }, {
6217
+ key: "version",
6192
6218
  get: function get() {
6193
6219
  return this._version;
6194
6220
  }
@@ -6203,7 +6229,7 @@ var Parachain = /*#__PURE__*/function () {
6203
6229
  key: "transfer",
6204
6230
  value: function () {
6205
6231
  var _transfer = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(sendOptions) {
6206
- var api, asset, currency, feeAsset, feeCurrency, address, destination, paraIdTo, overriddenAsset, version, senderAddress, ahAddress, pallet, method, scenario, paraId, destChain, isLocalTransfer, isRelayAsset, supportsTypeThen, useTypeAndThen, isBifrostOrigin, isJamtonOrigin, isAssetHubDest, useMultiAssets, input, options, shouldUseTeleport, isAhToOtherPara, isOtherParaToAh, isAllowedAhTransfer, isAHPOrigin, isAHPDest, isExternalAsset, isEthDest, isExternalAssetViaAh, isExternalAssetToAh, call;
6232
+ var api, asset, currency, feeAsset, feeCurrency, address, destination, paraIdTo, overriddenAsset, version, senderAddress, ahAddress, pallet, method, scenario, paraId, destChain, isLocalTransfer, isRelayAsset, supportsTypeThen, useTypeAndThen, isBifrostOrigin, isJamtonOrigin, isAssetHubDest, useMultiAssets, input, options, shouldUseTeleport, isAhToOtherPara, isOtherParaToAh, isAllowedAhTransfer, isAHPOrigin, isAHPDest, isExternalAsset, isEthDest, isExternalAssetViaAh, isExternalAssetToAh, call, _t;
6207
6233
  return _regenerator().w(function (_context) {
6208
6234
  while (1) switch (_context.n) {
6209
6235
  case 0:
@@ -6226,7 +6252,7 @@ var Parachain = /*#__PURE__*/function () {
6226
6252
  case 2:
6227
6253
  this.throwIfTempDisabled(sendOptions, destChain);
6228
6254
  this.throwIfCantReceive(destChain);
6229
- isRelayAsset = deepEqual(asset.location, RELAY_LOCATION);
6255
+ isRelayAsset = deepEqual(asset.location, RELAY_LOCATION) && isSymbolMatch(getRelayChainSymbol(this.chain), asset.symbol);
6230
6256
  _context.n = 3;
6231
6257
  return api.hasMethod('PolkadotXcm', 'transfer_assets_using_type_and_then');
6232
6258
  case 3:
@@ -6237,7 +6263,7 @@ var Parachain = /*#__PURE__*/function () {
6237
6263
  }
6238
6264
  throw new InvalidParameterError('Relaychain assets can only be transferred using the type-and-then method which is not supported by this chain');
6239
6265
  case 4:
6240
- useTypeAndThen = isRelayAsset && supportsTypeThen && destChain && (!isTrustedChain(this.chain) || !isTrustedChain(destChain));
6266
+ useTypeAndThen = isRelayAsset && supportsTypeThen && destChain && !feeAsset && (!isTrustedChain(this.chain) || !isTrustedChain(destChain));
6241
6267
  if (!(supportsXTokens(this) && this.canUseXTokens(sendOptions) && !useTypeAndThen)) {
6242
6268
  _context.n = 6;
6243
6269
  break;
@@ -6284,7 +6310,7 @@ var Parachain = /*#__PURE__*/function () {
6284
6310
  }));
6285
6311
  case 7:
6286
6312
  if (!(supportsPolkadotXCM(this) || useTypeAndThen)) {
6287
- _context.n = 13;
6313
+ _context.n = 16;
6288
6314
  break;
6289
6315
  }
6290
6316
  options = {
@@ -6337,7 +6363,7 @@ var Parachain = /*#__PURE__*/function () {
6337
6363
  isExternalAssetViaAh = isExternalAsset && !isAHPOrigin && !isAHPDest && !isEthDest && !feeAsset; // External asset - Any origin to AHP - DestinationReserve - one DepositAsset instruction
6338
6364
  isExternalAssetToAh = isExternalAsset && isAHPDest && !isAHPOrigin && !isEthDest && !feeAsset;
6339
6365
  if (!(isExternalAssetViaAh || isExternalAssetToAh || useTypeAndThen)) {
6340
- _context.n = 12;
6366
+ _context.n = 15;
6341
6367
  break;
6342
6368
  }
6343
6369
  if (!(useTypeAndThen && supportsPolkadotXCM(this))) {
@@ -6347,20 +6373,33 @@ var Parachain = /*#__PURE__*/function () {
6347
6373
  _context.n = 10;
6348
6374
  return this.transferPolkadotXCM(options);
6349
6375
  case 10:
6376
+ if (!isRelayAsset) {
6377
+ _context.n = 12;
6378
+ break;
6379
+ }
6350
6380
  _context.n = 11;
6351
- return createTypeAndThenCall(this.chain, options);
6381
+ return createTypeThenAutoReserve(this.chain, options);
6352
6382
  case 11:
6353
- call = _context.v;
6354
- return _context.a(2, api.callTxMethod(call));
6383
+ _t = _context.v;
6384
+ _context.n = 14;
6385
+ break;
6355
6386
  case 12:
6387
+ _context.n = 13;
6388
+ return createTypeAndThenCall(this.chain, options);
6389
+ case 13:
6390
+ _t = _context.v;
6391
+ case 14:
6392
+ call = _t;
6393
+ return _context.a(2, api.callTxMethod(call));
6394
+ case 15:
6356
6395
  if (!supportsPolkadotXCM(this)) {
6357
- _context.n = 13;
6396
+ _context.n = 16;
6358
6397
  break;
6359
6398
  }
6360
6399
  return _context.a(2, this.transferPolkadotXCM(options));
6361
- case 13:
6400
+ case 16:
6362
6401
  throw new NoXCMSupportImplementedError(this._chain);
6363
- case 14:
6402
+ case 17:
6364
6403
  return _context.a(2);
6365
6404
  }
6366
6405
  }, _callee, this);
@@ -6387,7 +6426,8 @@ var Parachain = /*#__PURE__*/function () {
6387
6426
  if (isSendingDisabled) {
6388
6427
  throw new InvalidParameterError("Sending from ".concat(this.chain, " is temporarily disabled"));
6389
6428
  }
6390
- var isReceivingDisabled = destChain && !isRelayChain(destChain) && !isExternalChain(destChain) && getChain(destChain).isReceivingTempDisabled(options);
6429
+ var scenario = resolveScenario(this.chain, options.to);
6430
+ var isReceivingDisabled = destChain && !isRelayChain(destChain) && !isExternalChain(destChain) && getChain(destChain).isReceivingTempDisabled(scenario);
6391
6431
  if (isReceivingDisabled) {
6392
6432
  throw new InvalidParameterError("Receiving on ".concat(destChain, " is temporarily disabled"));
6393
6433
  }
@@ -6399,7 +6439,7 @@ var Parachain = /*#__PURE__*/function () {
6399
6439
  }
6400
6440
  }, {
6401
6441
  key: "isReceivingTempDisabled",
6402
- value: function isReceivingTempDisabled(_options) {
6442
+ value: function isReceivingTempDisabled(_scenario) {
6403
6443
  return false;
6404
6444
  }
6405
6445
  }, {
@@ -6435,39 +6475,46 @@ var Parachain = /*#__PURE__*/function () {
6435
6475
  key: "transferRelayToPara",
6436
6476
  value: function () {
6437
6477
  var _transferRelayToPara = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options) {
6438
- var api, version, pallet, assetInfo, address, destination, paraIdTo, methodOverride, _this$getRelayToParaO, method, includeFee, customMethod, paraId, destChain, scenario;
6478
+ var api, version, pallet, assetInfo, address, senderAddress, destination, paraIdTo, methodOverride, _this$getRelayToParaO, method, includeFee, customMethod, paraId, destChain, scenario;
6439
6479
  return _regenerator().w(function (_context2) {
6440
6480
  while (1) switch (_context2.n) {
6441
6481
  case 0:
6442
- api = options.api, version = options.version, pallet = options.pallet, assetInfo = options.assetInfo, address = options.address, destination = options.destination, paraIdTo = options.paraIdTo, methodOverride = options.method;
6482
+ api = options.api, version = options.version, pallet = options.pallet, assetInfo = options.assetInfo, address = options.address, senderAddress = options.senderAddress, destination = options.destination, paraIdTo = options.paraIdTo, methodOverride = options.method;
6443
6483
  _this$getRelayToParaO = this.getRelayToParaOverrides(), method = _this$getRelayToParaO.method, includeFee = _this$getRelayToParaO.includeFee;
6484
+ if (!this.isReceivingTempDisabled('RelayToPara')) {
6485
+ _context2.n = 1;
6486
+ break;
6487
+ }
6488
+ throw new InvalidParameterError("Receiving on ".concat(this.chain, " is temporarily disabled"));
6489
+ case 1:
6444
6490
  customMethod = methodOverride !== null && methodOverride !== void 0 ? methodOverride : method;
6445
6491
  if (!(customMethod === 'transfer_assets_using_type_and_then')) {
6446
- _context2.n = 2;
6492
+ _context2.n = 3;
6447
6493
  break;
6448
6494
  }
6449
6495
  paraId = resolveParaId(paraIdTo, destination);
6450
6496
  destChain = resolveDestChain(this.chain, paraId);
6451
6497
  scenario = 'RelayToPara';
6452
6498
  if (destChain) {
6453
- _context2.n = 1;
6499
+ _context2.n = 2;
6454
6500
  break;
6455
6501
  }
6456
6502
  throw new InvalidParameterError('Cannot override destination when using type and then transfer.');
6457
- case 1:
6458
- return _context2.a(2, createTypeAndThenCall(getRelayChainOf(destChain), _objectSpread2(_objectSpread2({}, options), {}, {
6503
+ case 2:
6504
+ return _context2.a(2, createTypeThenAutoReserve(getRelayChainOf(destChain), _objectSpread2(_objectSpread2({}, options), {}, {
6459
6505
  beneficiaryLocation: createBeneficiaryLocation({
6460
6506
  api: api,
6461
6507
  address: address,
6462
6508
  version: version
6463
6509
  }),
6510
+ senderAddress: senderAddress,
6464
6511
  asset: this.createCurrencySpec(assetInfo.amount, scenario, version, assetInfo, false),
6465
6512
  destLocation: createDestination(version, this.chain, destination, paraId),
6466
6513
  scenario: scenario,
6467
6514
  destChain: destChain,
6468
6515
  paraIdTo: paraId
6469
6516
  })));
6470
- case 2:
6517
+ case 3:
6471
6518
  return _context2.a(2, {
6472
6519
  module: pallet !== null && pallet !== void 0 ? pallet : 'XcmPallet',
6473
6520
  method: customMethod,
@@ -6500,54 +6547,120 @@ var Parachain = /*#__PURE__*/function () {
6500
6547
  }
6501
6548
  }, {
6502
6549
  key: "transferLocal",
6503
- value: function transferLocal(options) {
6504
- var asset = options.assetInfo,
6505
- address = options.address;
6506
- if (isTLocation(address)) {
6507
- throw new InvalidAddressError('Location address is not supported for local transfers');
6508
- }
6509
- var validatedOptions = _objectSpread2(_objectSpread2({}, options), {}, {
6510
- address: address
6511
- });
6512
- var isNativeAsset = asset.symbol === this.getNativeAssetSymbol() && !isForeignAsset(asset);
6513
- if (isNativeAsset) {
6514
- return this.transferLocalNativeAsset(validatedOptions);
6515
- } else {
6516
- return this.transferLocalNonNativeAsset(validatedOptions);
6550
+ value: function () {
6551
+ var _transferLocal = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(options) {
6552
+ var api, asset, address, senderAddress, currency, isAmountAll, validatedOptions, isNativeAsset, balance, localOptions;
6553
+ return _regenerator().w(function (_context3) {
6554
+ while (1) switch (_context3.n) {
6555
+ case 0:
6556
+ api = options.api, asset = options.assetInfo, address = options.address, senderAddress = options.senderAddress, currency = options.currency, isAmountAll = options.isAmountAll;
6557
+ if (!isTLocation(address)) {
6558
+ _context3.n = 1;
6559
+ break;
6560
+ }
6561
+ throw new InvalidAddressError('Location address is not supported for local transfers');
6562
+ case 1:
6563
+ validatedOptions = _objectSpread2(_objectSpread2({}, options), {}, {
6564
+ address: address
6565
+ });
6566
+ isNativeAsset = asset.symbol === this.getNativeAssetSymbol() && !isForeignAsset(asset);
6567
+ if (!isAmountAll) {
6568
+ _context3.n = 3;
6569
+ break;
6570
+ }
6571
+ assertSenderAddress(senderAddress);
6572
+ _context3.n = 2;
6573
+ return getAssetBalanceInternal({
6574
+ api: api,
6575
+ chain: this.chain,
6576
+ address: senderAddress,
6577
+ currency: currency
6578
+ });
6579
+ case 2:
6580
+ balance = _context3.v;
6581
+ _context3.n = 4;
6582
+ break;
6583
+ case 3:
6584
+ balance = MIN_AMOUNT;
6585
+ case 4:
6586
+ localOptions = _objectSpread2(_objectSpread2({}, validatedOptions), {}, {
6587
+ balance: balance
6588
+ });
6589
+ if (!isNativeAsset) {
6590
+ _context3.n = 5;
6591
+ break;
6592
+ }
6593
+ return _context3.a(2, this.transferLocalNativeAsset(localOptions));
6594
+ case 5:
6595
+ return _context3.a(2, this.transferLocalNonNativeAsset(localOptions));
6596
+ case 6:
6597
+ return _context3.a(2);
6598
+ }
6599
+ }, _callee3, this);
6600
+ }));
6601
+ function transferLocal(_x3) {
6602
+ return _transferLocal.apply(this, arguments);
6517
6603
  }
6518
- }
6604
+ return transferLocal;
6605
+ }()
6519
6606
  }, {
6520
6607
  key: "transferLocalNativeAsset",
6521
6608
  value: function transferLocalNativeAsset(options) {
6522
6609
  var api = options.api,
6523
6610
  asset = options.assetInfo,
6524
- address = options.address;
6525
- return api.callTxMethod({
6611
+ address = options.address,
6612
+ isAmountAll = options.isAmountAll;
6613
+ var dest = isChainEvm(this.chain) ? address : {
6614
+ Id: address
6615
+ };
6616
+ if (isAmountAll) {
6617
+ return Promise.resolve(api.callTxMethod({
6618
+ module: 'Balances',
6619
+ method: 'transfer_all',
6620
+ parameters: {
6621
+ dest: dest,
6622
+ keep_alive: false
6623
+ }
6624
+ }));
6625
+ }
6626
+ return Promise.resolve(api.callTxMethod({
6526
6627
  module: 'Balances',
6527
6628
  method: 'transfer_keep_alive',
6528
6629
  parameters: {
6529
- dest: isChainEvm(this.chain) ? address : {
6530
- Id: address
6531
- },
6630
+ dest: dest,
6532
6631
  value: asset.amount
6533
6632
  }
6534
- });
6633
+ }));
6535
6634
  }
6536
6635
  }, {
6537
6636
  key: "transferLocalNonNativeAsset",
6538
6637
  value: function transferLocalNonNativeAsset(options) {
6539
6638
  var api = options.api,
6540
6639
  asset = options.assetInfo,
6541
- address = options.address;
6640
+ address = options.address,
6641
+ isAmountAll = options.isAmountAll;
6542
6642
  assertHasId(asset);
6643
+ var dest = {
6644
+ Id: address
6645
+ };
6646
+ var currencyId = BigInt(asset.assetId);
6647
+ if (isAmountAll) {
6648
+ return api.callTxMethod({
6649
+ module: 'Tokens',
6650
+ method: 'transfer_all',
6651
+ parameters: {
6652
+ dest: dest,
6653
+ currency_id: currencyId,
6654
+ keep_alive: false
6655
+ }
6656
+ });
6657
+ }
6543
6658
  return api.callTxMethod({
6544
6659
  module: 'Tokens',
6545
6660
  method: 'transfer',
6546
6661
  parameters: {
6547
- dest: {
6548
- Id: address
6549
- },
6550
- currency_id: BigInt(asset.assetId),
6662
+ dest: dest,
6663
+ currency_id: currencyId,
6551
6664
  amount: asset.amount
6552
6665
  }
6553
6666
  });
@@ -6555,7 +6668,7 @@ var Parachain = /*#__PURE__*/function () {
6555
6668
  }, {
6556
6669
  key: "transferToEthereum",
6557
6670
  value: function () {
6558
- var _transferToEthereum = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(input) {
6671
+ var _transferToEthereum = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(input) {
6559
6672
  var _feeAsset$location;
6560
6673
  var useOnlyDepositInstruction,
6561
6674
  api,
@@ -6578,18 +6691,18 @@ var Parachain = /*#__PURE__*/function () {
6578
6691
  customXcmOnDest,
6579
6692
  messageId,
6580
6693
  call,
6581
- _args3 = arguments;
6582
- return _regenerator().w(function (_context3) {
6583
- while (1) switch (_context3.n) {
6694
+ _args4 = arguments;
6695
+ return _regenerator().w(function (_context4) {
6696
+ while (1) switch (_context4.n) {
6584
6697
  case 0:
6585
- useOnlyDepositInstruction = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : false;
6698
+ useOnlyDepositInstruction = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : false;
6586
6699
  api = input.api, asset = input.assetInfo, version = input.version, destination = input.destination, address = input.address, senderAddress = input.senderAddress, feeAsset = input.feeAssetInfo;
6587
- _context3.n = 1;
6700
+ _context4.n = 1;
6588
6701
  return getBridgeStatus(api.clone());
6589
6702
  case 1:
6590
- bridgeStatus = _context3.v;
6703
+ bridgeStatus = _context4.v;
6591
6704
  if (!(bridgeStatus !== 'Normal')) {
6592
- _context3.n = 2;
6705
+ _context4.n = 2;
6593
6706
  break;
6594
6707
  }
6595
6708
  throw new BridgeHaltedError();
@@ -6598,14 +6711,14 @@ var Parachain = /*#__PURE__*/function () {
6598
6711
  assertAddressIsString(address);
6599
6712
  assertSenderAddress(senderAddress);
6600
6713
  ethAsset = createAsset(version, asset.amount, asset.location);
6601
- _context3.n = 3;
6714
+ _context4.n = 3;
6602
6715
  return api.createApiForChain('AssetHubPolkadot');
6603
6716
  case 3:
6604
- ahApi = _context3.v;
6605
- _context3.n = 4;
6717
+ ahApi = _context4.v;
6718
+ _context4.n = 4;
6606
6719
  return getParaEthTransferFees(ahApi);
6607
6720
  case 4:
6608
- _yield$getParaEthTran = _context3.v;
6721
+ _yield$getParaEthTran = _context4.v;
6609
6722
  _yield$getParaEthTran2 = _slicedToArray(_yield$getParaEthTran, 2);
6610
6723
  bridgeFee = _yield$getParaEthTran2[0];
6611
6724
  executionFee = _yield$getParaEthTran2[1];
@@ -6613,13 +6726,13 @@ var Parachain = /*#__PURE__*/function () {
6613
6726
  fee = useOnlyDepositInstruction ? PARA_TO_PARA_FEE_DOT : bridgeFee + executionFee;
6614
6727
  ethAssetInfo = findAssetInfoByLoc(getOtherAssets('Ethereum'), asset.location);
6615
6728
  if (ethAssetInfo) {
6616
- _context3.n = 5;
6729
+ _context4.n = 5;
6617
6730
  break;
6618
6731
  }
6619
6732
  throw new InvalidCurrencyError("Could not obtain Ethereum asset address for ".concat(JSON.stringify(asset, replaceBigInt)));
6620
6733
  case 5:
6621
6734
  if (!useOnlyDepositInstruction) {
6622
- _context3.n = 6;
6735
+ _context4.n = 6;
6623
6736
  break;
6624
6737
  }
6625
6738
  customXcmOnDest = addXcmVersionHeader([{
@@ -6636,14 +6749,14 @@ var Parachain = /*#__PURE__*/function () {
6636
6749
  })
6637
6750
  }
6638
6751
  }], version);
6639
- _context3.n = 8;
6752
+ _context4.n = 8;
6640
6753
  break;
6641
6754
  case 6:
6642
6755
  assertHasId(ethAssetInfo);
6643
- _context3.n = 7;
6756
+ _context4.n = 7;
6644
6757
  return generateMessageId(api, senderAddress, getParaId(this.chain), ethAssetInfo.assetId, address, asset.amount);
6645
6758
  case 7:
6646
- messageId = _context3.v;
6759
+ messageId = _context4.v;
6647
6760
  customXcmOnDest = createCustomXcmOnDest(input, this.chain, messageId);
6648
6761
  case 8:
6649
6762
  call = {
@@ -6659,11 +6772,11 @@ var Parachain = /*#__PURE__*/function () {
6659
6772
  weight_limit: 'Unlimited'
6660
6773
  }
6661
6774
  };
6662
- return _context3.a(2, api.callTxMethod(call));
6775
+ return _context4.a(2, api.callTxMethod(call));
6663
6776
  }
6664
- }, _callee3, this);
6777
+ }, _callee4, this);
6665
6778
  }));
6666
- function transferToEthereum(_x3) {
6779
+ function transferToEthereum(_x4) {
6667
6780
  return _transferToEthereum.apply(this, arguments);
6668
6781
  }
6669
6782
  return transferToEthereum;
@@ -6673,8 +6786,12 @@ var Parachain = /*#__PURE__*/function () {
6673
6786
 
6674
6787
  var Acala = /*#__PURE__*/function (_Parachain) {
6675
6788
  function Acala() {
6789
+ var chain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Acala';
6790
+ var info = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'acala';
6791
+ var ecosystem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Polkadot';
6792
+ var version = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Version.V4;
6676
6793
  _classCallCheck(this, Acala);
6677
- return _callSuper(this, Acala, ['Acala', 'acala', 'Polkadot', Version.V4]);
6794
+ return _callSuper(this, Acala, [chain, info, ecosystem, version]);
6678
6795
  }
6679
6796
  _inherits(Acala, _Parachain);
6680
6797
  return _createClass(Acala, [{
@@ -6696,30 +6813,61 @@ var Acala = /*#__PURE__*/function (_Parachain) {
6696
6813
  }
6697
6814
  }, {
6698
6815
  key: "transferLocalNativeAsset",
6699
- value: function transferLocalNativeAsset(options) {
6700
- var api = options.api,
6701
- asset = options.assetInfo,
6702
- address = options.address;
6703
- return api.callTxMethod({
6704
- module: 'Currencies',
6705
- method: 'transfer_native_currency',
6706
- parameters: {
6707
- dest: {
6708
- Id: address
6709
- },
6710
- amount: asset.amount
6711
- }
6712
- });
6713
- }
6816
+ value: function () {
6817
+ var _transferLocalNativeAsset = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
6818
+ var api, asset, address, balance, senderAddress, isAmountAll, createTx, amount, fee;
6819
+ return _regenerator().w(function (_context) {
6820
+ while (1) switch (_context.n) {
6821
+ case 0:
6822
+ api = options.api, asset = options.assetInfo, address = options.address, balance = options.balance, senderAddress = options.senderAddress, isAmountAll = options.isAmountAll;
6823
+ createTx = function createTx(amount) {
6824
+ return api.callTxMethod({
6825
+ module: 'Currencies',
6826
+ method: 'transfer_native_currency',
6827
+ parameters: {
6828
+ dest: {
6829
+ Id: address
6830
+ },
6831
+ amount: amount
6832
+ }
6833
+ });
6834
+ };
6835
+ if (!isAmountAll) {
6836
+ _context.n = 2;
6837
+ break;
6838
+ }
6839
+ assertSenderAddress(senderAddress);
6840
+ _context.n = 1;
6841
+ return api.calculateTransactionFee(createTx(MIN_AMOUNT), senderAddress);
6842
+ case 1:
6843
+ fee = _context.v;
6844
+ amount = balance - fee;
6845
+ _context.n = 3;
6846
+ break;
6847
+ case 2:
6848
+ amount = asset.amount;
6849
+ case 3:
6850
+ return _context.a(2, createTx(amount));
6851
+ }
6852
+ }, _callee);
6853
+ }));
6854
+ function transferLocalNativeAsset(_x) {
6855
+ return _transferLocalNativeAsset.apply(this, arguments);
6856
+ }
6857
+ return transferLocalNativeAsset;
6858
+ }()
6714
6859
  }, {
6715
6860
  key: "transferLocalNonNativeAsset",
6716
6861
  value: function transferLocalNonNativeAsset(options) {
6717
6862
  var api = options.api,
6718
6863
  asset = options.assetInfo,
6719
- address = options.address;
6864
+ address = options.address,
6865
+ balance = options.balance,
6866
+ isAmountAll = options.isAmountAll;
6720
6867
  if (asset.symbol.toLowerCase() === 'lcdot') {
6721
6868
  throw new InvalidCurrencyError('LcDOT local transfers are not supported');
6722
6869
  }
6870
+ var amount = isAmountAll ? balance : asset.amount;
6723
6871
  return api.callTxMethod({
6724
6872
  module: 'Currencies',
6725
6873
  method: 'transfer',
@@ -6728,7 +6876,7 @@ var Acala = /*#__PURE__*/function (_Parachain) {
6728
6876
  Id: address
6729
6877
  },
6730
6878
  currency_id: this.getCurrencySelection(asset),
6731
- amount: asset.amount
6879
+ amount: amount
6732
6880
  }
6733
6881
  });
6734
6882
  }
@@ -6768,16 +6916,30 @@ var Ajuna = /*#__PURE__*/function (_Parachain) {
6768
6916
  value: function transferLocalNonNativeAsset(options) {
6769
6917
  var api = options.api,
6770
6918
  asset = options.assetInfo,
6771
- address = options.address;
6919
+ address = options.address,
6920
+ isAmountAll = options.isAmountAll;
6772
6921
  assertHasId(asset);
6922
+ var assetId = Number(asset.assetId);
6923
+ var dest = {
6924
+ Id: address
6925
+ };
6926
+ if (isAmountAll) {
6927
+ return api.callTxMethod({
6928
+ module: 'Assets',
6929
+ method: 'transfer_all',
6930
+ parameters: {
6931
+ id: assetId,
6932
+ dest: dest,
6933
+ keep_alive: false
6934
+ }
6935
+ });
6936
+ }
6773
6937
  return api.callTxMethod({
6774
6938
  module: 'Assets',
6775
6939
  method: 'transfer',
6776
6940
  parameters: {
6777
- id: Number(asset.assetId),
6778
- target: {
6779
- Id: address
6780
- },
6941
+ id: assetId,
6942
+ target: dest,
6781
6943
  amount: asset.amount
6782
6944
  }
6783
6945
  });
@@ -6869,16 +7031,29 @@ var Altair = /*#__PURE__*/function (_Parachain) {
6869
7031
  value: function transferLocalNonNativeAsset(options) {
6870
7032
  var api = options.api,
6871
7033
  asset = options.assetInfo,
6872
- address = options.address;
6873
- assertHasId(asset);
7034
+ address = options.address,
7035
+ isAmountAll = options.isAmountAll;
7036
+ var dest = {
7037
+ Id: address
7038
+ };
7039
+ var currencyId = this.getCurrencySelection(asset);
7040
+ if (isAmountAll) {
7041
+ return api.callTxMethod({
7042
+ module: 'Tokens',
7043
+ method: 'transfer_all',
7044
+ parameters: {
7045
+ dest: dest,
7046
+ currency_id: currencyId,
7047
+ keep_alive: false
7048
+ }
7049
+ });
7050
+ }
6874
7051
  return api.callTxMethod({
6875
7052
  module: 'Tokens',
6876
7053
  method: 'transfer',
6877
7054
  parameters: {
6878
- dest: {
6879
- Id: address
6880
- },
6881
- currency_id: this.getCurrencySelection(asset),
7055
+ dest: dest,
7056
+ currency_id: currencyId,
6882
7057
  amount: asset.amount
6883
7058
  }
6884
7059
  });
@@ -7289,18 +7464,45 @@ var AssetHubPolkadot = /*#__PURE__*/function (_Parachain) {
7289
7464
  value: function transferLocalNonNativeAsset(options) {
7290
7465
  var api = options.api,
7291
7466
  asset = options.assetInfo,
7292
- address = options.address;
7467
+ address = options.address,
7468
+ isAmountAll = options.isAmountAll;
7293
7469
  assertIsForeign(asset);
7294
7470
  if (asset.assetId !== undefined) {
7471
+ var assetId = Number(asset.assetId);
7472
+ var dest = {
7473
+ Id: address
7474
+ };
7475
+ if (isAmountAll) {
7476
+ return api.callTxMethod({
7477
+ module: 'Assets',
7478
+ method: 'transfer_all',
7479
+ parameters: {
7480
+ id: assetId,
7481
+ dest: dest,
7482
+ keep_alive: false
7483
+ }
7484
+ });
7485
+ }
7295
7486
  return api.callTxMethod({
7296
7487
  module: 'Assets',
7297
7488
  method: 'transfer',
7298
7489
  parameters: {
7299
- id: Number(asset.assetId),
7300
- target: {
7490
+ id: assetId,
7491
+ target: dest,
7492
+ amount: asset.amount
7493
+ }
7494
+ });
7495
+ }
7496
+ if (isAmountAll) {
7497
+ return api.callTxMethod({
7498
+ module: 'ForeignAssets',
7499
+ method: 'transfer_all',
7500
+ parameters: {
7501
+ id: asset.location,
7502
+ dest: {
7301
7503
  Id: address
7302
7504
  },
7303
- amount: asset.amount
7505
+ keep_alive: false
7304
7506
  }
7305
7507
  });
7306
7508
  }
@@ -7368,16 +7570,30 @@ var Astar = /*#__PURE__*/function (_Parachain) {
7368
7570
  value: function transferLocalNonNativeAsset(options) {
7369
7571
  var api = options.api,
7370
7572
  asset = options.assetInfo,
7371
- address = options.address;
7573
+ address = options.address,
7574
+ isAmountAll = options.isAmountAll;
7372
7575
  assertHasId(asset);
7576
+ var assetId = Number(asset.assetId);
7577
+ var dest = {
7578
+ Id: address
7579
+ };
7580
+ if (isAmountAll) {
7581
+ return api.callTxMethod({
7582
+ module: 'Assets',
7583
+ method: 'transfer_all',
7584
+ parameters: {
7585
+ id: assetId,
7586
+ dest: dest,
7587
+ keep_alive: false
7588
+ }
7589
+ });
7590
+ }
7373
7591
  return api.callTxMethod({
7374
7592
  module: 'Assets',
7375
7593
  method: 'transfer',
7376
7594
  parameters: {
7377
- id: Number(asset.assetId),
7378
- target: {
7379
- Id: address
7380
- },
7595
+ id: assetId,
7596
+ target: dest,
7381
7597
  amount: asset.amount
7382
7598
  }
7383
7599
  });
@@ -7533,15 +7749,29 @@ var BifrostPolkadot = /*#__PURE__*/function (_Parachain) {
7533
7749
  value: function transferLocalNonNativeAsset(options) {
7534
7750
  var api = options.api,
7535
7751
  asset = options.assetInfo,
7536
- address = options.address;
7752
+ address = options.address,
7753
+ isAmountAll = options.isAmountAll;
7754
+ var dest = {
7755
+ Id: address
7756
+ };
7757
+ var currencyId = this.getCurrencySelection(asset);
7758
+ if (isAmountAll) {
7759
+ return api.callTxMethod({
7760
+ module: 'Tokens',
7761
+ method: 'transfer_all',
7762
+ parameters: {
7763
+ dest: dest,
7764
+ currency_id: currencyId,
7765
+ keep_alive: false
7766
+ }
7767
+ });
7768
+ }
7537
7769
  return api.callTxMethod({
7538
7770
  module: 'Tokens',
7539
7771
  method: 'transfer',
7540
7772
  parameters: {
7541
- dest: {
7542
- Id: address
7543
- },
7544
- currency_id: this.getCurrencySelection(asset),
7773
+ dest: dest,
7774
+ currency_id: currencyId,
7545
7775
  amount: asset.amount
7546
7776
  }
7547
7777
  });
@@ -7661,16 +7891,29 @@ var Centrifuge = /*#__PURE__*/function (_Parachain) {
7661
7891
  value: function transferLocalNonNativeAsset(options) {
7662
7892
  var api = options.api,
7663
7893
  asset = options.assetInfo,
7664
- address = options.address;
7665
- assertHasId(asset);
7894
+ address = options.address,
7895
+ isAmountAll = options.isAmountAll;
7896
+ var dest = {
7897
+ Id: address
7898
+ };
7899
+ var currencyId = this.getCurrencySelection(asset);
7900
+ if (isAmountAll) {
7901
+ return api.callTxMethod({
7902
+ module: 'Tokens',
7903
+ method: 'transfer_all',
7904
+ parameters: {
7905
+ dest: dest,
7906
+ currency_id: currencyId,
7907
+ keep_alive: false
7908
+ }
7909
+ });
7910
+ }
7666
7911
  return api.callTxMethod({
7667
7912
  module: 'Tokens',
7668
7913
  method: 'transfer',
7669
7914
  parameters: {
7670
- dest: {
7671
- Id: address
7672
- },
7673
- currency_id: this.getCurrencySelection(asset),
7915
+ dest: dest,
7916
+ currency_id: currencyId,
7674
7917
  amount: asset.amount
7675
7918
  }
7676
7919
  });
@@ -7731,6 +7974,16 @@ var ComposableFinance = /*#__PURE__*/function (_Parachain) {
7731
7974
  assertHasId(asset);
7732
7975
  return transferXTokens(input, BigInt(asset.assetId));
7733
7976
  }
7977
+ }, {
7978
+ key: "isSendingTempDisabled",
7979
+ value: function isSendingTempDisabled(_options) {
7980
+ return true;
7981
+ }
7982
+ }, {
7983
+ key: "isReceivingTempDisabled",
7984
+ value: function isReceivingTempDisabled(_scenario) {
7985
+ return true;
7986
+ }
7734
7987
  }]);
7735
7988
  }(Parachain);
7736
7989
 
@@ -7743,10 +7996,11 @@ var CoretimeKusama = /*#__PURE__*/function (_Parachain) {
7743
7996
  return _createClass(CoretimeKusama, [{
7744
7997
  key: "transferPolkadotXCM",
7745
7998
  value: function transferPolkadotXCM(input) {
7746
- // TESTED block hash on Rococo: 0x78ace0f1bf7cac9a42e56143321b617d98327e2750f795efb0abb833025c9082
7747
7999
  var scenario = input.scenario;
7748
- var method = scenario === 'ParaToPara' ? 'limited_reserve_transfer_assets' : 'limited_teleport_assets';
7749
- return transferPolkadotXcm(input, method, 'Unlimited');
8000
+ if (scenario === 'ParaToPara') {
8001
+ throw new ScenarioNotSupportedError(this.chain, scenario);
8002
+ }
8003
+ return transferPolkadotXcm(input, 'limited_teleport_assets', 'Unlimited');
7750
8004
  }
7751
8005
  }, {
7752
8006
  key: "getRelayToParaOverrides",
@@ -7778,6 +8032,11 @@ var CoretimePolkadot = /*#__PURE__*/function (_Parachain) {
7778
8032
  }
7779
8033
  return transferPolkadotXcm(input, 'limited_teleport_assets', 'Unlimited');
7780
8034
  }
8035
+ }, {
8036
+ key: "canReceiveFrom",
8037
+ value: function canReceiveFrom(origin) {
8038
+ return origin !== 'Hydration' && origin !== 'Moonbeam';
8039
+ }
7781
8040
  }, {
7782
8041
  key: "getRelayToParaOverrides",
7783
8042
  value: function getRelayToParaOverrides() {
@@ -7879,16 +8138,30 @@ var Crust = /*#__PURE__*/function (_Parachain) {
7879
8138
  value: function transferLocalNonNativeAsset(options) {
7880
8139
  var api = options.api,
7881
8140
  asset = options.assetInfo,
7882
- address = options.address;
8141
+ address = options.address,
8142
+ isAmountAll = options.isAmountAll;
7883
8143
  assertHasId(asset);
8144
+ var assetId = BigInt(asset.assetId);
8145
+ var dest = {
8146
+ Id: address
8147
+ };
8148
+ if (isAmountAll) {
8149
+ return api.callTxMethod({
8150
+ module: 'Assets',
8151
+ method: 'transfer_all',
8152
+ parameters: {
8153
+ id: assetId,
8154
+ dest: dest,
8155
+ keep_alive: false
8156
+ }
8157
+ });
8158
+ }
7884
8159
  return api.callTxMethod({
7885
8160
  module: 'Assets',
7886
8161
  method: 'transfer',
7887
8162
  parameters: {
7888
- id: BigInt(asset.assetId),
7889
- target: {
7890
- Id: address
7891
- },
8163
+ id: assetId,
8164
+ target: dest,
7892
8165
  amount: asset.amount
7893
8166
  }
7894
8167
  });
@@ -7945,6 +8218,16 @@ var Curio = /*#__PURE__*/function (_Parachain) {
7945
8218
  };
7946
8219
  return transferXTokens(input, currencySelection);
7947
8220
  }
8221
+ }, {
8222
+ key: "isSendingTempDisabled",
8223
+ value: function isSendingTempDisabled(_options) {
8224
+ return true;
8225
+ }
8226
+ }, {
8227
+ key: "isReceivingTempDisabled",
8228
+ value: function isReceivingTempDisabled(_scenario) {
8229
+ return true;
8230
+ }
7948
8231
  }]);
7949
8232
  }(Parachain);
7950
8233
 
@@ -7985,13 +8268,26 @@ var Darwinia = /*#__PURE__*/function (_Parachain) {
7985
8268
  value: function transferLocalNonNativeAsset(options) {
7986
8269
  var api = options.api,
7987
8270
  asset = options.assetInfo,
7988
- address = options.address;
8271
+ address = options.address,
8272
+ isAmountAll = options.isAmountAll;
7989
8273
  assertHasId(asset);
8274
+ var assetId = BigInt(asset.assetId);
8275
+ if (isAmountAll) {
8276
+ return api.callTxMethod({
8277
+ module: 'Assets',
8278
+ method: 'transfer_all',
8279
+ parameters: {
8280
+ id: assetId,
8281
+ dest: address,
8282
+ keep_alive: false
8283
+ }
8284
+ });
8285
+ }
7990
8286
  return api.callTxMethod({
7991
8287
  module: 'Assets',
7992
8288
  method: 'transfer',
7993
8289
  parameters: {
7994
- id: BigInt(asset.assetId),
8290
+ id: assetId,
7995
8291
  target: address,
7996
8292
  amount: asset.amount
7997
8293
  }
@@ -8067,7 +8363,7 @@ var EnergyWebXPaseo = /*#__PURE__*/function (_EnergyWebX) {
8067
8363
  var Heima = /*#__PURE__*/function (_Parachain) {
8068
8364
  function Heima() {
8069
8365
  var chain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Heima';
8070
- var info = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'litentry';
8366
+ var info = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'heima';
8071
8367
  var ecosystem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Polkadot';
8072
8368
  var version = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Version.V5;
8073
8369
  _classCallCheck(this, Heima);
@@ -8239,6 +8535,12 @@ var Polimec = /*#__PURE__*/function (_Parachain) {
8239
8535
  }
8240
8536
  return transferPolkadotXCM;
8241
8537
  }()
8538
+ }, {
8539
+ key: "isSendingTempDisabled",
8540
+ value: function isSendingTempDisabled(_ref3) {
8541
+ var assetInfo = _ref3.assetInfo;
8542
+ return isSymbolMatch(assetInfo.symbol, this.getNativeAssetSymbol());
8543
+ }
8242
8544
  }, {
8243
8545
  key: "transferRelayToPara",
8244
8546
  value: function transferRelayToPara(options) {
@@ -8253,9 +8555,23 @@ var Polimec = /*#__PURE__*/function (_Parachain) {
8253
8555
  value: function transferLocalNonNativeAsset(options) {
8254
8556
  var api = options.api,
8255
8557
  asset = options.assetInfo,
8256
- address = options.address;
8558
+ address = options.address,
8559
+ isAmountAll = options.isAmountAll;
8257
8560
  assertIsForeign(asset);
8258
8561
  assertHasLocation(asset);
8562
+ if (isAmountAll) {
8563
+ return api.callTxMethod({
8564
+ module: 'ForeignAssets',
8565
+ method: 'transfer_all',
8566
+ parameters: {
8567
+ id: asset.location,
8568
+ target: {
8569
+ Id: address
8570
+ },
8571
+ keep_alive: false
8572
+ }
8573
+ });
8574
+ }
8259
8575
  return api.callTxMethod({
8260
8576
  module: 'ForeignAssets',
8261
8577
  method: 'transfer',
@@ -8439,29 +8755,53 @@ var Hydration = /*#__PURE__*/function (_Parachain) {
8439
8755
  value: function transferLocalNativeAsset(options) {
8440
8756
  var api = options.api,
8441
8757
  asset = options.assetInfo,
8442
- address = options.address;
8443
- return api.callTxMethod({
8758
+ address = options.address,
8759
+ isAmountAll = options.isAmountAll;
8760
+ if (isAmountAll) {
8761
+ return Promise.resolve(api.callTxMethod({
8762
+ module: 'Balances',
8763
+ method: 'transfer_all',
8764
+ parameters: {
8765
+ dest: address,
8766
+ keep_alive: false
8767
+ }
8768
+ }));
8769
+ }
8770
+ return Promise.resolve(api.callTxMethod({
8444
8771
  module: 'Balances',
8445
8772
  method: 'transfer_keep_alive',
8446
8773
  parameters: {
8447
8774
  dest: address,
8448
8775
  value: asset.amount
8449
8776
  }
8450
- });
8777
+ }));
8451
8778
  }
8452
8779
  }, {
8453
8780
  key: "transferLocalNonNativeAsset",
8454
8781
  value: function transferLocalNonNativeAsset(options) {
8455
8782
  var api = options.api,
8456
8783
  asset = options.assetInfo,
8457
- address = options.address;
8784
+ address = options.address,
8785
+ isAmountAll = options.isAmountAll;
8458
8786
  assertHasId(asset);
8787
+ var currencyId = Number(asset.assetId);
8788
+ if (isAmountAll) {
8789
+ return api.callTxMethod({
8790
+ module: 'Tokens',
8791
+ method: 'transfer_all',
8792
+ parameters: {
8793
+ dest: address,
8794
+ currency_id: currencyId,
8795
+ keep_alive: false
8796
+ }
8797
+ });
8798
+ }
8459
8799
  return api.callTxMethod({
8460
8800
  module: 'Tokens',
8461
8801
  method: 'transfer',
8462
8802
  parameters: {
8463
8803
  dest: address,
8464
- currency_id: Number(asset.assetId),
8804
+ currency_id: currencyId,
8465
8805
  amount: asset.amount
8466
8806
  }
8467
8807
  });
@@ -8504,16 +8844,30 @@ var IntegriteePolkadot = /*#__PURE__*/function (_Parachain) {
8504
8844
  value: function transferLocalNonNativeAsset(options) {
8505
8845
  var api = options.api,
8506
8846
  asset = options.assetInfo,
8507
- address = options.address;
8847
+ address = options.address,
8848
+ isAmountAll = options.isAmountAll;
8508
8849
  assertHasId(asset);
8850
+ var assetId = Number(asset.assetId);
8851
+ var dest = {
8852
+ Id: address
8853
+ };
8854
+ if (isAmountAll) {
8855
+ return api.callTxMethod({
8856
+ module: 'Assets',
8857
+ method: 'transfer_all',
8858
+ parameters: {
8859
+ id: assetId,
8860
+ dest: dest,
8861
+ keep_alive: false
8862
+ }
8863
+ });
8864
+ }
8509
8865
  return api.callTxMethod({
8510
8866
  module: 'Assets',
8511
8867
  method: 'transfer',
8512
8868
  parameters: {
8513
- id: Number(asset.assetId),
8514
- target: {
8515
- Id: address
8516
- },
8869
+ id: assetId,
8870
+ target: dest,
8517
8871
  amount: asset.amount
8518
8872
  }
8519
8873
  });
@@ -8568,20 +8922,33 @@ var Interlay = /*#__PURE__*/function (_Parachain) {
8568
8922
  }, {
8569
8923
  key: "transferLocalNativeAsset",
8570
8924
  value: function transferLocalNativeAsset(options) {
8571
- return this.transferLocalNonNativeAsset(options);
8925
+ return Promise.resolve(this.transferLocalNonNativeAsset(options));
8572
8926
  }
8573
8927
  }, {
8574
8928
  key: "transferLocalNonNativeAsset",
8575
8929
  value: function transferLocalNonNativeAsset(options) {
8576
8930
  var api = options.api,
8577
8931
  asset = options.assetInfo,
8578
- address = options.address;
8932
+ address = options.address,
8933
+ isAmountAll = options.isAmountAll;
8934
+ var currencyId = this.getCurrencySelection(asset);
8935
+ if (isAmountAll) {
8936
+ return api.callTxMethod({
8937
+ module: 'Tokens',
8938
+ method: 'transfer_all',
8939
+ parameters: {
8940
+ dest: address,
8941
+ currency_id: currencyId,
8942
+ keep_alive: false
8943
+ }
8944
+ });
8945
+ }
8579
8946
  return api.callTxMethod({
8580
8947
  module: 'Tokens',
8581
8948
  method: 'transfer',
8582
8949
  parameters: {
8583
8950
  dest: address,
8584
- currency_id: this.getCurrencySelection(asset),
8951
+ currency_id: currencyId,
8585
8952
  value: asset.amount
8586
8953
  }
8587
8954
  });
@@ -8636,29 +9003,14 @@ Jamton.NATIVE_ASSET_IDS = {
8636
9003
  jamTON: 2
8637
9004
  };
8638
9005
 
8639
- var Karura = /*#__PURE__*/function (_Parachain) {
9006
+ var Karura = /*#__PURE__*/function (_Acala) {
8640
9007
  function Karura() {
8641
9008
  _classCallCheck(this, Karura);
8642
9009
  return _callSuper(this, Karura, ['Karura', 'karura', 'Kusama', Version.V4]);
8643
9010
  }
8644
- _inherits(Karura, _Parachain);
8645
- return _createClass(Karura, [{
8646
- key: "transferXTokens",
8647
- value: function transferXTokens(input) {
8648
- return getChain('Acala').transferXTokens(input);
8649
- }
8650
- }, {
8651
- key: "transferLocalNativeAsset",
8652
- value: function transferLocalNativeAsset(options) {
8653
- return getChain('Acala').transferLocalNativeAsset(options);
8654
- }
8655
- }, {
8656
- key: "transferLocalNonNativeAsset",
8657
- value: function transferLocalNonNativeAsset(options) {
8658
- return getChain('Acala').transferLocalNonNativeAsset(options);
8659
- }
8660
- }]);
8661
- }(Parachain);
9011
+ _inherits(Karura, _Acala);
9012
+ return _createClass(Karura);
9013
+ }(Acala);
8662
9014
 
8663
9015
  var KiltSpiritnet = /*#__PURE__*/function (_Parachain) {
8664
9016
  function KiltSpiritnet() {
@@ -8722,20 +9074,33 @@ var Kintsugi = /*#__PURE__*/function (_Parachain) {
8722
9074
  }, {
8723
9075
  key: "transferLocalNativeAsset",
8724
9076
  value: function transferLocalNativeAsset(options) {
8725
- return this.transferLocalNonNativeAsset(options);
9077
+ return Promise.resolve(this.transferLocalNonNativeAsset(options));
8726
9078
  }
8727
9079
  }, {
8728
9080
  key: "transferLocalNonNativeAsset",
8729
9081
  value: function transferLocalNonNativeAsset(options) {
8730
9082
  var api = options.api,
8731
9083
  asset = options.assetInfo,
8732
- address = options.address;
9084
+ address = options.address,
9085
+ isAmountAll = options.isAmountAll;
9086
+ var currencyId = this.getCurrencySelection(asset);
9087
+ if (isAmountAll) {
9088
+ return api.callTxMethod({
9089
+ module: 'Tokens',
9090
+ method: 'transfer_all',
9091
+ parameters: {
9092
+ dest: address,
9093
+ currency_id: currencyId,
9094
+ keep_alive: false
9095
+ }
9096
+ });
9097
+ }
8733
9098
  return api.callTxMethod({
8734
9099
  module: 'Tokens',
8735
9100
  method: 'transfer',
8736
9101
  parameters: {
8737
9102
  dest: address,
8738
- currency_id: this.getCurrencySelection(asset),
9103
+ currency_id: currencyId,
8739
9104
  value: asset.amount
8740
9105
  }
8741
9106
  });
@@ -8814,17 +9179,21 @@ var Manta = /*#__PURE__*/function (_Parachain) {
8814
9179
  value: function transferLocalNonNativeAsset(options) {
8815
9180
  var api = options.api,
8816
9181
  asset = options.assetInfo,
8817
- address = options.address;
9182
+ address = options.address,
9183
+ balance = options.balance,
9184
+ isAmountAll = options.isAmountAll;
8818
9185
  assertHasId(asset);
9186
+ var assetId = BigInt(asset.assetId);
9187
+ var amount = isAmountAll ? balance : asset.amount;
8819
9188
  return api.callTxMethod({
8820
9189
  module: 'Assets',
8821
9190
  method: 'transfer',
8822
9191
  parameters: {
8823
- id: BigInt(asset.assetId),
9192
+ id: assetId,
8824
9193
  target: {
8825
9194
  Id: address
8826
9195
  },
8827
- amount: asset.amount
9196
+ amount: amount
8828
9197
  }
8829
9198
  });
8830
9199
  }
@@ -8896,20 +9265,8 @@ var Moonbeam = /*#__PURE__*/function (_Parachain) {
8896
9265
  }()
8897
9266
  }, {
8898
9267
  key: "transferLocalNonNativeAsset",
8899
- value: function transferLocalNonNativeAsset(options) {
8900
- var api = options.api,
8901
- assetInfo = options.assetInfo,
8902
- address = options.address;
8903
- assertHasId(assetInfo);
8904
- return api.callTxMethod({
8905
- module: 'Assets',
8906
- method: 'transfer',
8907
- parameters: {
8908
- id: BigInt(assetInfo.assetId),
8909
- target: address,
8910
- amount: assetInfo.amount
8911
- }
8912
- });
9268
+ value: function transferLocalNonNativeAsset(_options) {
9269
+ throw new ScenarioNotSupportedError(this.chain, 'ParaToPara', "".concat(this.chain, " local transfers are temporarily disabled"));
8913
9270
  }
8914
9271
  }]);
8915
9272
  }(Parachain);
@@ -9086,6 +9443,53 @@ var NeuroWeb = /*#__PURE__*/function (_Parachain) {
9086
9443
  value: function transferPolkadotXCM(input) {
9087
9444
  return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
9088
9445
  }
9446
+ }, {
9447
+ key: "transferLocalNativeAsset",
9448
+ value: function transferLocalNativeAsset(options) {
9449
+ var api = options.api,
9450
+ asset = options.assetInfo,
9451
+ address = options.address,
9452
+ isAmountAll = options.isAmountAll;
9453
+ if (isAmountAll) {
9454
+ return Promise.resolve(api.callTxMethod({
9455
+ module: 'Balances',
9456
+ method: 'transfer_all',
9457
+ parameters: {
9458
+ dest: address,
9459
+ keep_alive: false
9460
+ }
9461
+ }));
9462
+ }
9463
+ return Promise.resolve(api.callTxMethod({
9464
+ module: 'Balances',
9465
+ method: 'transfer_keep_alive',
9466
+ parameters: {
9467
+ dest: address,
9468
+ value: asset.amount
9469
+ }
9470
+ }));
9471
+ }
9472
+ }, {
9473
+ key: "transferLocalNonNativeAsset",
9474
+ value: function transferLocalNonNativeAsset(options) {
9475
+ var api = options.api,
9476
+ asset = options.assetInfo,
9477
+ address = options.address,
9478
+ balance = options.balance,
9479
+ isAmountAll = options.isAmountAll;
9480
+ assertHasId(asset);
9481
+ var assetId = BigInt(asset.assetId);
9482
+ var amount = isAmountAll ? balance : asset.amount;
9483
+ return api.callTxMethod({
9484
+ module: 'Assets',
9485
+ method: 'transfer',
9486
+ parameters: {
9487
+ id: assetId,
9488
+ target: address,
9489
+ amount: amount
9490
+ }
9491
+ });
9492
+ }
9089
9493
  }]);
9090
9494
  }(Parachain);
9091
9495
 
@@ -9175,7 +9579,17 @@ var PAssetHub = /*#__PURE__*/function (_PeoplePolkadot) {
9175
9579
  return _callSuper(this, PAssetHub, ['PAssetHub', 'PAssetHub - Contracts', 'Paseo', Version.V5]);
9176
9580
  }
9177
9581
  _inherits(PAssetHub, _PeoplePolkadot);
9178
- return _createClass(PAssetHub);
9582
+ return _createClass(PAssetHub, [{
9583
+ key: "isSendingTempDisabled",
9584
+ value: function isSendingTempDisabled(_options) {
9585
+ return true;
9586
+ }
9587
+ }, {
9588
+ key: "isReceivingTempDisabled",
9589
+ value: function isReceivingTempDisabled(_scenario) {
9590
+ return true;
9591
+ }
9592
+ }]);
9179
9593
  }(PeoplePolkadot);
9180
9594
 
9181
9595
  var Peaq = /*#__PURE__*/function (_Parachain) {
@@ -9200,21 +9614,45 @@ var Peaq = /*#__PURE__*/function (_Parachain) {
9200
9614
  value: function transferRelayToPara() {
9201
9615
  throw new ChainNotSupportedError();
9202
9616
  }
9617
+ }, {
9618
+ key: "isSendingTempDisabled",
9619
+ value: function isSendingTempDisabled(_options) {
9620
+ return true;
9621
+ }
9622
+ }, {
9623
+ key: "isReceivingTempDisabled",
9624
+ value: function isReceivingTempDisabled(_scenario) {
9625
+ return true;
9626
+ }
9203
9627
  }, {
9204
9628
  key: "transferLocalNonNativeAsset",
9205
9629
  value: function transferLocalNonNativeAsset(options) {
9206
9630
  var api = options.api,
9207
9631
  asset = options.assetInfo,
9208
- address = options.address;
9632
+ address = options.address,
9633
+ isAmountAll = options.isAmountAll;
9209
9634
  assertHasId(asset);
9635
+ var assetId = BigInt(asset.assetId);
9636
+ var dest = {
9637
+ Id: address
9638
+ };
9639
+ if (isAmountAll) {
9640
+ return api.callTxMethod({
9641
+ module: 'Assets',
9642
+ method: 'transfer_all',
9643
+ parameters: {
9644
+ id: assetId,
9645
+ dest: dest,
9646
+ keep_alive: false
9647
+ }
9648
+ });
9649
+ }
9210
9650
  return api.callTxMethod({
9211
9651
  module: 'Assets',
9212
9652
  method: 'transfer',
9213
9653
  parameters: {
9214
- id: BigInt(asset.assetId),
9215
- target: {
9216
- Id: address
9217
- },
9654
+ id: assetId,
9655
+ target: dest,
9218
9656
  amount: asset.amount
9219
9657
  }
9220
9658
  });
@@ -9386,17 +9824,21 @@ var Phala = /*#__PURE__*/function (_Parachain) {
9386
9824
  value: function transferLocalNonNativeAsset(options) {
9387
9825
  var api = options.api,
9388
9826
  asset = options.assetInfo,
9389
- address = options.address;
9827
+ address = options.address,
9828
+ isAmountAll = options.isAmountAll;
9390
9829
  assertHasId(asset);
9830
+ var assetId = BigInt(asset.assetId);
9831
+ var dest = {
9832
+ Id: address
9833
+ };
9834
+ var amount = isAmountAll ? options.balance : asset.amount;
9391
9835
  return api.callTxMethod({
9392
9836
  module: 'Assets',
9393
9837
  method: 'transfer',
9394
9838
  parameters: {
9395
- id: BigInt(asset.assetId),
9396
- target: {
9397
- Id: address
9398
- },
9399
- amount: asset.amount
9839
+ id: assetId,
9840
+ target: dest,
9841
+ amount: amount
9400
9842
  }
9401
9843
  });
9402
9844
  }
@@ -9451,23 +9893,46 @@ var RobonomicsPolkadot = /*#__PURE__*/function (_Parachain) {
9451
9893
  return _createClass(RobonomicsPolkadot, [{
9452
9894
  key: "transferPolkadotXCM",
9453
9895
  value: function transferPolkadotXCM(input) {
9896
+ var scenario = input.scenario;
9897
+ if (scenario === 'ParaToPara') {
9898
+ throw new ScenarioNotSupportedError(this.chain, scenario);
9899
+ }
9454
9900
  return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
9455
9901
  }
9902
+ }, {
9903
+ key: "isReceivingTempDisabled",
9904
+ value: function isReceivingTempDisabled(scenario) {
9905
+ return scenario !== 'RelayToPara';
9906
+ }
9456
9907
  }, {
9457
9908
  key: "transferLocalNonNativeAsset",
9458
9909
  value: function transferLocalNonNativeAsset(options) {
9459
9910
  var api = options.api,
9460
9911
  asset = options.assetInfo,
9461
- address = options.address;
9912
+ address = options.address,
9913
+ isAmountAll = options.isAmountAll;
9462
9914
  assertHasId(asset);
9915
+ var assetId = BigInt(asset.assetId);
9916
+ var dest = {
9917
+ Id: address
9918
+ };
9919
+ if (isAmountAll) {
9920
+ return api.callTxMethod({
9921
+ module: 'Assets',
9922
+ method: 'transfer_all',
9923
+ parameters: {
9924
+ id: assetId,
9925
+ dest: dest,
9926
+ keep_alive: false
9927
+ }
9928
+ });
9929
+ }
9463
9930
  return api.callTxMethod({
9464
9931
  module: 'Assets',
9465
9932
  method: 'transfer',
9466
9933
  parameters: {
9467
- id: BigInt(asset.assetId),
9468
- target: {
9469
- Id: address
9470
- },
9934
+ id: assetId,
9935
+ target: dest,
9471
9936
  amount: asset.amount
9472
9937
  }
9473
9938
  });
@@ -9526,6 +9991,16 @@ var Subsocial = /*#__PURE__*/function (_Parachain) {
9526
9991
  }
9527
9992
  return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
9528
9993
  }
9994
+ }, {
9995
+ key: "isSendingTempDisabled",
9996
+ value: function isSendingTempDisabled(_options) {
9997
+ return true;
9998
+ }
9999
+ }, {
10000
+ key: "isReceivingTempDisabled",
10001
+ value: function isReceivingTempDisabled(_scenario) {
10002
+ return true;
10003
+ }
9529
10004
  }]);
9530
10005
  }(Parachain);
9531
10006
 
@@ -9608,13 +10083,21 @@ var Zeitgeist = /*#__PURE__*/function (_Parachain) {
9608
10083
  var currencySelection = this.getCurrencySelection(asset);
9609
10084
  return transferXTokens(input, currencySelection);
9610
10085
  }
10086
+ }, {
10087
+ key: "canReceiveFrom",
10088
+ value: function canReceiveFrom(origin) {
10089
+ return origin !== 'Astar';
10090
+ }
9611
10091
  }, {
9612
10092
  key: "transferLocalNonNativeAsset",
9613
10093
  value: function transferLocalNonNativeAsset(options) {
9614
10094
  var api = options.api,
9615
10095
  asset = options.assetInfo,
9616
- address = options.address;
10096
+ address = options.address,
10097
+ balance = options.balance,
10098
+ isAmountAll = options.isAmountAll;
9617
10099
  assertHasId(asset);
10100
+ var amount = isAmountAll ? balance : asset.amount;
9618
10101
  return api.callTxMethod({
9619
10102
  module: 'AssetManager',
9620
10103
  method: 'transfer',
@@ -9623,7 +10106,7 @@ var Zeitgeist = /*#__PURE__*/function (_Parachain) {
9623
10106
  Id: address
9624
10107
  },
9625
10108
  currency_id: this.getCurrencySelection(asset),
9626
- amount: asset.amount
10109
+ amount: amount
9627
10110
  }
9628
10111
  });
9629
10112
  }
@@ -9756,6 +10239,8 @@ var MAX_WEIGHT = {
9756
10239
  refTime: MAX_U64
9757
10240
  };
9758
10241
  var BYPASS_MINT_AMOUNT = '1000';
10242
+ var MIN_AMOUNT = 2n;
10243
+ var AMOUNT_ALL = 'ALL';
9759
10244
 
9760
10245
  var buildClaimAssetsParams = function buildClaimAssetsParams(options) {
9761
10246
  var assets = options.assets,
@@ -9911,10 +10396,12 @@ var dryRunOrigin = /*#__PURE__*/function () {
9911
10396
  };
9912
10397
  }();
9913
10398
 
9914
- var AssetManagerPallet = /*#__PURE__*/function () {
10399
+ var AssetManagerPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
9915
10400
  function AssetManagerPallet() {
9916
10401
  _classCallCheck(this, AssetManagerPallet);
10402
+ return _callSuper(this, AssetManagerPallet, arguments);
9917
10403
  }
10404
+ _inherits(AssetManagerPallet, _BaseAssetsPallet);
9918
10405
  return _createClass(AssetManagerPallet, [{
9919
10406
  key: "mint",
9920
10407
  value: function mint(address, asset, balance) {
@@ -9923,7 +10410,7 @@ var AssetManagerPallet = /*#__PURE__*/function () {
9923
10410
  amount = asset.amount;
9924
10411
  return Promise.resolve({
9925
10412
  balanceTx: {
9926
- module: 'AssetManager',
10413
+ module: this.palletName,
9927
10414
  method: 'updateBalance',
9928
10415
  parameters: {
9929
10416
  who: {
@@ -9938,12 +10425,14 @@ var AssetManagerPallet = /*#__PURE__*/function () {
9938
10425
  });
9939
10426
  }
9940
10427
  }]);
9941
- }();
10428
+ }(BaseAssetsPallet);
9942
10429
 
9943
- var BalancesPallet = /*#__PURE__*/function () {
10430
+ var BalancesPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
9944
10431
  function BalancesPallet() {
9945
10432
  _classCallCheck(this, BalancesPallet);
10433
+ return _callSuper(this, BalancesPallet, arguments);
9946
10434
  }
10435
+ _inherits(BalancesPallet, _BaseAssetsPallet);
9947
10436
  return _createClass(BalancesPallet, [{
9948
10437
  key: "mint",
9949
10438
  value: function mint(address, assetInfo, balance, chain) {
@@ -9951,7 +10440,7 @@ var BalancesPallet = /*#__PURE__*/function () {
9951
10440
  var notUseId = chain.startsWith('Hydration') || chain === 'Basilisk' || isChainEvm(chain);
9952
10441
  return Promise.resolve({
9953
10442
  balanceTx: {
9954
- module: 'Balances',
10443
+ module: this.palletName,
9955
10444
  method: 'force_set_balance',
9956
10445
  parameters: {
9957
10446
  who: notUseId ? address : {
@@ -9963,37 +10452,43 @@ var BalancesPallet = /*#__PURE__*/function () {
9963
10452
  });
9964
10453
  }
9965
10454
  }]);
9966
- }();
10455
+ }(BaseAssetsPallet);
9967
10456
 
9968
- var CurrenciesPallet = /*#__PURE__*/function () {
10457
+ var CurrenciesPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
9969
10458
  function CurrenciesPallet() {
9970
10459
  _classCallCheck(this, CurrenciesPallet);
10460
+ return _callSuper(this, CurrenciesPallet, arguments);
9971
10461
  }
10462
+ _inherits(CurrenciesPallet, _BaseAssetsPallet);
9972
10463
  return _createClass(CurrenciesPallet, [{
9973
10464
  key: "mint",
9974
- value: function mint(address, assetInfo, balance) {
9975
- assertHasId(assetInfo);
9976
- var assetId = assetInfo.assetId,
9977
- amount = assetInfo.amount;
10465
+ value: function mint(address, asset, balance, chain) {
10466
+ var isKarura = chain.startsWith('Karura');
10467
+ var id = isKarura ? getChain('Karura').getCurrencySelection(asset) : (assertHasId(asset), Number(asset.assetId));
10468
+ var amount = asset.amount;
9978
10469
  return Promise.resolve({
9979
10470
  balanceTx: {
9980
- module: 'Currencies',
10471
+ module: this.palletName,
9981
10472
  method: 'update_balance',
9982
10473
  parameters: {
9983
- who: address,
9984
- currency_id: Number(assetId),
10474
+ who: isKarura ? {
10475
+ Id: address
10476
+ } : address,
10477
+ currency_id: id,
9985
10478
  amount: balance + amount
9986
10479
  }
9987
10480
  }
9988
10481
  });
9989
10482
  }
9990
10483
  }]);
9991
- }();
10484
+ }(BaseAssetsPallet);
9992
10485
 
9993
- var ForeignAssetsPallet = /*#__PURE__*/function () {
10486
+ var ForeignAssetsPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
9994
10487
  function ForeignAssetsPallet() {
9995
10488
  _classCallCheck(this, ForeignAssetsPallet);
10489
+ return _callSuper(this, ForeignAssetsPallet, arguments);
9996
10490
  }
10491
+ _inherits(ForeignAssetsPallet, _BaseAssetsPallet);
9997
10492
  return _createClass(ForeignAssetsPallet, [{
9998
10493
  key: "mint",
9999
10494
  value: function mint(address, asset) {
@@ -10002,7 +10497,7 @@ var ForeignAssetsPallet = /*#__PURE__*/function () {
10002
10497
  amount = asset.amount;
10003
10498
  return Promise.resolve({
10004
10499
  assetStatusTx: {
10005
- module: 'ForeignAssets',
10500
+ module: this.palletName,
10006
10501
  method: 'force_asset_status',
10007
10502
  parameters: {
10008
10503
  id: location,
@@ -10024,7 +10519,7 @@ var ForeignAssetsPallet = /*#__PURE__*/function () {
10024
10519
  }
10025
10520
  },
10026
10521
  balanceTx: {
10027
- module: 'ForeignAssets',
10522
+ module: this.palletName,
10028
10523
  method: 'mint',
10029
10524
  parameters: {
10030
10525
  id: location,
@@ -10037,7 +10532,7 @@ var ForeignAssetsPallet = /*#__PURE__*/function () {
10037
10532
  });
10038
10533
  }
10039
10534
  }]);
10040
- }();
10535
+ }(BaseAssetsPallet);
10041
10536
 
10042
10537
  var SIZE = 32;
10043
10538
  var BALANCE_SLOT = 0;
@@ -10052,10 +10547,12 @@ var calculateMappingSlot = function calculateMappingSlot(key) {
10052
10547
  var encoded = concat([keyPadded, slotHex]);
10053
10548
  return keccak256(encoded);
10054
10549
  };
10055
- var SystemPallet = /*#__PURE__*/function () {
10550
+ var SystemPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
10056
10551
  function SystemPallet() {
10057
10552
  _classCallCheck(this, SystemPallet);
10553
+ return _callSuper(this, SystemPallet, arguments);
10058
10554
  }
10555
+ _inherits(SystemPallet, _BaseAssetsPallet);
10059
10556
  return _createClass(SystemPallet, [{
10060
10557
  key: "mint",
10061
10558
  value: function () {
@@ -10076,7 +10573,7 @@ var SystemPallet = /*#__PURE__*/function () {
10076
10573
  storageKey = _context.v;
10077
10574
  return _context.a(2, {
10078
10575
  balanceTx: {
10079
- module: 'System',
10576
+ module: this.palletName,
10080
10577
  method: 'set_storage',
10081
10578
  parameters: {
10082
10579
  items: [[storageKey, amountEncoded]]
@@ -10084,7 +10581,7 @@ var SystemPallet = /*#__PURE__*/function () {
10084
10581
  }
10085
10582
  });
10086
10583
  }
10087
- }, _callee);
10584
+ }, _callee, this);
10088
10585
  }));
10089
10586
  function mint(_x, _x2, _x3, _x4, _x5) {
10090
10587
  return _mint.apply(this, arguments);
@@ -10092,12 +10589,14 @@ var SystemPallet = /*#__PURE__*/function () {
10092
10589
  return mint;
10093
10590
  }()
10094
10591
  }]);
10095
- }();
10592
+ }(BaseAssetsPallet);
10096
10593
 
10097
- var TokensPallet = /*#__PURE__*/function () {
10594
+ var TokensPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
10098
10595
  function TokensPallet() {
10099
10596
  _classCallCheck(this, TokensPallet);
10597
+ return _callSuper(this, TokensPallet, arguments);
10100
10598
  }
10599
+ _inherits(TokensPallet, _BaseAssetsPallet);
10101
10600
  return _createClass(TokensPallet, [{
10102
10601
  key: "mint",
10103
10602
  value: function mint(address, asset, balance, chain) {
@@ -10107,7 +10606,7 @@ var TokensPallet = /*#__PURE__*/function () {
10107
10606
  var amount = asset.amount;
10108
10607
  return Promise.resolve({
10109
10608
  balanceTx: {
10110
- module: 'Tokens',
10609
+ module: this.palletName,
10111
10610
  method: 'set_balance',
10112
10611
  parameters: {
10113
10612
  who: {
@@ -10121,35 +10620,22 @@ var TokensPallet = /*#__PURE__*/function () {
10121
10620
  });
10122
10621
  }
10123
10622
  }]);
10124
- }();
10623
+ }(BaseAssetsPallet);
10125
10624
 
10126
10625
  var palletRegistry = {
10127
- Balances: BalancesPallet,
10128
- Tokens: TokensPallet,
10129
- Currencies: CurrenciesPallet,
10130
- Assets: AssetsPallet,
10131
- ForeignAssets: ForeignAssetsPallet,
10132
- AssetManager: AssetManagerPallet,
10133
- System: SystemPallet
10626
+ Balances: new BalancesPallet('Balances'),
10627
+ Tokens: new TokensPallet('Tokens'),
10628
+ Currencies: new CurrenciesPallet('Currencies'),
10629
+ Assets: new AssetsPallet('Assets'),
10630
+ ForeignAssets: new ForeignAssetsPallet('ForeignAssets'),
10631
+ AssetManager: new AssetManagerPallet('AssetManager'),
10632
+ System: new SystemPallet('System'),
10633
+ Fungibles: new AssetsPallet('Fungibles')
10134
10634
  };
10135
10635
  var getPalletInstance = function getPalletInstance(type) {
10136
- var HandlerClass = palletRegistry[type];
10137
- return new HandlerClass();
10636
+ return palletRegistry[type];
10138
10637
  };
10139
10638
 
10140
- var getCurrencySelection = function getCurrencySelection(asset) {
10141
- if (asset.location) return {
10142
- location: asset.location
10143
- };
10144
- if (isForeignAsset(asset) && asset.assetId) {
10145
- return {
10146
- id: asset.assetId
10147
- };
10148
- }
10149
- return {
10150
- symbol: asset.symbol
10151
- };
10152
- };
10153
10639
  var pickOtherPallet = function pickOtherPallet(asset, pallets) {
10154
10640
  if (isForeignAsset(asset) && (!asset.assetId || asset.assetId.startsWith('0x'))) {
10155
10641
  var _pallets$find;
@@ -10688,6 +11174,9 @@ var resolveOverriddenAsset = function resolveOverriddenAsset(options, isBridge,
10688
11174
  }
10689
11175
  // MultiAsset is an array of TCurrencyCore, search for assets
10690
11176
  var assets = currency.map(function (currency) {
11177
+ if (currency.amount === AMOUNT_ALL) {
11178
+ throw new InvalidCurrencyError('Multi assets cannot use amount all. Please specify amount.');
11179
+ }
10691
11180
  var asset = findAssetInfo(origin, currency, !isTLocation(destination) ? destination : null);
10692
11181
  if (!asset) {
10693
11182
  throw new InvalidCurrencyError("Origin chain ".concat(origin, " does not support currency ").concat(JSON.stringify(currency)));
@@ -11439,11 +11928,11 @@ var transferRelayToPara = /*#__PURE__*/function () {
11439
11928
 
11440
11929
  var send = /*#__PURE__*/function () {
11441
11930
  var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
11442
- var api, origin, currency, feeAsset, address, destination, paraIdTo, version, senderAddress, ahAddress, pallet, method, isBridge, assetCheckEnabled, asset, resolvedFeeAsset, amount, finalAmount, originVersion, destVersion, resolvedVersion, isLocalTransfer, overriddenAsset, resolvedAsset, finalAsset, finalVersion, normalizedAsset;
11931
+ var api, origin, currency, feeAsset, address, destination, paraIdTo, version, senderAddress, ahAddress, pallet, method, isAmountAll, isBridge, assetCheckEnabled, asset, resolvedFeeAsset, amount, finalAmount, originVersion, destVersion, resolvedVersion, isLocalTransfer, overriddenAsset, resolvedAsset, finalAsset, finalVersion, normalizedAsset;
11443
11932
  return _regenerator().w(function (_context) {
11444
11933
  while (1) switch (_context.n) {
11445
11934
  case 0:
11446
- api = options.api, origin = options.from, currency = options.currency, feeAsset = options.feeAsset, address = options.address, destination = options.to, paraIdTo = options.paraIdTo, version = options.version, senderAddress = options.senderAddress, ahAddress = options.ahAddress, pallet = options.pallet, method = options.method;
11935
+ api = options.api, origin = options.from, currency = options.currency, feeAsset = options.feeAsset, address = options.address, destination = options.to, paraIdTo = options.paraIdTo, version = options.version, senderAddress = options.senderAddress, ahAddress = options.ahAddress, pallet = options.pallet, method = options.method, isAmountAll = options.isAmountAll;
11447
11936
  validateCurrency(currency, feeAsset);
11448
11937
  validateDestination(origin, destination);
11449
11938
  validateDestinationAddress(address, destination);
@@ -11455,7 +11944,7 @@ var send = /*#__PURE__*/function () {
11455
11944
  resolvedFeeAsset = feeAsset ? resolveFeeAsset(feeAsset, origin, destination, currency) : undefined;
11456
11945
  validateAssetSupport(options, assetCheckEnabled, isBridge, asset);
11457
11946
  amount = Array.isArray(currency) ? 0n : abstractDecimals(currency.amount, asset === null || asset === void 0 ? void 0 : asset.decimals, api); // Ensure amount is at least 2 to avoid Rust panic (only for non-array currencies)
11458
- finalAmount = !Array.isArray(currency) && amount < 2n ? 2n : amount;
11947
+ finalAmount = !Array.isArray(currency) && amount < MIN_AMOUNT ? MIN_AMOUNT : amount;
11459
11948
  originVersion = getChainVersion(origin);
11460
11949
  destVersion = !isTLocation(destination) ? getChainVersion(destination) : undefined;
11461
11950
  resolvedVersion = selectXcmVersion(version, originVersion, destVersion);
@@ -11489,7 +11978,16 @@ var send = /*#__PURE__*/function () {
11489
11978
  _context.n = 4;
11490
11979
  return api.init(origin, TX_CLIENT_TIMEOUT_MS);
11491
11980
  case 4:
11492
- return _context.a(2, api.callTxMethod({
11981
+ return _context.a(2, api.callTxMethod(isAmountAll ? {
11982
+ module: 'Balances',
11983
+ method: 'transfer_all',
11984
+ parameters: {
11985
+ dest: {
11986
+ Id: address
11987
+ },
11988
+ keepAlive: true
11989
+ }
11990
+ } : {
11493
11991
  module: 'Balances',
11494
11992
  method: 'transfer_keep_alive',
11495
11993
  parameters: {
@@ -11505,6 +12003,7 @@ var send = /*#__PURE__*/function () {
11505
12003
  origin: origin,
11506
12004
  destination: destination,
11507
12005
  address: address,
12006
+ senderAddress: senderAddress,
11508
12007
  assetInfo: _objectSpread2(_objectSpread2({}, asset), {}, {
11509
12008
  amount: finalAmount
11510
12009
  }),
@@ -11547,7 +12046,8 @@ var send = /*#__PURE__*/function () {
11547
12046
  senderAddress: senderAddress,
11548
12047
  ahAddress: ahAddress,
11549
12048
  pallet: pallet,
11550
- method: method
12049
+ method: method,
12050
+ isAmountAll: isAmountAll
11551
12051
  }));
11552
12052
  }
11553
12053
  }, _callee);
@@ -11972,7 +12472,7 @@ var getTransferInfo = /*#__PURE__*/function () {
11972
12472
 
11973
12473
  var getMinTransferableAmountInternal = /*#__PURE__*/function () {
11974
12474
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
11975
- var api, origin, senderAddress, address, chain, destination, currency, feeAsset, buildTx, builder, resolvedFeeAsset, asset, destAsset, destCurrency, destApi, destBalance, destEd, nativeAssetInfo, isNativeAsset, paysOriginInSendingAsset, amount, result, originFee, hopFeeTotal, destinationFee, edComponent, minAmount, modifiedBuilder, dryRunResult, _t, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
12475
+ var api, origin, senderAddress, address, chain, destination, currency, feeAsset, buildTx, builder, resolvedFeeAsset, asset, destAsset, destCurrency, destApi, destBalance, destEd, nativeAssetInfo, isNativeAsset, paysOriginInSendingAsset, amount, result, originFee, hopFeeTotal, destinationFee, edComponent, minAmount, modifiedBuilder, _yield$modifiedBuilde, tx, dryRunResult;
11976
12476
  return _regenerator().w(function (_context) {
11977
12477
  while (1) switch (_context.n) {
11978
12478
  case 0:
@@ -12031,30 +12531,23 @@ var getMinTransferableAmountInternal = /*#__PURE__*/function () {
12031
12531
  modifiedBuilder = builder.currency(_objectSpread2(_objectSpread2({}, currency), {}, {
12032
12532
  amount: minAmount
12033
12533
  }));
12034
- _t = dryRunInternal;
12035
- _t2 = api;
12036
12534
  _context.n = 4;
12037
12535
  return modifiedBuilder['buildInternal']();
12038
12536
  case 4:
12039
- _t3 = _context.v;
12040
- _t4 = chain;
12041
- _t5 = destination;
12042
- _t6 = senderAddress;
12043
- _t7 = address;
12044
- _t8 = _objectSpread2(_objectSpread2({}, currency), {}, {
12045
- amount: minAmount
12046
- });
12047
- _t9 = feeAsset;
12537
+ _yield$modifiedBuilde = _context.v;
12538
+ tx = _yield$modifiedBuilde.tx;
12048
12539
  _context.n = 5;
12049
- return _t({
12050
- api: _t2,
12051
- tx: _t3,
12052
- origin: _t4,
12053
- destination: _t5,
12054
- senderAddress: _t6,
12055
- address: _t7,
12056
- currency: _t8,
12057
- feeAsset: _t9
12540
+ return dryRunInternal({
12541
+ api: api,
12542
+ tx: tx,
12543
+ origin: chain,
12544
+ destination: destination,
12545
+ senderAddress: senderAddress,
12546
+ address: address,
12547
+ currency: _objectSpread2(_objectSpread2({}, currency), {}, {
12548
+ amount: minAmount
12549
+ }),
12550
+ feeAsset: feeAsset
12058
12551
  });
12059
12552
  case 5:
12060
12553
  dryRunResult = _context.v;
@@ -12245,12 +12738,13 @@ var computeInstructionFee = /*#__PURE__*/function () {
12245
12738
  }();
12246
12739
  var computeAllFees = /*#__PURE__*/function () {
12247
12740
  var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref3, customXcm, isDotAsset, refundInstruction) {
12741
+ var _customXcm$DepositRes;
12248
12742
  var reserve, dest, version, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0;
12249
12743
  return _regenerator().w(function (_context2) {
12250
12744
  while (1) switch (_context2.n) {
12251
12745
  case 0:
12252
12746
  reserve = _ref3.reserve, dest = _ref3.dest, version = _ref3.options.version;
12253
- if (!('DepositReserveAsset' in customXcm)) {
12747
+ if (!('DepositReserveAsset' in customXcm || 'InitiateTeleport' in customXcm)) {
12254
12748
  _context2.n = 6;
12255
12749
  break;
12256
12750
  }
@@ -12273,7 +12767,7 @@ var computeAllFees = /*#__PURE__*/function () {
12273
12767
  case 4:
12274
12768
  _t5 = _t4;
12275
12769
  _context2.n = 5;
12276
- return computeInstructionFee(hasXcmPaymentApiSupport(dest.chain) ? dest : reserve, version, customXcm.DepositReserveAsset.xcm);
12770
+ return computeInstructionFee(hasXcmPaymentApiSupport(dest.chain) ? dest : reserve, version, ((_customXcm$DepositRes = customXcm === null || customXcm === void 0 ? void 0 : customXcm.DepositReserveAsset) !== null && _customXcm$DepositRes !== void 0 ? _customXcm$DepositRes : customXcm.InitiateTeleport).xcm);
12277
12771
  case 5:
12278
12772
  _t6 = _context2.v;
12279
12773
  _t2 = {
@@ -12328,7 +12822,7 @@ var computeAllFees = /*#__PURE__*/function () {
12328
12822
  }();
12329
12823
 
12330
12824
  var createTypeAndThenCallContext = /*#__PURE__*/function () {
12331
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, options) {
12825
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, options, overrideReserve) {
12332
12826
  var api, destChain, assetInfo, reserveChain, destApi, reserveApi;
12333
12827
  return _regenerator().w(function (_context) {
12334
12828
  while (1) switch (_context.n) {
@@ -12341,12 +12835,14 @@ var createTypeAndThenCallContext = /*#__PURE__*/function () {
12341
12835
  }
12342
12836
  throw new InvalidParameterError('Cannot override destination when using type and then transfer.');
12343
12837
  case 1:
12344
- reserveChain = isRelayChain(destChain) ? destChain : getAssetReserveChain(chain, chain, assetInfo.location);
12838
+ reserveChain = overrideReserve !== undefined ? overrideReserve :
12839
+ // Paseo ecosystem migrated reserves to AssetHub
12840
+ getRelayChainOf(chain) === 'Paseo' ? getAssetReserveChain(chain, chain, assetInfo.location) : isRelayChain(destChain) ? destChain : getAssetReserveChain(chain, chain, assetInfo.location);
12345
12841
  destApi = api.clone();
12346
12842
  _context.n = 2;
12347
12843
  return destApi.init(destChain);
12348
12844
  case 2:
12349
- reserveApi = reserveChain !== chain ? api.clone() : destApi;
12845
+ reserveApi = reserveChain === chain ? api : reserveChain === destChain ? destApi : api.clone();
12350
12846
  _context.n = 3;
12351
12847
  return reserveApi.init(reserveChain);
12352
12848
  case 3:
@@ -12369,7 +12865,7 @@ var createTypeAndThenCallContext = /*#__PURE__*/function () {
12369
12865
  }
12370
12866
  }, _callee);
12371
12867
  }));
12372
- return function createTypeAndThenCallContext(_x, _x2) {
12868
+ return function createTypeAndThenCallContext(_x, _x2, _x3) {
12373
12869
  return _ref.apply(this, arguments);
12374
12870
  };
12375
12871
  }();
@@ -12417,20 +12913,33 @@ var createCustomXcm = function createCustomXcm(_ref, isDotAsset) {
12417
12913
  if (origin.chain !== reserve.chain && dest.chain !== reserve.chain) {
12418
12914
  var buyExecutionAmount = !isDotAsset ? destFee : assetInfo.amount - reserveFee - refundFee;
12419
12915
  if (buyExecutionAmount < 0n) throw new AmountTooLowError();
12916
+ var filter = fees.destFee === MIN_FEE ? {
12917
+ Wild: 'All'
12918
+ } : {
12919
+ Definite: assetsFilter
12920
+ };
12921
+ var buyExecution = {
12922
+ BuyExecution: {
12923
+ fees: createAsset(version, buyExecutionAmount, feeAssetLocation),
12924
+ weight_limit: 'Unlimited'
12925
+ }
12926
+ };
12927
+ var destLoc = createDestination(version, origin.chain, destination, paraIdTo);
12928
+ // If destination is a system chain, use teleport instead of reserve deposit
12929
+ if (isSystemChain(dest.chain)) {
12930
+ return {
12931
+ InitiateTeleport: {
12932
+ assets: filter,
12933
+ dest: destLoc,
12934
+ xcm: [buyExecution, depositInstruction]
12935
+ }
12936
+ };
12937
+ }
12420
12938
  return {
12421
12939
  DepositReserveAsset: {
12422
- assets: fees.destFee === MIN_FEE ? {
12423
- Wild: 'All'
12424
- } : {
12425
- Definite: assetsFilter
12426
- },
12427
- dest: createDestination(version, origin.chain, destination, paraIdTo),
12428
- xcm: [{
12429
- BuyExecution: {
12430
- fees: createAsset(version, buyExecutionAmount, feeAssetLocation),
12431
- weight_limit: 'Unlimited'
12432
- }
12433
- }, depositInstruction]
12940
+ assets: filter,
12941
+ dest: destLoc,
12942
+ xcm: [buyExecution, depositInstruction]
12434
12943
  }
12435
12944
  };
12436
12945
  }
@@ -12468,14 +12977,14 @@ var buildAssets = function buildAssets(chain, asset, feeAmount, isDotAsset, vers
12468
12977
  * Creates a type and then call for transferring assets using XCM. Works only for DOT and snowbridge assets so far.
12469
12978
  */
12470
12979
  var createTypeAndThenCall = /*#__PURE__*/function () {
12471
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, options) {
12980
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, options, overrideReserve) {
12472
12981
  var api, senderAddress, version, context, assetInfo, isDotAsset, customXcm, assetCount, refundInstruction, fees, finalCustomXcm, totalFee, assets;
12473
12982
  return _regenerator().w(function (_context) {
12474
12983
  while (1) switch (_context.n) {
12475
12984
  case 0:
12476
12985
  api = options.api, senderAddress = options.senderAddress, version = options.version;
12477
12986
  _context.n = 1;
12478
- return createTypeAndThenCallContext(chain, options);
12987
+ return createTypeAndThenCallContext(chain, options, overrideReserve);
12479
12988
  case 1:
12480
12989
  context = _context.v;
12481
12990
  assetInfo = context.assetInfo;
@@ -12505,10 +13014,183 @@ var createTypeAndThenCall = /*#__PURE__*/function () {
12505
13014
  }
12506
13015
  }, _callee);
12507
13016
  }));
12508
- return function createTypeAndThenCall(_x, _x2) {
13017
+ return function createTypeAndThenCall(_x, _x2, _x3) {
13018
+ return _ref.apply(this, arguments);
13019
+ };
13020
+ }();
13021
+
13022
+ /**
13023
+ * Choose a reserve (AssetHub or Relay) by checking the beneficiary’s balance on each.
13024
+ * We resolve the beneficiary account on every candidate and return the first with
13025
+ * balance \>= amount, or undefined if none qualify.
13026
+ */
13027
+ var selectReserveByBalance = /*#__PURE__*/function () {
13028
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, options) {
13029
+ var api, assetInfo, destination, version, paraIdTo, relay, candidates, _i, _candidates, reserve, reserveApi, location, resolvedAddress, balance;
13030
+ return _regenerator().w(function (_context) {
13031
+ while (1) switch (_context.n) {
13032
+ case 0:
13033
+ api = options.api, assetInfo = options.assetInfo, destination = options.destination, version = options.version, paraIdTo = options.paraIdTo;
13034
+ relay = getRelayChainOf(chain);
13035
+ candidates = ["AssetHub".concat(relay), relay];
13036
+ _i = 0, _candidates = candidates;
13037
+ case 1:
13038
+ if (!(_i < _candidates.length)) {
13039
+ _context.n = 7;
13040
+ break;
13041
+ }
13042
+ reserve = _candidates[_i];
13043
+ reserveApi = api.clone();
13044
+ _context.n = 2;
13045
+ return reserveApi.init(reserve);
13046
+ case 2:
13047
+ location = createDestination(version, chain, destination, paraIdTo);
13048
+ _context.n = 3;
13049
+ return reserveApi.convertLocationToAccount(location);
13050
+ case 3:
13051
+ resolvedAddress = _context.v;
13052
+ if (resolvedAddress) {
13053
+ _context.n = 4;
13054
+ break;
13055
+ }
13056
+ return _context.a(3, 6);
13057
+ case 4:
13058
+ assertAddressIsString(resolvedAddress);
13059
+ _context.n = 5;
13060
+ return getAssetBalanceInternal({
13061
+ api: reserveApi,
13062
+ chain: reserve,
13063
+ address: resolvedAddress,
13064
+ currency: getCurrencySelection(assetInfo)
13065
+ });
13066
+ case 5:
13067
+ balance = _context.v;
13068
+ if (!(balance >= assetInfo.amount)) {
13069
+ _context.n = 6;
13070
+ break;
13071
+ }
13072
+ return _context.a(2, reserve);
13073
+ case 6:
13074
+ _i++;
13075
+ _context.n = 1;
13076
+ break;
13077
+ case 7:
13078
+ return _context.a(2, undefined);
13079
+ }
13080
+ }, _callee);
13081
+ }));
13082
+ return function selectReserveByBalance(_x, _x2) {
13083
+ return _ref.apply(this, arguments);
13084
+ };
13085
+ }();
13086
+
13087
+ var createCallForReserve = /*#__PURE__*/function () {
13088
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, reserveChain, options) {
13089
+ var api, destination, address, senderAddress, currency, feeCurrency, serialized, tx, dryRunResult, success;
13090
+ return _regenerator().w(function (_context) {
13091
+ while (1) switch (_context.n) {
13092
+ case 0:
13093
+ api = options.api, destination = options.destination, address = options.address, senderAddress = options.senderAddress, currency = options.currency, feeCurrency = options.feeCurrency;
13094
+ _context.n = 1;
13095
+ return createTypeAndThenCall(chain, options, reserveChain);
13096
+ case 1:
13097
+ serialized = _context.v;
13098
+ assertAddressIsString(address);
13099
+ assertToIsString(destination, 'Location destination is not supported for reserve auto-selection.');
13100
+ assertSenderAddress(senderAddress);
13101
+ tx = api.callTxMethod(serialized);
13102
+ _context.n = 2;
13103
+ return dryRunInternal({
13104
+ api: api,
13105
+ tx: tx,
13106
+ origin: chain,
13107
+ destination: destination,
13108
+ address: address,
13109
+ senderAddress: senderAddress,
13110
+ currency: currency,
13111
+ feeAsset: feeCurrency,
13112
+ useRootOrigin: true
13113
+ });
13114
+ case 2:
13115
+ dryRunResult = _context.v;
13116
+ success = !dryRunResult.failureReason;
13117
+ return _context.a(2, {
13118
+ call: serialized,
13119
+ success: success
13120
+ });
13121
+ }
13122
+ }, _callee);
13123
+ }));
13124
+ return function createCallForReserve(_x, _x2, _x3) {
12509
13125
  return _ref.apply(this, arguments);
12510
13126
  };
12511
13127
  }();
13128
+ /**
13129
+ * Creates a type-and-then call but auto-selects the asset reserve between AssetHub and the Relay chain
13130
+ * by dry-running both variants and preferring the one that succeeds. If both fail, returns the
13131
+ * AssetHub variant. Supports only relaychain assets.
13132
+ */
13133
+ var createTypeThenAutoReserve = /*#__PURE__*/function () {
13134
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(chain, options) {
13135
+ var originSupports, destSupports, reserve, relay, assetHubReserve, ahResult, relayResult;
13136
+ return _regenerator().w(function (_context2) {
13137
+ while (1) switch (_context2.n) {
13138
+ case 0:
13139
+ // Use dry-run path only when BOTH origin and destination support it
13140
+ originSupports = hasDryRunSupport(chain);
13141
+ destSupports = options.destChain ? hasDryRunSupport(options.destChain) : false;
13142
+ if (originSupports && destSupports) {
13143
+ _context2.n = 5;
13144
+ break;
13145
+ }
13146
+ _context2.n = 1;
13147
+ return selectReserveByBalance(chain, options);
13148
+ case 1:
13149
+ reserve = _context2.v;
13150
+ if (!reserve) {
13151
+ _context2.n = 3;
13152
+ break;
13153
+ }
13154
+ _context2.n = 2;
13155
+ return createTypeAndThenCall(chain, options, reserve);
13156
+ case 2:
13157
+ return _context2.a(2, _context2.v);
13158
+ case 3:
13159
+ _context2.n = 4;
13160
+ return createTypeAndThenCall(chain, options);
13161
+ case 4:
13162
+ return _context2.a(2, _context2.v);
13163
+ case 5:
13164
+ relay = getRelayChainOf(chain);
13165
+ assetHubReserve = "AssetHub".concat(relay);
13166
+ _context2.n = 6;
13167
+ return createCallForReserve(chain, assetHubReserve, options);
13168
+ case 6:
13169
+ ahResult = _context2.v;
13170
+ if (!ahResult.success) {
13171
+ _context2.n = 7;
13172
+ break;
13173
+ }
13174
+ return _context2.a(2, ahResult.call);
13175
+ case 7:
13176
+ _context2.n = 8;
13177
+ return createCallForReserve(chain, relay, options);
13178
+ case 8:
13179
+ relayResult = _context2.v;
13180
+ if (!relayResult.success) {
13181
+ _context2.n = 9;
13182
+ break;
13183
+ }
13184
+ return _context2.a(2, relayResult.call);
13185
+ case 9:
13186
+ return _context2.a(2, ahResult.call);
13187
+ }
13188
+ }, _callee2);
13189
+ }));
13190
+ return function createTypeThenAutoReserve(_x4, _x5) {
13191
+ return _ref2.apply(this, arguments);
13192
+ };
13193
+ }();
12512
13194
 
12513
13195
  var calculateTotalXcmFee = function calculateTotalXcmFee(feeResult) {
12514
13196
  var _feeResult$assetHub;
@@ -12741,6 +13423,54 @@ var AssetClaimBuilder = /*#__PURE__*/function () {
12741
13423
  }]);
12742
13424
  }();
12743
13425
 
13426
+ var normalizeAmountAll = /*#__PURE__*/function () {
13427
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api, buildTx, options) {
13428
+ var currency, isAmountAll, transferable;
13429
+ return _regenerator().w(function (_context) {
13430
+ while (1) switch (_context.n) {
13431
+ case 0:
13432
+ currency = options.currency;
13433
+ isAmountAll = !Array.isArray(currency) && currency.amount === AMOUNT_ALL;
13434
+ if (isAmountAll) {
13435
+ _context.n = 1;
13436
+ break;
13437
+ }
13438
+ return _context.a(2, _objectSpread2({
13439
+ api: api,
13440
+ isAmountAll: isAmountAll
13441
+ }, options));
13442
+ case 1:
13443
+ assertToIsString(options.to);
13444
+ assertSenderAddress(options.senderAddress);
13445
+ _context.n = 2;
13446
+ return getTransferableAmountInternal({
13447
+ api: api,
13448
+ buildTx: buildTx,
13449
+ origin: options.from,
13450
+ destination: options.to,
13451
+ senderAddress: options.senderAddress,
13452
+ feeAsset: options.feeAsset,
13453
+ currency: _objectSpread2(_objectSpread2({}, currency), {}, {
13454
+ amount: MIN_AMOUNT
13455
+ })
13456
+ });
13457
+ case 2:
13458
+ transferable = _context.v;
13459
+ return _context.a(2, _objectSpread2(_objectSpread2({}, options), {}, {
13460
+ api: api,
13461
+ isAmountAll: isAmountAll,
13462
+ currency: _objectSpread2(_objectSpread2({}, currency), {}, {
13463
+ amount: transferable
13464
+ })
13465
+ }));
13466
+ }
13467
+ }, _callee);
13468
+ }));
13469
+ return function normalizeAmountAll(_x, _x2, _x3) {
13470
+ return _ref.apply(this, arguments);
13471
+ };
13472
+ }();
13473
+
12744
13474
  var BatchTransactionManager = /*#__PURE__*/function () {
12745
13475
  function BatchTransactionManager() {
12746
13476
  _classCallCheck(this, BatchTransactionManager);
@@ -12759,25 +13489,25 @@ var BatchTransactionManager = /*#__PURE__*/function () {
12759
13489
  }, {
12760
13490
  key: "buildBatch",
12761
13491
  value: function () {
12762
- var _buildBatch = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api, from) {
13492
+ var _buildBatch = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(api, from) {
12763
13493
  var options,
12764
13494
  mode,
12765
13495
  sameFrom,
12766
- results,
13496
+ normalized,
12767
13497
  txs,
12768
- _args = arguments;
12769
- return _regenerator().w(function (_context) {
12770
- while (1) switch (_context.n) {
13498
+ _args2 = arguments;
13499
+ return _regenerator().w(function (_context2) {
13500
+ while (1) switch (_context2.n) {
12771
13501
  case 0:
12772
- options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {
13502
+ options = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : {
12773
13503
  mode: BatchMode.BATCH_ALL
12774
13504
  };
12775
- _context.n = 1;
13505
+ _context2.n = 1;
12776
13506
  return api.init(from, TX_CLIENT_TIMEOUT_MS);
12777
13507
  case 1:
12778
13508
  mode = options.mode;
12779
13509
  if (!(this.transactionOptions.length === 0)) {
12780
- _context.n = 2;
13510
+ _context2.n = 2;
12781
13511
  break;
12782
13512
  }
12783
13513
  throw new InvalidParameterError('No transactions to batch.');
@@ -12786,21 +13516,38 @@ var BatchTransactionManager = /*#__PURE__*/function () {
12786
13516
  return tx.from === from;
12787
13517
  });
12788
13518
  if (sameFrom) {
12789
- _context.n = 3;
13519
+ _context2.n = 3;
12790
13520
  break;
12791
13521
  }
12792
13522
  throw new InvalidParameterError('All transactions must have the same origin.');
12793
13523
  case 3:
12794
- results = this.transactionOptions.map(function (options) {
12795
- return send(options);
12796
- });
12797
- _context.n = 4;
12798
- return Promise.all(results);
13524
+ _context2.n = 4;
13525
+ return Promise.all(this.transactionOptions.map(/*#__PURE__*/function () {
13526
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(opts) {
13527
+ var buildTx;
13528
+ return _regenerator().w(function (_context) {
13529
+ while (1) switch (_context.n) {
13530
+ case 0:
13531
+ buildTx = opts.buildTx;
13532
+ return _context.a(2, normalizeAmountAll(api, buildTx, opts));
13533
+ }
13534
+ }, _callee);
13535
+ }));
13536
+ return function (_x3) {
13537
+ return _ref.apply(this, arguments);
13538
+ };
13539
+ }()));
12799
13540
  case 4:
12800
- txs = _context.v;
12801
- return _context.a(2, api.callBatchMethod(txs, mode));
13541
+ normalized = _context2.v;
13542
+ _context2.n = 5;
13543
+ return Promise.all(normalized.map(function (o) {
13544
+ return send(o);
13545
+ }));
13546
+ case 5:
13547
+ txs = _context2.v;
13548
+ return _context2.a(2, api.callBatchMethod(txs, mode));
12802
13549
  }
12803
- }, _callee, this);
13550
+ }, _callee2, this);
12804
13551
  }));
12805
13552
  function buildBatch(_x, _x2) {
12806
13553
  return _buildBatch.apply(this, arguments);
@@ -12993,9 +13740,12 @@ var GeneralBuilder = /*#__PURE__*/function () {
12993
13740
  }, {
12994
13741
  key: "addToBatch",
12995
13742
  value: function addToBatch() {
12996
- this.batchManager.addTransaction(_objectSpread2({
13743
+ var buildTx = this.createTxFactory();
13744
+ this.batchManager.addTransaction(_objectSpread2(_objectSpread2({
12997
13745
  api: this.api
12998
- }, this._options));
13746
+ }, this._options), {}, {
13747
+ buildTx: buildTx
13748
+ }));
12999
13749
  return new GeneralBuilder(this.api, this.batchManager, {
13000
13750
  from: this._options.from
13001
13751
  });
@@ -13036,10 +13786,16 @@ var GeneralBuilder = /*#__PURE__*/function () {
13036
13786
  key: "build",
13037
13787
  value: (function () {
13038
13788
  var _build = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
13789
+ var _yield$this$buildComm, tx;
13039
13790
  return _regenerator().w(function (_context2) {
13040
13791
  while (1) switch (_context2.n) {
13041
13792
  case 0:
13042
- return _context2.a(2, this.buildCommon());
13793
+ _context2.n = 1;
13794
+ return this.buildCommon();
13795
+ case 1:
13796
+ _yield$this$buildComm = _context2.v;
13797
+ tx = _yield$this$buildComm.tx;
13798
+ return _context2.a(2, tx);
13043
13799
  }
13044
13800
  }, _callee2, this);
13045
13801
  }));
@@ -13056,13 +13812,16 @@ var GeneralBuilder = /*#__PURE__*/function () {
13056
13812
  _this$_options,
13057
13813
  from,
13058
13814
  to,
13815
+ builder,
13816
+ createTx,
13817
+ normalizedOptions,
13059
13818
  tx,
13060
13819
  _args3 = arguments;
13061
13820
  return _regenerator().w(function (_context3) {
13062
13821
  while (1) switch (_context3.n) {
13063
13822
  case 0:
13064
13823
  isCalledInternally = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : false;
13065
- if (this.batchManager.isEmpty()) {
13824
+ if (!(!this.batchManager.isEmpty() && !isCalledInternally)) {
13066
13825
  _context3.n = 1;
13067
13826
  break;
13068
13827
  }
@@ -13075,16 +13834,25 @@ var GeneralBuilder = /*#__PURE__*/function () {
13075
13834
  }
13076
13835
  throw new InvalidParameterError('Transfers between relay chains are not yet supported.');
13077
13836
  case 2:
13837
+ builder = this.currency(_objectSpread2(_objectSpread2({}, this._options.currency), {}, {
13838
+ amount: MIN_AMOUNT.toString()
13839
+ }));
13840
+ createTx = builder.createTxFactory();
13078
13841
  _context3.n = 3;
13079
- return send(_objectSpread2({
13080
- api: this.api
13081
- }, this._options));
13842
+ return normalizeAmountAll(this.api, createTx, this._options);
13082
13843
  case 3:
13083
- tx = _context3.v;
13844
+ normalizedOptions = _context3.v;
13084
13845
  _context3.n = 4;
13085
- return this.maybePerformXcmFormatCheck(tx, this._options, isCalledInternally);
13846
+ return send(normalizedOptions);
13086
13847
  case 4:
13087
- return _context3.a(2, tx);
13848
+ tx = _context3.v;
13849
+ _context3.n = 5;
13850
+ return this.maybePerformXcmFormatCheck(tx, normalizedOptions, isCalledInternally);
13851
+ case 5:
13852
+ return _context3.a(2, {
13853
+ tx: tx,
13854
+ options: normalizedOptions
13855
+ });
13088
13856
  }
13089
13857
  }, _callee3, this);
13090
13858
  }));
@@ -13135,15 +13903,17 @@ var GeneralBuilder = /*#__PURE__*/function () {
13135
13903
  key: "dryRun",
13136
13904
  value: function () {
13137
13905
  var _dryRun = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5() {
13138
- var tx;
13906
+ var _yield$this$buildInte, tx, options;
13139
13907
  return _regenerator().w(function (_context5) {
13140
13908
  while (1) switch (_context5.n) {
13141
13909
  case 0:
13142
13910
  _context5.n = 1;
13143
13911
  return this.buildInternal();
13144
13912
  case 1:
13145
- tx = _context5.v;
13146
- return _context5.a(2, buildDryRun(this.api, tx, this._options));
13913
+ _yield$this$buildInte = _context5.v;
13914
+ tx = _yield$this$buildInte.tx;
13915
+ options = _yield$this$buildInte.options;
13916
+ return _context5.a(2, buildDryRun(this.api, tx, options));
13147
13917
  }
13148
13918
  }, _callee5, this);
13149
13919
  }));
@@ -13155,18 +13925,20 @@ var GeneralBuilder = /*#__PURE__*/function () {
13155
13925
  }, {
13156
13926
  key: "dryRunPreview",
13157
13927
  value: function () {
13158
- var _dryRunPreview = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(options) {
13159
- var tx;
13928
+ var _dryRunPreview = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(dryRunOptions) {
13929
+ var _yield$this$buildInte2, tx, options;
13160
13930
  return _regenerator().w(function (_context6) {
13161
13931
  while (1) switch (_context6.n) {
13162
13932
  case 0:
13163
13933
  _context6.n = 1;
13164
13934
  return this.buildInternal();
13165
13935
  case 1:
13166
- tx = _context6.v;
13167
- return _context6.a(2, buildDryRun(this.api, tx, this._options, {
13936
+ _yield$this$buildInte2 = _context6.v;
13937
+ tx = _yield$this$buildInte2.tx;
13938
+ options = _yield$this$buildInte2.options;
13939
+ return _context6.a(2, buildDryRun(this.api, tx, options, {
13168
13940
  sentAssetMintMode: 'preview',
13169
- mintFeeAssets: options === null || options === void 0 ? void 0 : options.mintFeeAssets
13941
+ mintFeeAssets: dryRunOptions === null || dryRunOptions === void 0 ? void 0 : dryRunOptions.mintFeeAssets
13170
13942
  }));
13171
13943
  }
13172
13944
  }, _callee6, this);
@@ -13304,7 +14076,7 @@ var GeneralBuilder = /*#__PURE__*/function () {
13304
14076
  key: "getXcmFeeEstimate",
13305
14077
  value: (function () {
13306
14078
  var _getXcmFeeEstimate2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9() {
13307
- var _this$_options4, from, to, address, senderAddress, currency, tx;
14079
+ var _this$_options4, from, to, address, senderAddress, currency, _yield$this$buildInte3, tx;
13308
14080
  return _regenerator().w(function (_context9) {
13309
14081
  while (1) switch (_context9.p = _context9.n) {
13310
14082
  case 0:
@@ -13314,7 +14086,8 @@ var GeneralBuilder = /*#__PURE__*/function () {
13314
14086
  _context9.n = 1;
13315
14087
  return this.buildInternal();
13316
14088
  case 1:
13317
- tx = _context9.v;
14089
+ _yield$this$buildInte3 = _context9.v;
14090
+ tx = _yield$this$buildInte3.tx;
13318
14091
  _context9.p = 2;
13319
14092
  _context9.n = 3;
13320
14093
  return getXcmFeeEstimate({
@@ -13354,7 +14127,7 @@ var GeneralBuilder = /*#__PURE__*/function () {
13354
14127
  key: "getOriginXcmFeeEstimate",
13355
14128
  value: (function () {
13356
14129
  var _getOriginXcmFeeEstimate2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0() {
13357
- var _this$_options5, from, to, senderAddress, currency, tx;
14130
+ var _this$_options5, from, to, senderAddress, currency, _yield$this$buildInte4, tx;
13358
14131
  return _regenerator().w(function (_context0) {
13359
14132
  while (1) switch (_context0.p = _context0.n) {
13360
14133
  case 0:
@@ -13363,7 +14136,8 @@ var GeneralBuilder = /*#__PURE__*/function () {
13363
14136
  _context0.n = 1;
13364
14137
  return this.buildInternal();
13365
14138
  case 1:
13366
- tx = _context0.v;
14139
+ _yield$this$buildInte4 = _context0.v;
14140
+ tx = _yield$this$buildInte4.tx;
13367
14141
  _context0.p = 2;
13368
14142
  _context0.n = 3;
13369
14143
  return getOriginXcmFeeEstimate({
@@ -13567,4 +14341,4 @@ var Builder = function Builder(api) {
13567
14341
  return new GeneralBuilder(api, new BatchTransactionManager());
13568
14342
  };
13569
14343
 
13570
- 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, getAssetBalance, getAssetBalanceInternal, getAssetReserveChain, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChain, getChainConfig, getChainLocation, getChainProviders, getChainVersion, getCurrencySelection, getMinTransferableAmount, getMinTransferableAmountInternal, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getRelayChainOf, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, getXcmFeeInternal, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, localizeLocation, maybeOverrideAsset, maybeOverrideAssets, overrideTxAmount, padFee, padFeeBy, resolveDestChain, resolveModuleError, resolveParaId, reverseTransformLocation, send, sortAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, verifyEdOnDestination, wrapTxBypass };
14344
+ 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, getAssetBalance, getAssetBalanceInternal, getAssetReserveChain, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChain, getChainConfig, getChainLocation, getChainProviders, getChainVersion, getCurrencySelection, getMinTransferableAmount, getMinTransferableAmountInternal, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getRelayChainOf, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, getXcmFeeInternal, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, localizeLocation, maybeOverrideAsset, maybeOverrideAssets, overrideTxAmount, padFee, padFeeBy, resolveDestChain, resolveModuleError, resolveParaId, reverseTransformLocation, send, sortAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, verifyEdOnDestination, wrapTxBypass };