@paraspell/sdk-core 13.8.0 → 13.10.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.js';
2
- import { isChainEvm, getAssetsObject, isChainEvmImpl, InvalidCurrencyError, isOverrideLocationSpecifier, isTAsset, getOtherAssets, getNativeAssetSymbol, isSymbolMatch, getNativeAssetSymbolImpl, getRelayChainSymbolImpl, isAssetXcEqual, isSymbolSpecifier, isAssetEqual, isStableCoinAsset, isBridgedSystemAsset, normalizeLocation, getEdFromAssetOrThrow, getExistentialDepositOrThrowImpl, extractAssetLocation, hasDryRunSupport, normalizeSymbol, Native, canonicalizeLocation, getAssetsObjectImpl, getAssetsImpl, getNativeAssetsImpl, getOtherAssetsImpl, findAssetInfoImpl, findAssetInfoOrThrowImpl, findAssetInfoOnDestImpl, findAssetOnDestOrThrowImpl, findNativeAssetInfoImpl, findNativeAssetInfoOrThrowImpl, hasDryRunSupportImpl, hasXcmPaymentApiSupportImpl, normalizeCustomAssets } from '@paraspell/assets';
2
+ import { isChainEvm, getAssetsObject, isChainEvmImpl, InvalidCurrencyError, isOverrideLocationSpecifier, isTAsset, getOtherAssets, getNativeAssetSymbolImpl, isSymbolMatch, getRelayChainSymbolImpl, isAssetEqual, isSymbolSpecifier, isStableCoinAsset, isBridgedSystemAsset, normalizeLocation, getNativeAssetSymbol, getEdFromAssetOrThrow, getExistentialDepositOrThrowImpl, extractAssetLocation, hasDryRunSupport, normalizeSymbol, Native, canonicalizeLocation, getAssetsObjectImpl, getAssetsImpl, getNativeAssetsImpl, getOtherAssetsImpl, findAssetInfoImpl, findAssetInfoOrThrowImpl, findAssetInfoOnDestImpl, findAssetOnDestOrThrowImpl, findNativeAssetInfoImpl, findNativeAssetInfoOrThrowImpl, hasDryRunSupportImpl, hasXcmPaymentApiSupportImpl, normalizeCustomAssets } from '@paraspell/assets';
3
3
  export * from '@paraspell/assets';
4
4
  import { base58 } from '@scure/base';
5
5
  import { isAddress, pad, toHex, getAddress, concat, keccak256, isHex, createPublicClient, http, getContract, formatUnits as formatUnits$1, parseUnits as parseUnits$1 } from 'viem';
6
- import { isTLocation, replaceBigInt, isExternalChain, Version, isCustomChain, isRelayChain, Parents, isSubstrateBridge, isSnowbridge, getJunctionValue, deepEqual, hasJunction, RELAYCHAINS, PARACHAINS, isTrustedChain, ETHEREUM_BRIDGE_ORIGINS, isBridge, DEFAULT_SS58_PREFIX, CHAINS } from '@paraspell/sdk-common';
6
+ import { isTLocation, replaceBigInt, isExternalChain, Version, isRelayChain, Parents, isSubstrateBridge, isSnowbridge, isCustomChain, getJunctionValue, deepEqual, hasJunction, RELAYCHAINS, isTrustedChain, ETHEREUM_BRIDGE_ORIGINS, isBridge, PARACHAINS, DEFAULT_SS58_PREFIX, CHAINS } from '@paraspell/sdk-common';
7
7
  export * from '@paraspell/sdk-common';
8
- import { getXcmPallet, getSupportedPallets, hasPalletImpl, getOtherAssetsPallets, getNativeAssetsPallet, getXcmPalletImpl, getSupportedPalletsDetails, ASSETS_PALLETS, NATIVE_ASSETS_PALLET_PRIORITY, OTHER_ASSETS_PALLET_PRIORITY } from '@paraspell/pallets';
8
+ import { getXcmPallet, getSupportedPallets, getOtherAssetsPallets, getNativeAssetsPallet, hasPalletImpl, getXcmPalletImpl, getSupportedPalletsDetails, ASSETS_PALLETS, NATIVE_ASSETS_PALLET_PRIORITY, OTHER_ASSETS_PALLET_PRIORITY } from '@paraspell/pallets';
9
9
  export * from '@paraspell/pallets';
10
10
  import { mainnet, sepolia, moonbeam, moonriver } from 'viem/chains';
11
11
 
@@ -803,18 +803,6 @@ var SubmitTransactionError = /*#__PURE__*/function (_Error) {
803
803
  return _createClass(SubmitTransactionError);
804
804
  }(/*#__PURE__*/_wrapNativeSuper(Error));
805
805
 
806
- var TransferToAhNotSupported = /*#__PURE__*/function (_Error) {
807
- function TransferToAhNotSupported(message) {
808
- var _this;
809
- _classCallCheck(this, TransferToAhNotSupported);
810
- _this = _callSuper(this, TransferToAhNotSupported, [message]);
811
- _this.name = 'TransferToAhNotSupported';
812
- return _this;
813
- }
814
- _inherits(TransferToAhNotSupported, _Error);
815
- return _createClass(TransferToAhNotSupported);
816
- }(/*#__PURE__*/_wrapNativeSuper(Error));
817
-
818
806
  var TypeAndThenUnavailableError = /*#__PURE__*/function (_Error) {
819
807
  function TypeAndThenUnavailableError(message) {
820
808
  var _this;
@@ -1117,8 +1105,7 @@ var assertExtensionInstalled = function assertExtensionInstalled(extension, exte
1117
1105
 
1118
1106
  var createPayFees = function createPayFees(version, asset, weight) {
1119
1107
  var includeRefundSurplus = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
1120
- var forceBuyExecution = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
1121
- if (forceBuyExecution || version < Version.V5) {
1108
+ if (version < Version.V5) {
1122
1109
  return [{
1123
1110
  BuyExecution: {
1124
1111
  fees: asset,
@@ -1420,19 +1407,10 @@ var AssetManagerPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1420
1407
  }]);
1421
1408
  }(BaseAssetsPallet);
1422
1409
 
1423
- var LOCATION_ID_CHAINS = ['EnergyWebX'];
1424
- var BIGINT_ID_CHAINS = ['Astar', 'Shiden', 'Moonbeam', 'NeuroWeb', 'Darwinia'];
1425
- var resolveAssetId = function resolveAssetId(asset, chain) {
1426
- if (LOCATION_ID_CHAINS.some(function (prefix) {
1427
- return chain.startsWith(prefix);
1428
- })) {
1429
- return asset.location;
1430
- }
1410
+ var resolveAssetId = function resolveAssetId(asset, config) {
1411
+ if (config.useLocationId) return asset.location;
1431
1412
  assertHasId(asset);
1432
- var useBigInt = BIGINT_ID_CHAINS.some(function (prefix) {
1433
- return chain.startsWith(prefix);
1434
- });
1435
- return useBigInt ? BigInt(asset.assetId) : Number(asset.assetId);
1413
+ return config.useBigIntId ? BigInt(asset.assetId) : Number(asset.assetId);
1436
1414
  };
1437
1415
  var AssetsPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1438
1416
  function AssetsPallet() {
@@ -1444,14 +1422,11 @@ var AssetsPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1444
1422
  key: "mint",
1445
1423
  value: function mint(api, address, asset, _balance, chain) {
1446
1424
  var amount = asset.amount;
1447
- var id = resolveAssetId(asset, chain);
1448
- var notUseAddressIdChains = ['NeuroWeb', 'Darwinia'];
1449
- var notUseId = notUseAddressIdChains.some(function (prefix) {
1450
- return chain.startsWith(prefix);
1451
- }) || api.isChainEvm(chain);
1452
- var addr = notUseId ? address : {
1425
+ var config = chain.resolveMintConfig(api);
1426
+ var id = resolveAssetId(asset, config);
1427
+ var addr = config.useIdPrefix ? {
1453
1428
  Id: address
1454
- };
1429
+ } : address;
1455
1430
  return Promise.resolve({
1456
1431
  assetStatusTx: {
1457
1432
  module: this.palletName,
@@ -1543,18 +1518,16 @@ var BalancesPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1543
1518
  key: "mint",
1544
1519
  value: function mint(api, address, assetInfo, balance, chain) {
1545
1520
  var amount = assetInfo.amount;
1546
- var noIdPrefixes = ['Hydration', 'NeuroWeb', 'Basilisk', 'Darwinia'];
1547
- var notUseId = noIdPrefixes.some(function (prefix) {
1548
- return chain.startsWith(prefix);
1549
- }) || api.isChainEvm(chain);
1521
+ var _chain$resolveMintCon = chain.resolveMintConfig(api),
1522
+ useIdPrefix = _chain$resolveMintCon.useIdPrefix;
1550
1523
  return Promise.resolve({
1551
1524
  balanceTx: {
1552
1525
  module: this.palletName,
1553
1526
  method: 'force_set_balance',
1554
1527
  params: {
1555
- who: notUseId ? address : {
1528
+ who: useIdPrefix ? {
1556
1529
  Id: address
1557
- },
1530
+ } : address,
1558
1531
  new_free: balance + amount
1559
1532
  }
1560
1533
  }
@@ -1589,6 +1562,11 @@ var BalancesPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1589
1562
  }]);
1590
1563
  }(BaseAssetsPallet);
1591
1564
 
1565
+ var resolveCurrencyId$1 = function resolveCurrencyId(api, asset, chain, config) {
1566
+ if (config.useCustomCurrencyId) return chain.getCustomCurrencyId(api, asset);
1567
+ assertHasId(asset);
1568
+ return Number(asset.assetId);
1569
+ };
1592
1570
  var CurrenciesPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1593
1571
  function CurrenciesPallet() {
1594
1572
  _classCallCheck(this, CurrenciesPallet);
@@ -1598,20 +1576,17 @@ var CurrenciesPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1598
1576
  return _createClass(CurrenciesPallet, [{
1599
1577
  key: "mint",
1600
1578
  value: function mint(api, address, asset, balance, chain) {
1601
- var isKarura = chain.startsWith('Karura');
1602
- var isAcala = chain.startsWith('Acala');
1603
- var isAcalaLike = isKarura || isAcala;
1604
- var id = isAcalaLike ? getChain(isKarura ? 'Karura' : 'Acala').getCustomCurrencyId(api, asset) : (assertHasId(asset), Number(asset.assetId));
1579
+ var config = chain.resolveMintConfig(api);
1605
1580
  var amount = asset.amount;
1606
1581
  return Promise.resolve({
1607
1582
  balanceTx: {
1608
1583
  module: this.palletName,
1609
1584
  method: 'update_balance',
1610
1585
  params: {
1611
- who: isAcalaLike ? {
1586
+ who: config.useCustomCurrencyId ? {
1612
1587
  Id: address
1613
1588
  } : address,
1614
- currency_id: id,
1589
+ currency_id: resolveCurrencyId$1(api, asset, chain, config),
1615
1590
  amount: balance + amount
1616
1591
  }
1617
1592
  }
@@ -1633,15 +1608,14 @@ var ForeignAssetsPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1633
1608
  _inherits(ForeignAssetsPallet, _BaseAssetsPallet);
1634
1609
  return _createClass(ForeignAssetsPallet, [{
1635
1610
  key: "mint",
1636
- value: function mint(_api, address, asset, _balance, chain) {
1611
+ value: function mint(api, address, asset, _balance, chain) {
1637
1612
  var location = asset.location,
1638
1613
  amount = asset.amount;
1639
- var notUseId = ['NeuroWeb'];
1640
- var addr = notUseId.some(function (prefix) {
1641
- return chain.startsWith(prefix);
1642
- }) ? address : {
1614
+ var _chain$resolveMintCon = chain.resolveMintConfig(api),
1615
+ useIdPrefix = _chain$resolveMintCon.useIdPrefix;
1616
+ var addr = useIdPrefix ? {
1643
1617
  Id: address
1644
- };
1618
+ } : address;
1645
1619
  return Promise.resolve({
1646
1620
  assetStatusTx: {
1647
1621
  module: this.palletName,
@@ -1756,7 +1730,7 @@ var SystemPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1756
1730
  return _createClass(SystemPallet, [{
1757
1731
  key: "mint",
1758
1732
  value: function () {
1759
- var _mint = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api, address, assetInfo, balance, _chain) {
1733
+ var _mint = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api, address, assetInfo, balance) {
1760
1734
  var contractAddr, slot, amountEncoded, storageKey;
1761
1735
  return _regenerator().w(function (_context) {
1762
1736
  while (1) switch (_context.n) {
@@ -1783,7 +1757,7 @@ var SystemPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1783
1757
  }
1784
1758
  }, _callee, this);
1785
1759
  }));
1786
- function mint(_x, _x2, _x3, _x4, _x5) {
1760
+ function mint(_x, _x2, _x3, _x4) {
1787
1761
  return _mint.apply(this, arguments);
1788
1762
  }
1789
1763
  return mint;
@@ -1822,7 +1796,7 @@ var SystemPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1822
1796
  }
1823
1797
  }, _callee2, this);
1824
1798
  }));
1825
- function getBalance(_x6, _x7, _x8) {
1799
+ function getBalance(_x5, _x6, _x7) {
1826
1800
  return _getBalance.apply(this, arguments);
1827
1801
  }
1828
1802
  return getBalance;
@@ -1830,18 +1804,17 @@ var SystemPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1830
1804
  }]);
1831
1805
  }(BaseAssetsPallet);
1832
1806
 
1833
- var resolveId = function resolveId(api, asset, chain) {
1834
- if (!isCustomChain(chain) && (chain === 'BifrostPolkadot' || chain === 'BifrostKusama' || chain === 'BifrostPaseo')) {
1835
- var _asset$assetId;
1836
- var isEthAsset = !asset.isNative && ((_asset$assetId = asset.assetId) === null || _asset$assetId === void 0 ? void 0 : _asset$assetId.startsWith('0x'));
1837
- var resolvedAsset = isEthAsset ? api.findAssetInfoOrThrow(chain, {
1838
- location: asset.location
1839
- }) : asset;
1840
- return getChain(chain).getCustomCurrencyId(api, resolvedAsset);
1841
- } else {
1807
+ var resolveCurrencyId = function resolveCurrencyId(api, asset, chain, config) {
1808
+ var _asset$assetId;
1809
+ if (!config.useCustomCurrencyId) {
1842
1810
  assertHasId(asset);
1843
1811
  return asset.assetId;
1844
1812
  }
1813
+ var isEthAsset = !asset.isNative && ((_asset$assetId = asset.assetId) === null || _asset$assetId === void 0 ? void 0 : _asset$assetId.startsWith('0x'));
1814
+ var resolvedAsset = isEthAsset ? api.findAssetInfoOrThrow(chain.chain, {
1815
+ location: asset.location
1816
+ }) : asset;
1817
+ return chain.getCustomCurrencyId(api, resolvedAsset);
1845
1818
  };
1846
1819
  var TokensPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1847
1820
  function TokensPallet() {
@@ -1852,9 +1825,7 @@ var TokensPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
1852
1825
  return _createClass(TokensPallet, [{
1853
1826
  key: "mint",
1854
1827
  value: function mint(api, address, asset, balance, chain) {
1855
- var isBifrost = chain.startsWith('Bifrost');
1856
- if (!isBifrost) assertHasId(asset);
1857
- var id = resolveId(api, asset, chain);
1828
+ var id = resolveCurrencyId(api, asset, chain, chain.resolveMintConfig(api));
1858
1829
  var amount = asset.amount;
1859
1830
  return Promise.resolve({
1860
1831
  balanceTx: {
@@ -2327,10 +2298,6 @@ var Hydration$1 = {
2327
2298
  info: "hydradx",
2328
2299
  paraId: 2034,
2329
2300
  providers: [
2330
- {
2331
- name: "Dwellir",
2332
- endpoint: "wss://hydration-rpc.n.dwellir.com"
2333
- },
2334
2301
  {
2335
2302
  name: "Helikon",
2336
2303
  endpoint: "wss://rpc.helikon.io/hydradx"
@@ -3522,7 +3489,7 @@ var Chain = /*#__PURE__*/function () {
3522
3489
  key: "transfer",
3523
3490
  value: function () {
3524
3491
  var _transfer = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(transferOptions) {
3525
- var api, asset, currency, feeAsset, feeCurrency, recipient, destination, paraIdTo, overriddenAsset, version, sender, ahAddress, pallet, method, keepAlive, transactOptions, scenario, paraId, destChain, isLocalTransfer, isRelayAsset, mythAsset, isMythAsset, assetNeedsTypeThen, supportsTypeThen, isSubBridge, useTypeAndThen, options, promise, shouldUseTeleport, isAhToOtherPara, isOtherParaToAh, isAllowedAhTransfer, isAHOrigin, isAHDest, isExternalAsset, isEthDest, isExternalAssetViaAh, isExternalAssetToAh, call, isBifrostOrigin, isJamtonOrigin, isAssetHubDest, useMultiAssets, input, _t;
3492
+ var api, asset, currency, feeAsset, feeCurrency, recipient, destination, paraIdTo, overriddenAsset, version, sender, ahAddress, pallet, method, keepAlive, transactOptions, scenario, paraId, destChain, isLocalTransfer, isRelayAsset, mythAsset, isMythAsset, assetNeedsTypeThen, supportsTypeThen, isSubBridge, useTypeAndThen, options, promise, isAHOrigin, isAHDest, isExternalAsset, isEthDest, isExternalAssetViaAh, isExternalAssetToAh, call, isBifrostOrigin, isJamtonOrigin, isAssetHubDest, useMultiAssets, input, _t;
3526
3493
  return _regenerator().w(function (_context) {
3527
3494
  while (1) switch (_context.n) {
3528
3495
  case 0:
@@ -3549,7 +3516,7 @@ var Chain = /*#__PURE__*/function () {
3549
3516
  this.throwIfCantReceive(destChain);
3550
3517
  isRelayAsset = deepEqual(asset.location, RELAY_LOCATION) && isSymbolMatch(getRelayChainSymbolImpl(this.chain, api._customCtx), asset.symbol);
3551
3518
  mythAsset = api.findNativeAssetInfoOrThrow('Mythos');
3552
- isMythAsset = isAssetXcEqual(mythAsset, asset);
3519
+ isMythAsset = isAssetEqual(mythAsset, asset);
3553
3520
  assetNeedsTypeThen = isRelayAsset || isMythAsset;
3554
3521
  _context.n = 3;
3555
3522
  return api.hasMethod(hasPalletImpl(this.chain, 'XcmPallet', api._customCtx) ? 'XcmPallet' : 'PolkadotXcm', 'transfer_assets_using_type_and_then');
@@ -3611,18 +3578,6 @@ var Chain = /*#__PURE__*/function () {
3611
3578
  case 6:
3612
3579
  return _context.a(2, _t.deserializeExtrinsics.call(_t, _context.v));
3613
3580
  case 7:
3614
- shouldUseTeleport = this.shouldUseNativeAssetTeleport(transferOptions);
3615
- isAhToOtherPara = this.chain.startsWith('AssetHub') && destChain && !isTrustedChain(destChain);
3616
- isOtherParaToAh = (destChain === null || destChain === void 0 ? void 0 : destChain.startsWith('AssetHub')) && !isTrustedChain(this.chain);
3617
- isAllowedAhTransfer = function isAllowedAhTransfer(chain) {
3618
- return chain === null || chain === void 0 ? void 0 : chain.startsWith('Integritee');
3619
- };
3620
- if (!((isAhToOtherPara || isOtherParaToAh) && shouldUseTeleport && !isAllowedAhTransfer(destChain) && !isAllowedAhTransfer(this.chain))) {
3621
- _context.n = 8;
3622
- break;
3623
- }
3624
- throw new TransferToAhNotSupported('Native asset transfers to or from AssetHub are temporarily disabled');
3625
- case 8:
3626
3581
  isAHOrigin = this.chain.includes('AssetHub');
3627
3582
  isAHDest = !isTLocation(destination) && destination.includes('AssetHub'); // Handle common cases
3628
3583
  isExternalAsset = asset.location.parents === Parents.TWO;
@@ -3630,26 +3585,32 @@ var Chain = /*#__PURE__*/function () {
3630
3585
  isExternalAssetViaAh = isExternalAsset && !isAHOrigin && !isAHDest && !isEthDest && !feeAsset; // External asset - Any origin to AHP - DestinationReserve - one DepositAsset instruction
3631
3586
  isExternalAssetToAh = isExternalAsset && isAHDest && !isAHOrigin && !isEthDest && !feeAsset;
3632
3587
  if (!(isExternalAssetViaAh || isExternalAssetToAh || useTypeAndThen)) {
3633
- _context.n = 11;
3588
+ _context.n = 10;
3634
3589
  break;
3635
3590
  }
3636
3591
  if (!(useTypeAndThen && supportsPolkadotXCM(this) && !isSubBridge)) {
3637
- _context.n = 9;
3592
+ _context.n = 8;
3638
3593
  break;
3639
3594
  }
3640
- _context.n = 9;
3595
+ _context.n = 8;
3641
3596
  return this.transferPolkadotXCM(options);
3642
- case 9:
3643
- _context.n = 10;
3597
+ case 8:
3598
+ _context.n = 9;
3644
3599
  return createTypeAndThenCall(options);
3645
- case 10:
3600
+ case 9:
3646
3601
  call = _context.v;
3647
3602
  return _context.a(2, api.deserializeExtrinsics(call));
3648
- case 11:
3603
+ case 10:
3649
3604
  if (!supportsPolkadotXCM(this)) {
3650
3605
  _context.n = 12;
3651
3606
  break;
3652
3607
  }
3608
+ if (!(this.shouldUseNativeAssetTeleport(transferOptions) && !this.shouldUseExecuteTransfer(options))) {
3609
+ _context.n = 11;
3610
+ break;
3611
+ }
3612
+ return _context.a(2, transferPolkadotXcm(options, 'limited_teleport_assets', 'Unlimited'));
3613
+ case 11:
3653
3614
  return _context.a(2, this.transferPolkadotXCM(options));
3654
3615
  case 12:
3655
3616
  _context.n = 15;
@@ -3742,27 +3703,16 @@ var Chain = /*#__PURE__*/function () {
3742
3703
  }, {
3743
3704
  key: "shouldUseNativeAssetTeleport",
3744
3705
  value: function shouldUseNativeAssetTeleport(_ref) {
3745
- var _this = this;
3746
3706
  var api = _ref.api,
3747
3707
  asset = _ref.assetInfo,
3748
3708
  to = _ref.to;
3749
- if (isTLocation(to) || isSubstrateBridge(this.chain, to) || isExternalChain(to)) return false;
3750
- var isAHPOrigin = this.chain.includes('AssetHub');
3751
- var isAHPDest = !isTLocation(to) && to.includes('AssetHub');
3752
- var nativeSymbols = PARACHAINS.filter(function (chain) {
3753
- return getRelayChainOf(chain) === _this.ecosystem && !isTrustedChain(chain);
3754
- }).map(function (chain) {
3755
- return getNativeAssetSymbol(chain);
3756
- });
3757
- var isSomeChainNativeAsset = nativeSymbols.some(function (symbol) {
3758
- return isSymbolMatch(asset.symbol, symbol);
3759
- });
3760
- var isNativeAsset = !isTLocation(to) && (isAHPOrigin && !asset.isNative && isSymbolMatch(asset.symbol, getNativeAssetSymbolImpl(to, api._customCtx)) || isAHPDest && isSomeChainNativeAsset);
3761
- var assetHubChain = "AssetHub".concat(this.ecosystem);
3762
- var isRegisteredOnAh = api.findAssetInfo(assetHubChain, {
3763
- location: asset.location
3764
- });
3765
- return Boolean(isNativeAsset) && Boolean(isRegisteredOnAh) && (isAHPOrigin || isAHPDest);
3709
+ if (isTLocation(to) || isSubstrateBridge(this.chain, to)) return false;
3710
+ return isNativeAssetTeleport(api, this.chain, to, asset);
3711
+ }
3712
+ }, {
3713
+ key: "shouldUseExecuteTransfer",
3714
+ value: function shouldUseExecuteTransfer(_options) {
3715
+ return false;
3766
3716
  }
3767
3717
  }, {
3768
3718
  key: "createAsset",
@@ -3780,11 +3730,11 @@ var Chain = /*#__PURE__*/function () {
3780
3730
  key: "transferLocal",
3781
3731
  value: function () {
3782
3732
  var _transferLocal = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options) {
3783
- var api, asset, feeAsset, recipient, sender, isAmountAll, validatedOptions, isNativeAsset, balance, localOptions;
3733
+ var api, asset, feeAsset, recipient, sender, isAmountAll, keepAlive, validatedOptions, isNativeAsset, balance, localOptions;
3784
3734
  return _regenerator().w(function (_context2) {
3785
3735
  while (1) switch (_context2.n) {
3786
3736
  case 0:
3787
- api = options.api, asset = options.assetInfo, feeAsset = options.feeAsset, recipient = options.recipient, sender = options.sender, isAmountAll = options.isAmountAll;
3737
+ api = options.api, asset = options.assetInfo, feeAsset = options.feeAsset, recipient = options.recipient, sender = options.sender, isAmountAll = options.isAmountAll, keepAlive = options.keepAlive;
3788
3738
  if (!isTLocation(recipient)) {
3789
3739
  _context2.n = 1;
3790
3740
  break;
@@ -3801,7 +3751,7 @@ var Chain = /*#__PURE__*/function () {
3801
3751
  recipient: recipient
3802
3752
  });
3803
3753
  isNativeAsset = asset.symbol === this.getNativeAssetSymbol(api) && asset.isNative;
3804
- if (!isAmountAll) {
3754
+ if (!(isAmountAll || keepAlive)) {
3805
3755
  _context2.n = 4;
3806
3756
  break;
3807
3757
  }
@@ -3978,6 +3928,25 @@ var Chain = /*#__PURE__*/function () {
3978
3928
  if (isNativeAsset) return this.getBalanceNative(api, address, asset);
3979
3929
  return this.getBalanceForeign(api, address, asset);
3980
3930
  }
3931
+ }, {
3932
+ key: "mint",
3933
+ value: function mint(api, address, assetInfo, balance) {
3934
+ var isMainNativeAsset = isSymbolMatch(assetInfo.symbol, this.getNativeAssetSymbol(api));
3935
+ var pallet = !assetInfo.isNative && this.chain !== 'Mythos' || !isMainNativeAsset ? pickOtherMintPallet(assetInfo, getOtherAssetsPallets(this.chain, api._customCtx)) : getNativeAssetsPallet(this.chain, api._customCtx);
3936
+ return getPalletInstance(pallet).mint(api, address, assetInfo, balance, this);
3937
+ }
3938
+ }, {
3939
+ key: "resolveMintConfig",
3940
+ value: function resolveMintConfig(api) {
3941
+ return _objectSpread2({
3942
+ useIdPrefix: !api.isChainEvm(this.chain)
3943
+ }, this.getMintConfig());
3944
+ }
3945
+ }, {
3946
+ key: "getMintConfig",
3947
+ value: function getMintConfig() {
3948
+ return {};
3949
+ }
3981
3950
  }]);
3982
3951
  }();
3983
3952
 
@@ -6583,6 +6552,17 @@ var getDestXcmFee = /*#__PURE__*/function () {
6583
6552
  };
6584
6553
  }();
6585
6554
 
6555
+ var toFailureInfo = function toFailureInfo(failureChain, _ref) {
6556
+ var failureReason = _ref.failureReason,
6557
+ failureSubReason = _ref.failureSubReason,
6558
+ failureIndex = _ref.failureIndex;
6559
+ return {
6560
+ failureChain: failureChain,
6561
+ failureReason: failureReason,
6562
+ failureSubReason: failureSubReason,
6563
+ failureIndex: failureIndex
6564
+ };
6565
+ };
6586
6566
  var getFailureInfo$1 = function getFailureInfo(result) {
6587
6567
  var orderedChecks = [{
6588
6568
  chain: 'origin',
@@ -6604,11 +6584,7 @@ var getFailureInfo$1 = function getFailureInfo(result) {
6604
6584
  chain = _step$value.chain,
6605
6585
  chainResult = _step$value.chainResult;
6606
6586
  if (chainResult && chainResult.success === false && chainResult.failureReason) {
6607
- return {
6608
- failureChain: chain,
6609
- failureReason: chainResult.failureReason,
6610
- failureSubReason: chainResult.failureSubReason
6611
- };
6587
+ return toFailureInfo(chain, chainResult);
6612
6588
  }
6613
6589
  }
6614
6590
  } catch (err) {
@@ -6616,11 +6592,7 @@ var getFailureInfo$1 = function getFailureInfo(result) {
6616
6592
  } finally {
6617
6593
  _iterator.f();
6618
6594
  }
6619
- return {
6620
- failureChain: result.failureChain,
6621
- failureReason: result.failureReason,
6622
- failureSubReason: result.failureSubReason
6623
- };
6595
+ return toFailureInfo(result.failureChain, result);
6624
6596
  };
6625
6597
 
6626
6598
  var getParaEthTransferFees = /*#__PURE__*/function () {
@@ -7724,23 +7696,8 @@ var resolveBypassMintAmount = function resolveBypassMintAmount(chain) {
7724
7696
  return c === chain;
7725
7697
  }) ? HIGH_BYPASS_MINT_AMOUNT : BYPASS_MINT_AMOUNT;
7726
7698
  };
7727
- var pickOtherPallet = function pickOtherPallet(asset, pallets) {
7728
- if (!asset.isNative && (!asset.assetId || asset.assetId.startsWith('0x'))) {
7729
- var _pallets$find;
7730
- // No assetId means it's probably a ForeignAssets pallet asset
7731
- return (_pallets$find = pallets.find(function (pallet) {
7732
- return pallet.startsWith('Foreign');
7733
- })) !== null && _pallets$find !== void 0 ? _pallets$find : pallets[0];
7734
- }
7735
- return pallets[0];
7736
- };
7737
7699
  var createMintTxs = function createMintTxs(chain, asset, balance, address, api) {
7738
- var nativePallet = getNativeAssetsPallet(chain, api._customCtx);
7739
- var otherPallets = getOtherAssetsPallets(chain, api._customCtx);
7740
- var isMainNativeAsset = isSymbolMatch(asset.symbol, getNativeAssetSymbolImpl(chain, api._customCtx));
7741
- var pallet = !asset.isNative && chain !== 'Mythos' || !isMainNativeAsset ? pickOtherPallet(asset, otherPallets) : nativePallet;
7742
- var palletInstance = getPalletInstance(pallet);
7743
- return palletInstance.mint(api, address, asset, balance, chain);
7700
+ return getChainImpl(chain, api._customCtx).mint(api, address, asset, balance);
7744
7701
  };
7745
7702
  var createRequiredMintTxs = function createRequiredMintTxs(chain, asset, amountHuman, balance, address, api) {
7746
7703
  var amount = parseUnits(amountHuman, asset.decimals);
@@ -7788,7 +7745,7 @@ var mintBonusForSent = function mintBonusForSent(chain, sent, feeAsset, mintFeeA
7788
7745
  return true;
7789
7746
  });
7790
7747
  return preminted.some(function (a) {
7791
- return isAssetXcEqual(a, sent);
7748
+ return isAssetEqual(a, sent);
7792
7749
  }) ? parseUnits(resolveBypassMintAmount(chain), sent.decimals) : 0n;
7793
7750
  };
7794
7751
  var wrapTxBypass = /*#__PURE__*/function () {
@@ -7836,7 +7793,7 @@ var wrapTxBypass = /*#__PURE__*/function () {
7836
7793
  };
7837
7794
  nativeInfo = mintFeeAssets ? api.findNativeAssetInfo(chain) : null;
7838
7795
  relayInfo = mintFeeAssets ? api.findAssetInfo(chain, relayCurrency) : null;
7839
- sameNativeRelay = !!(nativeInfo && relayInfo && isAssetXcEqual(nativeInfo, relayInfo));
7796
+ sameNativeRelay = !!(nativeInfo && relayInfo && isAssetEqual(nativeInfo, relayInfo));
7840
7797
  if (!mintFeeAssets) {
7841
7798
  _context2.n = 2;
7842
7799
  break;
@@ -8771,7 +8728,7 @@ var getXcmFee = /*#__PURE__*/function () {
8771
8728
  var aggregateHopFees = function aggregateHopFees(hops, matchAsset) {
8772
8729
  var totalHopFee = hops.reduce(function (acc, hop) {
8773
8730
  var _hop$result$fee;
8774
- return isAssetXcEqual(hop.result.asset, matchAsset) ? acc + ((_hop$result$fee = hop.result.fee) !== null && _hop$result$fee !== void 0 ? _hop$result$fee : 0n) : acc;
8731
+ return isAssetEqual(hop.result.asset, matchAsset) ? acc + ((_hop$result$fee = hop.result.fee) !== null && _hop$result$fee !== void 0 ? _hop$result$fee : 0n) : acc;
8775
8732
  }, 0n);
8776
8733
  var bridgeHop = hops.find(function (hop) {
8777
8734
  return hop.chain.startsWith('BridgeHub');
@@ -9602,12 +9559,14 @@ var resolveTransferType = function resolveTransferType(_ref) {
9602
9559
  var origin = _ref.origin,
9603
9560
  reserve = _ref.reserve,
9604
9561
  dest = _ref.dest,
9605
- isSubBridge = _ref.isSubBridge;
9562
+ isSubBridge = _ref.isSubBridge,
9563
+ assetInfo = _ref.assetInfo;
9606
9564
  // Direct A → C: when origin is reserve OR dest is reserve, check origin <-> dest trust
9607
9565
  // Hop A → B → C: when reserve differs from both, check origin <-> reserve trust
9608
9566
  var isDirect = origin.chain === reserve.chain || dest.chain === reserve.chain;
9609
9567
  var chainToCheck = isDirect ? dest.chain : reserve.chain;
9610
- if (isTrustedChain(origin.chain) && isTrustedChain(chainToCheck) && !isSubBridge) return 'Teleport';
9568
+ var canTeleport = isTrustedChain(origin.chain) && isTrustedChain(chainToCheck) || isNativeAssetTeleport(origin.api, origin.chain, chainToCheck, assetInfo);
9569
+ if (canTeleport && !isSubBridge) return 'Teleport';
9611
9570
  if (origin.chain === reserve.chain) return 'LocalReserve';
9612
9571
  return 'DestinationReserve';
9613
9572
  };
@@ -9926,7 +9885,7 @@ var createCustomXcm = /*#__PURE__*/function () {
9926
9885
  case 3:
9927
9886
  destLoc = createDestination(origin.api, version, origin.chain, destination, paraIdTo); // If both reserve (B) and destination (C) are trusted chains,
9928
9887
  // use teleport instead of DepositReserveAsset
9929
- if (!(isTrustedChain(reserve.chain) && isTrustedChain(dest.chain))) {
9888
+ if (!(isTrustedChain(reserve.chain) && isTrustedChain(dest.chain) || isNativeAssetTeleport(origin.api, reserve.chain, dest.chain, assetInfo))) {
9930
9889
  _context.n = 4;
9931
9890
  break;
9932
9891
  }
@@ -10261,9 +10220,9 @@ var createTypeThenAutoReserve = /*#__PURE__*/function () {
10261
10220
 
10262
10221
  var calculateTotalXcmFee = function calculateTotalXcmFee(asset, feeResult) {
10263
10222
  var totalHopFee = feeResult.hops.reduce(function (acc, hop) {
10264
- return isAssetXcEqual(hop.result.asset, asset) ? acc + hop.result.fee : acc;
10223
+ return isAssetEqual(hop.result.asset, asset) ? acc + hop.result.fee : acc;
10265
10224
  }, 0n);
10266
- var destFee = isAssetXcEqual(feeResult.destination.asset, asset) ? feeResult.destination.fee : 0n;
10225
+ var destFee = isAssetEqual(feeResult.destination.asset, asset) ? feeResult.destination.fee : 0n;
10267
10226
  return totalHopFee + destFee;
10268
10227
  };
10269
10228
  var verifyEdOnDestinationInternal = /*#__PURE__*/function () {
@@ -10546,6 +10505,15 @@ var createAssetsFilter = function createAssetsFilter(asset, version) {
10546
10505
  };
10547
10506
  };
10548
10507
 
10508
+ var isNativeAssetTeleport = function isNativeAssetTeleport(api, origin, dest, asset) {
10509
+ if (isExternalChain(origin) || isExternalChain(dest)) return false;
10510
+ var isOriginAh = origin.includes('AssetHub');
10511
+ var isDestAh = dest.includes('AssetHub');
10512
+ if (isOriginAh === isDestAh) return false;
10513
+ var para = isDestAh ? origin : dest;
10514
+ return isAssetEqual(api.findNativeAssetInfoOrThrow(para), asset);
10515
+ };
10516
+
10549
10517
  var prepareExecuteContext = function prepareExecuteContext(_ref) {
10550
10518
  var api = _ref.api,
10551
10519
  chain = _ref.chain,
@@ -10585,15 +10553,15 @@ var updateAsset = function updateAsset(asset, amount) {
10585
10553
  }
10586
10554
  });
10587
10555
  };
10588
- var getInstructionType = function getInstructionType(version, origin, destination, reserveChain, transactOptions) {
10556
+ var getInstructionType = function getInstructionType(api, version, origin, destination, assetInfo, reserveChain, transactOptions) {
10589
10557
  if (version >= Version.V5 && transactOptions !== null && transactOptions !== void 0 && transactOptions.call) {
10590
10558
  return 'InitiateTransfer';
10591
10559
  }
10592
10560
  if (reserveChain !== undefined && origin !== reserveChain && isTrustedChain(origin) && isTrustedChain(reserveChain)) {
10593
10561
  return 'InitiateTeleportToReserve';
10594
10562
  }
10595
- // Trusted chains can teleport
10596
- if (isTrustedChain(origin) && isTrustedChain(destination)) {
10563
+ // Trusted chains (or native-asset teleports to/from AssetHub) can teleport
10564
+ if (isTrustedChain(origin) && isTrustedChain(destination) || isNativeAssetTeleport(api, origin, destination, assetInfo)) {
10597
10565
  return 'InitiateTeleport';
10598
10566
  }
10599
10567
  // If we need intermediary reserve (not on reserve chain)
@@ -10603,8 +10571,8 @@ var getInstructionType = function getInstructionType(version, origin, destinatio
10603
10571
  // Direct deposit (either no reserve or we're on reserve)
10604
10572
  return 'DepositAsset';
10605
10573
  };
10606
- var getInitiateTransferType = function getInitiateTransferType(origin, destination, reserveChain) {
10607
- if (isTrustedChain(origin) && isTrustedChain(destination)) {
10574
+ var getInitiateTransferType = function getInitiateTransferType(api, origin, destination, assetInfo, reserveChain) {
10575
+ if (isTrustedChain(origin) && isTrustedChain(destination) || isNativeAssetTeleport(api, origin, destination, assetInfo)) {
10608
10576
  return 'Teleport';
10609
10577
  }
10610
10578
  if (origin === reserveChain) return 'ReserveDeposit';
@@ -10614,6 +10582,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
10614
10582
  var api = options.api,
10615
10583
  chain = options.chain,
10616
10584
  destChain = options.destChain,
10585
+ assetInfo = options.assetInfo,
10617
10586
  _options$fees = options.fees,
10618
10587
  originFee = _options$fees.originFee,
10619
10588
  reserveFee = _options$fees.reserveFee,
@@ -10621,8 +10590,6 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
10621
10590
  paraIdTo = options.paraIdTo,
10622
10591
  transactOptions = options.transactOptions,
10623
10592
  useFeeAssetOnHops = options.useFeeAssetOnHops,
10624
- _options$forceBuyExec = options.forceBuyExecution,
10625
- forceBuyExecution = _options$forceBuyExec === void 0 ? false : _options$forceBuyExec,
10626
10593
  _options$suffixXcm = options.suffixXcm,
10627
10594
  suffixXcm = _options$suffixXcm === void 0 ? [] : _options$suffixXcm;
10628
10595
  var _prepareExecuteContex = prepareExecuteContext(options),
@@ -10643,7 +10610,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
10643
10610
  if (chain !== 'AssetHubPolkadot' && reserveChain === undefined) {
10644
10611
  throw new UnsupportedOperationError('Sending local reserve assets with custom fee asset is not yet supported for this chain.');
10645
10612
  }
10646
- var transferType = getInstructionType(version, chain, destChain, reserveChain, transactOptions);
10613
+ var transferType = getInstructionType(api, version, chain, destChain, assetInfo, reserveChain, transactOptions);
10647
10614
  var routingAssetsFilter = feeAsset ? {
10648
10615
  Wild: {
10649
10616
  AllCounted: 2
@@ -10654,14 +10621,14 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
10654
10621
  DepositReserveAsset: {
10655
10622
  assets: createAssetsFilter(assetLocalizedToReserve, version),
10656
10623
  dest: createDestination(api, version, reserveChain !== null && reserveChain !== void 0 ? reserveChain : chain, destChain, paraIdTo),
10657
- xcm: [].concat(_toConsumableArray(createPayFees(version, hopFeeAssetToDest !== null && hopFeeAssetToDest !== void 0 ? hopFeeAssetToDest : updateAsset(assetLocalizedToDest, reserveFee === 1000n ? amount / 2n : amount - originFeeDeduction - reserveFee), undefined, true, forceBuyExecution)), _toConsumableArray(suffixXcm))
10624
+ xcm: [].concat(_toConsumableArray(createPayFees(version, hopFeeAssetToDest !== null && hopFeeAssetToDest !== void 0 ? hopFeeAssetToDest : updateAsset(assetLocalizedToDest, reserveFee === 1000n ? amount / 2n : amount - originFeeDeduction - reserveFee))), _toConsumableArray(suffixXcm))
10658
10625
  }
10659
10626
  }];
10660
10627
  var mainInstructions;
10661
10628
  switch (transferType) {
10662
10629
  case 'InitiateTransfer':
10663
10630
  {
10664
- var transferFilter = getInitiateTransferType(chain, destChain, reserveChain);
10631
+ var transferFilter = getInitiateTransferType(api, chain, destChain, assetInfo, reserveChain);
10665
10632
  mainInstructions = [{
10666
10633
  InitiateTransfer: {
10667
10634
  destination: destLocation,
@@ -10681,7 +10648,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
10681
10648
  InitiateTeleport: {
10682
10649
  assets: routingAssetsFilter,
10683
10650
  dest: destLocation,
10684
- xcm: [].concat(_toConsumableArray(createPayFees(version, hopFeeAssetToDest !== null && hopFeeAssetToDest !== void 0 ? hopFeeAssetToDest : updateAsset(assetLocalizedToDest, amount - originFeeDeduction), undefined, true, forceBuyExecution)), _toConsumableArray(suffixXcm))
10651
+ xcm: [].concat(_toConsumableArray(createPayFees(version, hopFeeAssetToDest !== null && hopFeeAssetToDest !== void 0 ? hopFeeAssetToDest : updateAsset(assetLocalizedToDest, amount - originFeeDeduction))), _toConsumableArray(suffixXcm))
10685
10652
  }
10686
10653
  }];
10687
10654
  break;
@@ -10691,7 +10658,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
10691
10658
  InitiateTeleport: {
10692
10659
  assets: routingAssetsFilter,
10693
10660
  dest: getChainLocation(chain, reserveChain, api._customCtx),
10694
- xcm: [].concat(_toConsumableArray(createPayFees(version, hopFeeAssetToReserve !== null && hopFeeAssetToReserve !== void 0 ? hopFeeAssetToReserve : updateAsset(assetLocalizedToReserve, amount - originFeeDeduction), undefined, true, forceBuyExecution)), _toConsumableArray(resolvedDepositInstruction))
10661
+ xcm: [].concat(_toConsumableArray(createPayFees(version, hopFeeAssetToReserve !== null && hopFeeAssetToReserve !== void 0 ? hopFeeAssetToReserve : updateAsset(assetLocalizedToReserve, amount - originFeeDeduction))), _toConsumableArray(resolvedDepositInstruction))
10695
10662
  }
10696
10663
  }];
10697
10664
  break;
@@ -10703,7 +10670,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
10703
10670
  reserve: getChainLocation(chain, reserveChain, api._customCtx),
10704
10671
  xcm: [].concat(_toConsumableArray(createPayFees(version, // Decrease amount by 2 units because for some reason polkadot withdraws 2 units less
10705
10672
  // than requested, so we need to account for that
10706
- hopFeeAssetToReserve !== null && hopFeeAssetToReserve !== void 0 ? hopFeeAssetToReserve : updateAsset(assetLocalizedToReserve, amount - 2n), undefined, true, forceBuyExecution)), _toConsumableArray(resolvedDepositInstruction))
10673
+ hopFeeAssetToReserve !== null && hopFeeAssetToReserve !== void 0 ? hopFeeAssetToReserve : updateAsset(assetLocalizedToReserve, amount - 2n))), _toConsumableArray(resolvedDepositInstruction))
10707
10674
  }
10708
10675
  }];
10709
10676
  break;
@@ -10820,12 +10787,9 @@ var createExecuteExchangeXcm = function createExecuteExchangeXcm(input, origin,
10820
10787
 
10821
10788
  var prepareCommonExecuteXcm = function prepareCommonExecuteXcm(options, assetToDeposit) {
10822
10789
  var api = options.api,
10823
- feeAsset = options.feeAssetInfo,
10824
10790
  useJitWithdraw = options.useJitWithdraw,
10825
10791
  recipient = options.recipient,
10826
- version = options.version,
10827
- _options$forceBuyExec = options.forceBuyExecution,
10828
- forceBuyExecution = _options$forceBuyExec === void 0 ? false : _options$forceBuyExec;
10792
+ version = options.version;
10829
10793
  var context = prepareExecuteContext(options);
10830
10794
  var assetLocalized = context.assetLocalized,
10831
10795
  assetLocalizedToDest = context.assetLocalizedToDest,
@@ -10835,11 +10799,8 @@ var prepareCommonExecuteXcm = function prepareCommonExecuteXcm(options, assetToD
10835
10799
  prefix.push({
10836
10800
  WithdrawAsset: withdrawAssets
10837
10801
  });
10838
- if (feeAsset && !useJitWithdraw) {
10839
- prefix.push.apply(prefix, _toConsumableArray(createPayFees(version, feeAssetLocalized !== null && feeAssetLocalized !== void 0 ? feeAssetLocalized : assetLocalized, {
10840
- refTime: 450n,
10841
- proofSize: 0n
10842
- }, false, forceBuyExecution)));
10802
+ if (feeAssetLocalized && !useJitWithdraw) {
10803
+ prefix.push.apply(prefix, _toConsumableArray(createPayFees(version, feeAssetLocalized, undefined, false)));
10843
10804
  } else {
10844
10805
  prefix.push({
10845
10806
  SetFeesMode: {
@@ -11107,8 +11068,7 @@ var createSwapExecuteXcm = /*#__PURE__*/function () {
11107
11068
  originFee: hasSeparateFeeAsset ? ethBridgeFee || originFee : originFee,
11108
11069
  reserveFee: originReserveFee
11109
11070
  },
11110
- version: version,
11111
- forceBuyExecution: true
11071
+ version: version
11112
11072
  }, assetToLocalizedToDest), prefix = _prepareCommonExecute.prefix, depositInstruction = _prepareCommonExecute.depositInstruction;
11113
11073
  _context2.n = 4;
11114
11074
  return createExchangeInstructions(options, assetFrom, assetTo, isEthereumDest && hasSeparateFeeAsset);
@@ -11146,7 +11106,6 @@ var createSwapExecuteXcm = /*#__PURE__*/function () {
11146
11106
  originFee: hasSeparateFeeAsset ? ethBridgeFee : 0n,
11147
11107
  reserveFee: destReserveFee
11148
11108
  },
11149
- forceBuyExecution: true,
11150
11109
  suffixXcm: snowbridgeInstructions
11151
11110
  });
11152
11111
  _context2.n = 7;
@@ -11165,7 +11124,6 @@ var createSwapExecuteXcm = /*#__PURE__*/function () {
11165
11124
  originFee: 0n,
11166
11125
  reserveFee: destReserveFee
11167
11126
  },
11168
- forceBuyExecution: true,
11169
11127
  suffixXcm: [depositInstruction]
11170
11128
  });
11171
11129
  } else {
@@ -11185,7 +11143,6 @@ var createSwapExecuteXcm = /*#__PURE__*/function () {
11185
11143
  originFee: hasSeparateFeeAsset ? ethBridgeFee : 0n,
11186
11144
  reserveFee: originReserveFee
11187
11145
  },
11188
- forceBuyExecution: true,
11189
11146
  suffixXcm: [].concat(_toConsumableArray(exchangeInstructions), _toConsumableArray(exchangeToDestXcm))
11190
11147
  }) : [].concat(_toConsumableArray(exchangeInstructions), _toConsumableArray(exchangeToDestXcm));
11191
11148
  fullXcm = [].concat(_toConsumableArray(prefix), _toConsumableArray(finalXcm));
@@ -11668,6 +11625,13 @@ var Acala = /*#__PURE__*/function (_Chain) {
11668
11625
  ForeignAsset: Number(asset.assetId)
11669
11626
  };
11670
11627
  }
11628
+ }, {
11629
+ key: "getMintConfig",
11630
+ value: function getMintConfig() {
11631
+ return {
11632
+ useCustomCurrencyId: true
11633
+ };
11634
+ }
11671
11635
  }, {
11672
11636
  key: "getBalance",
11673
11637
  value: function getBalance(api, address, asset) {
@@ -11785,36 +11749,38 @@ var AssetHubPolkadot = /*#__PURE__*/function (_Chain) {
11785
11749
  }
11786
11750
  _inherits(AssetHubPolkadot, _Chain);
11787
11751
  return _createClass(AssetHubPolkadot, [{
11752
+ key: "shouldUseExecuteTransfer",
11753
+ value: function shouldUseExecuteTransfer(options) {
11754
+ var api = options.api,
11755
+ assetInfo = options.assetInfo,
11756
+ feeAssetInfo = options.feeAssetInfo,
11757
+ overriddenAsset = options.overriddenAsset;
11758
+ if (!feeAssetInfo || overriddenAsset) return false;
11759
+ if (isSymbolMatch(assetInfo.symbol, 'KSM')) return false;
11760
+ var nativeAsset = api.findNativeAssetInfoOrThrow(this.chain);
11761
+ var isNativeAsset = isAssetEqual(nativeAsset, assetInfo);
11762
+ var isNativeFeeAsset = isAssetEqual(nativeAsset, feeAssetInfo);
11763
+ return !isNativeAsset || !isNativeFeeAsset;
11764
+ }
11765
+ }, {
11788
11766
  key: "transferPolkadotXCM",
11789
11767
  value: function () {
11790
11768
  var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
11791
- var api, assetInfo, feeAssetInfo, overriddenAsset, isNativeAsset, isNativeFeeAsset, _t;
11769
+ var api, _t;
11792
11770
  return _regenerator().w(function (_context) {
11793
11771
  while (1) switch (_context.n) {
11794
11772
  case 0:
11795
- api = options.api, assetInfo = options.assetInfo, feeAssetInfo = options.feeAssetInfo, overriddenAsset = options.overriddenAsset;
11796
- if (!(feeAssetInfo && !overriddenAsset)) {
11797
- _context.n = 3;
11798
- break;
11799
- }
11800
- if (!isSymbolMatch(assetInfo.symbol, 'KSM')) {
11801
- _context.n = 1;
11802
- break;
11803
- }
11804
- return _context.a(2, transferPolkadotXcm(options));
11805
- case 1:
11806
- isNativeAsset = isSymbolMatch(assetInfo.symbol, this.getNativeAssetSymbol(api));
11807
- isNativeFeeAsset = isSymbolMatch(feeAssetInfo.symbol, this.getNativeAssetSymbol(api));
11808
- if (!(!isNativeAsset || !isNativeFeeAsset)) {
11809
- _context.n = 3;
11773
+ api = options.api;
11774
+ if (!this.shouldUseExecuteTransfer(options)) {
11775
+ _context.n = 2;
11810
11776
  break;
11811
11777
  }
11812
11778
  _t = api;
11813
- _context.n = 2;
11779
+ _context.n = 1;
11814
11780
  return handleExecuteTransfer(options);
11815
- case 2:
11781
+ case 1:
11816
11782
  return _context.a(2, _t.deserializeExtrinsics.call(_t, _context.v));
11817
- case 3:
11783
+ case 2:
11818
11784
  return _context.a(2, transferPolkadotXcm(options));
11819
11785
  }
11820
11786
  }, _callee, this);
@@ -11925,6 +11891,13 @@ var Astar = /*#__PURE__*/function (_Chain) {
11925
11891
  }
11926
11892
  _inherits(Astar, _Chain);
11927
11893
  return _createClass(Astar, [{
11894
+ key: "getMintConfig",
11895
+ value: function getMintConfig() {
11896
+ return {
11897
+ useBigIntId: true
11898
+ };
11899
+ }
11900
+ }, {
11928
11901
  key: "transferPolkadotXCM",
11929
11902
  value: function transferPolkadotXCM(input) {
11930
11903
  return transferPolkadotXcm(input, 'transfer_assets_using_type_and_then');
@@ -11982,21 +11955,35 @@ var Hydration = /*#__PURE__*/function (_Chain) {
11982
11955
  }
11983
11956
  _inherits(Hydration, _Chain);
11984
11957
  return _createClass(Hydration, [{
11958
+ key: "getMintConfig",
11959
+ value: function getMintConfig() {
11960
+ return {
11961
+ useIdPrefix: false
11962
+ };
11963
+ }
11964
+ }, {
11965
+ key: "shouldUseExecuteTransfer",
11966
+ value: function shouldUseExecuteTransfer(input) {
11967
+ var asset = input.assetInfo,
11968
+ feeAsset = input.feeAssetInfo,
11969
+ overriddenAsset = input.overriddenAsset,
11970
+ api = input.api;
11971
+ if (!feeAsset || overriddenAsset) return false;
11972
+ var nativeAsset = api.findNativeAssetInfoOrThrow(this.chain);
11973
+ var isNativeAsset = isAssetEqual(nativeAsset, asset);
11974
+ var isNativeFeeAsset = isAssetEqual(nativeAsset, feeAsset);
11975
+ return !isNativeAsset || !isNativeFeeAsset;
11976
+ }
11977
+ }, {
11985
11978
  key: "transferPolkadotXCM",
11986
11979
  value: function () {
11987
11980
  var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(input) {
11988
- var destination, asset, feeAsset, overriddenAsset, api, isNativeAsset, isNativeFeeAsset, _t;
11981
+ var destination, asset, api, _t;
11989
11982
  return _regenerator().w(function (_context) {
11990
11983
  while (1) switch (_context.n) {
11991
11984
  case 0:
11992
- destination = input.destination, asset = input.assetInfo, feeAsset = input.feeAssetInfo, overriddenAsset = input.overriddenAsset, api = input.api;
11993
- if (!(feeAsset && !overriddenAsset)) {
11994
- _context.n = 2;
11995
- break;
11996
- }
11997
- isNativeAsset = isSymbolMatch(asset.symbol, this.getNativeAssetSymbol(api));
11998
- isNativeFeeAsset = isSymbolMatch(feeAsset.symbol, this.getNativeAssetSymbol(api));
11999
- if (!(!isNativeAsset || !isNativeFeeAsset)) {
11985
+ destination = input.destination, asset = input.assetInfo, api = input.api;
11986
+ if (!this.shouldUseExecuteTransfer(input)) {
12000
11987
  _context.n = 2;
12001
11988
  break;
12002
11989
  }
@@ -12152,6 +12139,13 @@ var BifrostPolkadot = /*#__PURE__*/function (_Chain) {
12152
12139
  Token2: id
12153
12140
  };
12154
12141
  }
12142
+ }, {
12143
+ key: "getMintConfig",
12144
+ value: function getMintConfig() {
12145
+ return {
12146
+ useCustomCurrencyId: true
12147
+ };
12148
+ }
12155
12149
  }, {
12156
12150
  key: "transferPolkadotXCM",
12157
12151
  value: function transferPolkadotXCM(options) {
@@ -12557,6 +12551,13 @@ var Darwinia = /*#__PURE__*/function (_Chain) {
12557
12551
  }
12558
12552
  _inherits(Darwinia, _Chain);
12559
12553
  return _createClass(Darwinia, [{
12554
+ key: "getMintConfig",
12555
+ value: function getMintConfig() {
12556
+ return {
12557
+ useBigIntId: true
12558
+ };
12559
+ }
12560
+ }, {
12560
12561
  key: "transferPolkadotXCM",
12561
12562
  value: function transferPolkadotXCM(input) {
12562
12563
  var scenario = input.scenario,
@@ -12645,13 +12646,20 @@ var EnergyWebX = /*#__PURE__*/function (_Chain) {
12645
12646
  scenario: scenario
12646
12647
  });
12647
12648
  }
12648
- return transferPolkadotXcm(input, 'reserve_transfer_assets');
12649
+ return transferPolkadotXcm(input);
12649
12650
  }
12650
12651
  }, {
12651
12652
  key: "isRelayToParaEnabled",
12652
12653
  value: function isRelayToParaEnabled() {
12653
12654
  return false;
12654
12655
  }
12656
+ }, {
12657
+ key: "getMintConfig",
12658
+ value: function getMintConfig() {
12659
+ return {
12660
+ useLocationId: true
12661
+ };
12662
+ }
12655
12663
  }, {
12656
12664
  key: "getBalanceForeign",
12657
12665
  value: function () {
@@ -13118,6 +13126,14 @@ var NeuroWeb = /*#__PURE__*/function (_Chain) {
13118
13126
  }
13119
13127
  _inherits(NeuroWeb, _Chain);
13120
13128
  return _createClass(NeuroWeb, [{
13129
+ key: "getMintConfig",
13130
+ value: function getMintConfig() {
13131
+ return {
13132
+ useIdPrefix: false,
13133
+ useBigIntId: true
13134
+ };
13135
+ }
13136
+ }, {
13121
13137
  key: "transferPolkadotXCM",
13122
13138
  value: function transferPolkadotXCM(input) {
13123
13139
  return transferPolkadotXcm(input);
@@ -13390,6 +13406,16 @@ var Quartz = /*#__PURE__*/function (_Chain) {
13390
13406
  value: function transferPolkadotXCM(input) {
13391
13407
  return transferPolkadotXcm(input);
13392
13408
  }
13409
+ }, {
13410
+ key: "transferLocalNonNativeAsset",
13411
+ value: function transferLocalNonNativeAsset(options) {
13412
+ return getChain('Unique').transferLocalNonNativeAsset(options);
13413
+ }
13414
+ }, {
13415
+ key: "getBalanceForeign",
13416
+ value: function getBalanceForeign(api, address, asset) {
13417
+ return getChain('Unique').getBalanceForeign(api, address, asset);
13418
+ }
13393
13419
  }, {
13394
13420
  key: "isSendingTempDisabled",
13395
13421
  value: function isSendingTempDisabled() {
@@ -13401,7 +13427,7 @@ var Quartz = /*#__PURE__*/function (_Chain) {
13401
13427
  var RobonomicsPolkadot = /*#__PURE__*/function (_Chain) {
13402
13428
  function RobonomicsPolkadot() {
13403
13429
  _classCallCheck(this, RobonomicsPolkadot);
13404
- return _callSuper(this, RobonomicsPolkadot, ['RobonomicsPolkadot', 'robonomics', 'Polkadot', Version.V3]);
13430
+ return _callSuper(this, RobonomicsPolkadot, ['RobonomicsPolkadot', 'robonomics', 'Polkadot', Version.V5]);
13405
13431
  }
13406
13432
  _inherits(RobonomicsPolkadot, _Chain);
13407
13433
  return _createClass(RobonomicsPolkadot, [{
@@ -13455,6 +13481,7 @@ var Shiden = /*#__PURE__*/function (_Astar) {
13455
13481
  return _createClass(Shiden);
13456
13482
  }(Astar);
13457
13483
 
13484
+ var FUNGIBLE_ITEM_ID = 0;
13458
13485
  var Unique = /*#__PURE__*/function (_Chain) {
13459
13486
  function Unique() {
13460
13487
  _classCallCheck(this, Unique);
@@ -13468,36 +13495,44 @@ var Unique = /*#__PURE__*/function (_Chain) {
13468
13495
  }
13469
13496
  }, {
13470
13497
  key: "transferLocalNonNativeAsset",
13471
- value: function transferLocalNonNativeAsset(_options) {
13472
- throw new ScenarioNotSupportedError("".concat(this.chain, " does not support foreign assets local transfers"));
13498
+ value: function transferLocalNonNativeAsset(options) {
13499
+ var api = options.api,
13500
+ asset = options.assetInfo,
13501
+ recipient = options.recipient;
13502
+ assertHasId(asset);
13503
+ var amount = getLocalTransferAmount(options);
13504
+ return api.deserializeExtrinsics({
13505
+ module: 'Unique',
13506
+ method: 'transfer',
13507
+ params: {
13508
+ recipient: {
13509
+ Substrate: recipient
13510
+ },
13511
+ collection_id: Number(asset.assetId),
13512
+ item_id: FUNGIBLE_ITEM_ID,
13513
+ value: amount
13514
+ }
13515
+ });
13473
13516
  }
13474
13517
  }, {
13475
13518
  key: "getBalanceForeign",
13476
13519
  value: function () {
13477
13520
  var _getBalanceForeign = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api, address, asset) {
13478
13521
  var _ref, _balance$value;
13479
- var collectionId, balance;
13522
+ var balance;
13480
13523
  return _regenerator().w(function (_context) {
13481
13524
  while (1) switch (_context.n) {
13482
13525
  case 0:
13483
13526
  assertHasId(asset);
13484
13527
  _context.n = 1;
13485
- return api.queryState({
13486
- module: 'ForeignAssets',
13487
- method: 'ForeignAssetToCollection',
13488
- params: [asset.location]
13489
- });
13490
- case 1:
13491
- collectionId = _context.v;
13492
- _context.n = 2;
13493
13528
  return api.queryRuntimeApi({
13494
13529
  module: 'UniqueApi',
13495
13530
  method: 'balance',
13496
- params: [collectionId, {
13531
+ params: [Number(asset.assetId), {
13497
13532
  Substrate: address
13498
- }, Number(asset.assetId)]
13533
+ }, FUNGIBLE_ITEM_ID]
13499
13534
  });
13500
- case 2:
13535
+ case 1:
13501
13536
  balance = _context.v;
13502
13537
  return _context.a(2, (_ref = (_balance$value = balance === null || balance === void 0 ? void 0 : balance.value) !== null && _balance$value !== void 0 ? _balance$value : (balance === null || balance === void 0 ? void 0 : balance.ok) != undefined ? BigInt(balance.ok) : undefined) !== null && _ref !== void 0 ? _ref : 0n);
13503
13538
  }
@@ -13901,6 +13936,17 @@ var maybeOverrideAsset = function maybeOverrideAsset(version, amount, asset, ove
13901
13936
  return createAsset(version, amount, overriddenCurrency);
13902
13937
  };
13903
13938
 
13939
+ var pickOtherMintPallet = function pickOtherMintPallet(asset, pallets) {
13940
+ if (!asset.isNative && (!asset.assetId || asset.assetId.startsWith('0x'))) {
13941
+ var _pallets$find;
13942
+ // No assetId means it's probably a ForeignAssets pallet asset
13943
+ return (_pallets$find = pallets.find(function (pallet) {
13944
+ return pallet.startsWith('Foreign');
13945
+ })) !== null && _pallets$find !== void 0 ? _pallets$find : pallets[0];
13946
+ }
13947
+ return pallets[0];
13948
+ };
13949
+
13904
13950
  var isHere = function isHere(loc) {
13905
13951
  var _loc$interior;
13906
13952
  return loc.interior === 'Here' || ((_loc$interior = loc.interior) === null || _loc$interior === void 0 ? void 0 : _loc$interior.Here) !== undefined;
@@ -13939,6 +13985,17 @@ var _excluded = ["apiOverrides"];
13939
13985
  var isUrl = function isUrl(value) {
13940
13986
  return typeof value === 'string' || Array.isArray(value);
13941
13987
  };
13988
+ /**
13989
+ * Checks if a given chain is a supported exchange chain.
13990
+ *
13991
+ * @param chain - The chain to check.
13992
+ * @returns True if the chain is a supported exchange chain; otherwise, false.
13993
+ */
13994
+ var isExchange = function isExchange(chain) {
13995
+ return EXCHANGE_CHAINS.some(function (c) {
13996
+ return c === chain;
13997
+ });
13998
+ };
13942
13999
  var convertBuilderConfig = function convertBuilderConfig(config) {
13943
14000
  if (!config) return undefined;
13944
14001
  if (isConfig(config)) {
@@ -14190,6 +14247,8 @@ var resolveModuleError = function resolveModuleError(chain, error) {
14190
14247
  throw new RoutingResolutionError("Error index ".concat(errorIndex, " not found in ").concat(name, " pallet"));
14191
14248
  }
14192
14249
  if (failureReason === PolkadotXcmError.LocalExecutionIncompleteWithError) {
14250
+ // Byte layout: [pallet error variant][instruction index][xcm sub-error]
14251
+ var failureIndex = Number("0x".concat(error.error.slice(4, 6)));
14193
14252
  var subErrorIndex = Number("0x".concat(error.error.slice(6, 8)));
14194
14253
  var failureSubReason = Object.values(PolkadotXcmExecutionError)[subErrorIndex];
14195
14254
  if (!failureSubReason) {
@@ -14197,7 +14256,8 @@ var resolveModuleError = function resolveModuleError(chain, error) {
14197
14256
  }
14198
14257
  return {
14199
14258
  failureReason: failureReason,
14200
- failureSubReason: failureSubReason
14259
+ failureSubReason: failureSubReason,
14260
+ failureIndex: failureIndex
14201
14261
  };
14202
14262
  }
14203
14263
  return {
@@ -14913,4 +14973,4 @@ var createClientCache = function createClientCache(maxSize, pingClient, onEvicti
14913
14973
  };
14914
14974
  };
14915
14975
 
14916
- export { API_TYPES, AmountTooLowError, ApiNotInitializedError, AssetClaimBuilder, BaseAssetsPallet, BatchMode, BatchValidationError, BridgeHaltedError, Builder, CustomChainConflictError, CustomChainInvalidError, DEFAULT_TTL_MS, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETH_MAINNET_CHAIN_ID, ETH_TESTNET_CHAIN_ID, EXCHANGE_CHAINS, EXTENSION_MS, ExtensionNotInstalledError, FeatureTemporarilyDisabledError, GeneralBuilder, InvalidAddressError, MAX_CLIENTS, MissingChainApiError, MissingParameterError, NoXCMSupportImplementedError, NumberFormatError, OverrideConflictError, PolkadotApi, PolkadotXcmError, PolkadotXcmExecutionError, ProviderUnavailableError, RELAY_LOCATION, RoutingResolutionError, RuntimeApiError, RuntimeApiUnavailableError, ScenarioNotSupportedError, SubmitTransactionError, TRANSACT_ORIGINS, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, TypeAndThenUnavailableError, UnableToComputeError, UnsupportedOperationError, ValidationError, XTokensError, abstractDecimals, addEthereumBridgeFees, addXcmVersionHeader, aggregateHopFees, applyDecimalAbstraction, assertAddressIsString, assertCurrencyCore, assertEvmAddress, assertExtensionInstalled, assertHasId, assertNotEvmTransfer, assertNotRawAssets, assertSender, assertSenderSource, assertSubstrateOrigin, assertSwapSupport, assertToIsString, blake2b256, blake2b512, buildCustomChainAssetsInfo, buildCustomChainConfig, buildDestInfo, buildHopInfo, buildOriginInfo, calcPreviewMintAmount, claimAssets, compareAddresses, computeOverridenAmount, constructTypeAndThenCall, convertBuilderConfig, convertSs58, createAsset, createAssetId, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createChainClient, createClientCache, createClientPoolHelpers, createCustomXcmOnDest, createDestination, createDirectExecuteXcm, createEthereumBridgeInstructions, createExecuteCall, createExecuteExchangeXcm, createSwapBuilder, createTransfer, createTransferOrSwap, createTransferOrSwapAll, createTxOverrideAmount, createTypeAndThenCall, createTypeThenAutoReserve, createVersionedAssets, createVersionedDestination, createX1Payload, deriveAccountId, dryRun, dryRunInternal, dryRunOrigin, encodeSs58, executeWithSwap, formatAssetIdToERC20, formatUnits, generateMessageId, getAssetBalanceInternal, getAssetReserveChain, getAssetReserveChainImpl, getBalance, getBalanceInternal, getBridgeStatus, getChain, getChainConfig, getChainConfigImpl, getChainLocation, getChainProviders, getChainProvidersImpl, getChainVersion, getEthErc20Balance, getEvmExtensionOrThrow, getEvmPrivateKeyHex, getEvmSnowbridgeExtensionOrThrow, getFailureInfo$1 as getFailureInfo, getLocalTransferAmount, getMinTransferableAmount, getMinTransferableAmountInternal, getMoonbeamErc20Balance, getOriginXcmFee, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getParaIdImpl, getRelayChainOf, getRelayChainOfImpl, getRelayChainSymbolOf, getSwapExtensionOrThrow, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeInternal, getXcmFeeOnce, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, isSenderSigner, isViemSigner, keyFromWs, localizeLocation, localizeLocationImpl, maybeOverrideAsset, maybeOverrideAssets, normalizeAmount, normalizeCustomChains, normalizeExchange, overrideTxAmount, padFee, padValueBy, parseUnits, pickCompatibleXcmVersion, pickRouterCompatibleXcmVersion, registerEvmExtension, registerEvmSnowbridgeExtension, registerSwapExtension, resolveAssetCount, resolveDestChain, resolveModuleError, resolveParaId, resolveTransferParams, reverseTransformLocation, selectXcmVersion, sortAssets, throwUnsupportedCurrency, transferMoonbeamEvm, transferMoonbeamToEth, traverseXcmHops, validateAddress, validateAssetSpecifiers, validateCurrency, validateDestination, validateDestinationAddress, validateTransact, verifyEdOnDestination, wrapTxBypass };
14976
+ export { API_TYPES, AmountTooLowError, ApiNotInitializedError, AssetClaimBuilder, BaseAssetsPallet, BatchMode, BatchValidationError, BridgeHaltedError, Builder, CustomChainConflictError, CustomChainInvalidError, DEFAULT_TTL_MS, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETH_MAINNET_CHAIN_ID, ETH_TESTNET_CHAIN_ID, EXCHANGE_CHAINS, EXTENSION_MS, ExtensionNotInstalledError, FeatureTemporarilyDisabledError, GeneralBuilder, InvalidAddressError, MAX_CLIENTS, MissingChainApiError, MissingParameterError, NoXCMSupportImplementedError, NumberFormatError, OverrideConflictError, PolkadotApi, PolkadotXcmError, PolkadotXcmExecutionError, ProviderUnavailableError, RELAY_LOCATION, RoutingResolutionError, RuntimeApiError, RuntimeApiUnavailableError, ScenarioNotSupportedError, SubmitTransactionError, TRANSACT_ORIGINS, TX_CLIENT_TIMEOUT_MS, TypeAndThenUnavailableError, UnableToComputeError, UnsupportedOperationError, ValidationError, XTokensError, abstractDecimals, addEthereumBridgeFees, addXcmVersionHeader, aggregateHopFees, applyDecimalAbstraction, assertAddressIsString, assertCurrencyCore, assertEvmAddress, assertExtensionInstalled, assertHasId, assertNotEvmTransfer, assertNotRawAssets, assertSender, assertSenderSource, assertSubstrateOrigin, assertSwapSupport, assertToIsString, blake2b256, blake2b512, buildCustomChainAssetsInfo, buildCustomChainConfig, buildDestInfo, buildHopInfo, buildOriginInfo, calcPreviewMintAmount, claimAssets, compareAddresses, computeOverridenAmount, constructTypeAndThenCall, convertBuilderConfig, convertSs58, createAsset, createAssetId, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createChainClient, createClientCache, createClientPoolHelpers, createCustomXcmOnDest, createDestination, createDirectExecuteXcm, createEthereumBridgeInstructions, createExecuteCall, createExecuteExchangeXcm, createSwapBuilder, createTransfer, createTransferOrSwap, createTransferOrSwapAll, createTxOverrideAmount, createTypeAndThenCall, createTypeThenAutoReserve, createVersionedAssets, createVersionedDestination, createX1Payload, deriveAccountId, dryRun, dryRunInternal, dryRunOrigin, encodeSs58, executeWithSwap, formatAssetIdToERC20, formatUnits, generateMessageId, getAssetBalanceInternal, getAssetReserveChain, getAssetReserveChainImpl, getBalance, getBalanceInternal, getBridgeStatus, getChain, getChainConfig, getChainConfigImpl, getChainLocation, getChainProviders, getChainProvidersImpl, getChainVersion, getEthErc20Balance, getEvmExtensionOrThrow, getEvmPrivateKeyHex, getEvmSnowbridgeExtensionOrThrow, getFailureInfo$1 as getFailureInfo, getLocalTransferAmount, getMinTransferableAmount, getMinTransferableAmountInternal, getMoonbeamErc20Balance, getOriginXcmFee, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getParaIdImpl, getRelayChainOf, getRelayChainOfImpl, getRelayChainSymbolOf, getSwapExtensionOrThrow, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeInternal, getXcmFeeOnce, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, isExchange, isNativeAssetTeleport, isSenderSigner, isViemSigner, keyFromWs, localizeLocation, localizeLocationImpl, maybeOverrideAsset, maybeOverrideAssets, normalizeAmount, normalizeCustomChains, normalizeExchange, overrideTxAmount, padFee, padValueBy, parseUnits, pickCompatibleXcmVersion, pickOtherMintPallet, pickRouterCompatibleXcmVersion, registerEvmExtension, registerEvmSnowbridgeExtension, registerSwapExtension, resolveAssetCount, resolveDestChain, resolveModuleError, resolveParaId, resolveTransferParams, reverseTransformLocation, selectXcmVersion, sortAssets, throwUnsupportedCurrency, transferMoonbeamEvm, transferMoonbeamToEth, traverseXcmHops, validateAddress, validateAssetSpecifiers, validateCurrency, validateDestination, validateDestinationAddress, validateTransact, verifyEdOnDestination, wrapTxBypass };