@paraspell/sdk-core 12.2.1 → 12.3.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.d.ts +47 -74
- package/dist/index.mjs +1172 -1368
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { blake2b } from '@noble/hashes/blake2.js';
|
|
2
|
-
import { isChainEvm, getAssetsObject, InvalidCurrencyError, extractAssetLocation, findAssetInfoOrThrow,
|
|
2
|
+
import { isChainEvm, getAssetsObject, InvalidCurrencyError, extractAssetLocation, findAssetInfoOrThrow, isTAsset, findNativeAssetInfoOrThrow, findAssetInfo, getExistentialDepositOrThrow, isSymbolMatch, getNativeAssetSymbol, getEdFromAssetOrThrow, hasDryRunSupport, findAssetOnDestOrThrow, findAssetInfoOnDest, isAssetEqual, isStableCoinAsset, isOverrideLocationSpecifier, getRelayChainSymbol, isSymbolSpecifier, findNativeAssetInfo, isAssetXcEqual, normalizeLocation, normalizeSymbol, getOtherAssets, Native, hasXcmPaymentApiSupport } from '@paraspell/assets';
|
|
3
3
|
export * from '@paraspell/assets';
|
|
4
4
|
import { base58 } from '@scure/base';
|
|
5
5
|
import { isAddress, parseUnits as parseUnits$1, formatUnits as formatUnits$1, getContract, createPublicClient, http, pad, toHex, getAddress, concat, keccak256 } from 'viem';
|
|
6
|
-
import { replaceBigInt, isTLocation, Version, hasJunction, getJunctionValue, isRelayChain, deepEqual, Parents, isExternalChain,
|
|
6
|
+
import { replaceBigInt, isTLocation, Version, hasJunction, getJunctionValue, isRelayChain, deepEqual, Parents, isExternalChain, isSnowbridge, isBridge, PARACHAINS, RELAYCHAINS, isSubstrateBridge, isTrustedChain } from '@paraspell/sdk-common';
|
|
7
7
|
export * from '@paraspell/sdk-common';
|
|
8
|
-
import { mainnet, moonbeam, moonriver } from 'viem/chains';
|
|
8
|
+
import { mainnet, sepolia, moonbeam, moonriver } from 'viem/chains';
|
|
9
9
|
import { getSupportedPallets, getNativeAssetsPallet, getOtherAssetsPallets, getSupportedPalletsDetails } from '@paraspell/pallets';
|
|
10
10
|
export * from '@paraspell/pallets';
|
|
11
11
|
|
|
@@ -690,6 +690,18 @@ var TransferToAhNotSupported = /*#__PURE__*/function (_Error) {
|
|
|
690
690
|
return _createClass(TransferToAhNotSupported);
|
|
691
691
|
}(/*#__PURE__*/_wrapNativeSuper(Error));
|
|
692
692
|
|
|
693
|
+
var TypeAndThenUnavailableError = /*#__PURE__*/function (_Error) {
|
|
694
|
+
function TypeAndThenUnavailableError(message) {
|
|
695
|
+
var _this;
|
|
696
|
+
_classCallCheck(this, TypeAndThenUnavailableError);
|
|
697
|
+
_this = _callSuper(this, TypeAndThenUnavailableError, [message]);
|
|
698
|
+
_this.name = 'TypeAndThenUnavailableError';
|
|
699
|
+
return _this;
|
|
700
|
+
}
|
|
701
|
+
_inherits(TypeAndThenUnavailableError, _Error);
|
|
702
|
+
return _createClass(TypeAndThenUnavailableError);
|
|
703
|
+
}(/*#__PURE__*/_wrapNativeSuper(Error));
|
|
704
|
+
|
|
693
705
|
/**
|
|
694
706
|
* UnableToComputeError is thrown when a computation cannot be performed.
|
|
695
707
|
*/
|
|
@@ -1254,152 +1266,166 @@ var getAssetReserveChain = function getAssetReserveChain(chain, assetLocation) {
|
|
|
1254
1266
|
return chain;
|
|
1255
1267
|
};
|
|
1256
1268
|
|
|
1257
|
-
var
|
|
1269
|
+
var buildClaimAssetsParams = function buildClaimAssetsParams(options) {
|
|
1270
|
+
var assets = options.assets,
|
|
1271
|
+
version = options.version;
|
|
1272
|
+
var beneficiary = createBeneficiaryLocation(options);
|
|
1273
|
+
return {
|
|
1274
|
+
assets: addXcmVersionHeader(assets, version),
|
|
1275
|
+
beneficiary: addXcmVersionHeader(beneficiary, version)
|
|
1276
|
+
};
|
|
1277
|
+
};
|
|
1258
1278
|
|
|
1259
|
-
var
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
var
|
|
1264
|
-
var
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1279
|
+
var resolveAssets = function resolveAssets(_ref, version) {
|
|
1280
|
+
var api = _ref.api,
|
|
1281
|
+
chain = _ref.chain,
|
|
1282
|
+
currency = _ref.currency;
|
|
1283
|
+
var normalizeAsset = function normalizeAsset(amount, currency) {
|
|
1284
|
+
var asset = findAssetInfoOrThrow(chain, currency, null);
|
|
1285
|
+
assertHasLocation(asset);
|
|
1286
|
+
var abstracted = abstractDecimals(amount, asset.decimals, api);
|
|
1287
|
+
return createAsset(version, abstracted, localizeLocation(chain, asset.location));
|
|
1288
|
+
};
|
|
1289
|
+
if (Array.isArray(currency)) {
|
|
1290
|
+
if (currency.every(function (asset) {
|
|
1291
|
+
return isTAsset(asset);
|
|
1292
|
+
})) {
|
|
1293
|
+
return currency.map(function (asset) {
|
|
1294
|
+
return _objectSpread2(_objectSpread2({}, asset), {}, {
|
|
1295
|
+
fun: {
|
|
1296
|
+
Fungible: BigInt(asset.fun.Fungible)
|
|
1297
|
+
}
|
|
1298
|
+
});
|
|
1299
|
+
});
|
|
1300
|
+
} else {
|
|
1301
|
+
return currency.map(function (currency) {
|
|
1302
|
+
return normalizeAsset(currency.amount, currency);
|
|
1303
|
+
});
|
|
1304
|
+
}
|
|
1269
1305
|
}
|
|
1270
|
-
return
|
|
1306
|
+
return [normalizeAsset(currency.amount, currency)];
|
|
1271
1307
|
};
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1308
|
+
|
|
1309
|
+
var claimAssets = /*#__PURE__*/function () {
|
|
1310
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
|
|
1311
|
+
var api, chain, address, pallets, supportedPallet, version, assets, params, call;
|
|
1312
|
+
return _regenerator().w(function (_context) {
|
|
1313
|
+
while (1) switch (_context.n) {
|
|
1314
|
+
case 0:
|
|
1315
|
+
api = options.api, chain = options.chain, address = options.address;
|
|
1316
|
+
validateAddress(api, address, chain, true);
|
|
1317
|
+
_context.n = 1;
|
|
1318
|
+
return api.init(chain, TX_CLIENT_TIMEOUT_MS);
|
|
1319
|
+
case 1:
|
|
1320
|
+
pallets = getSupportedPallets(chain);
|
|
1321
|
+
supportedPallet = pallets.find(function (p) {
|
|
1322
|
+
return p === 'PolkadotXcm' || p === 'XcmPallet';
|
|
1323
|
+
});
|
|
1324
|
+
if (supportedPallet) {
|
|
1325
|
+
_context.n = 2;
|
|
1326
|
+
break;
|
|
1327
|
+
}
|
|
1328
|
+
throw new UnsupportedOperationError('Unsupported pallet for asset claim');
|
|
1329
|
+
case 2:
|
|
1330
|
+
version = getChainVersion(chain);
|
|
1331
|
+
assets = resolveAssets(options, version);
|
|
1332
|
+
params = buildClaimAssetsParams(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
1333
|
+
version: version,
|
|
1334
|
+
assets: assets
|
|
1335
|
+
}));
|
|
1336
|
+
call = {
|
|
1337
|
+
module: supportedPallet,
|
|
1338
|
+
method: 'claim_assets',
|
|
1339
|
+
params: params
|
|
1340
|
+
};
|
|
1341
|
+
return _context.a(2, api.deserializeExtrinsics(call));
|
|
1291
1342
|
}
|
|
1292
|
-
};
|
|
1343
|
+
}, _callee);
|
|
1344
|
+
}));
|
|
1345
|
+
return function claimAssets(_x) {
|
|
1346
|
+
return _ref.apply(this, arguments);
|
|
1293
1347
|
};
|
|
1294
|
-
|
|
1295
|
-
if (isBifrostOrigin) {
|
|
1296
|
-
return createDefaultLocation(asset.assetId);
|
|
1297
|
-
}
|
|
1298
|
-
if (asset.location) {
|
|
1299
|
-
return asset.location;
|
|
1300
|
-
} else {
|
|
1301
|
-
return createDefaultLocation(asset.assetId);
|
|
1302
|
-
}
|
|
1303
|
-
};
|
|
1348
|
+
}();
|
|
1304
1349
|
|
|
1305
|
-
var
|
|
1306
|
-
|
|
1307
|
-
version = input.version;
|
|
1308
|
-
var location = buildLocation(input);
|
|
1309
|
-
var multiAsset = createAsset(version, asset.amount, location);
|
|
1310
|
-
return addXcmVersionHeader(multiAsset, version);
|
|
1350
|
+
var isAssetHub = function isAssetHub(chain) {
|
|
1351
|
+
return chain === 'AssetHubPolkadot' || chain === 'AssetHubKusama';
|
|
1311
1352
|
};
|
|
1312
|
-
var
|
|
1313
|
-
|
|
1314
|
-
asset = input.asset,
|
|
1315
|
-
overriddenAsset = input.overriddenAsset;
|
|
1316
|
-
if (overriddenAsset) {
|
|
1317
|
-
return addXcmVersionHeader(maybeOverrideAssets(version, asset.amount, [], overriddenAsset), version);
|
|
1318
|
-
}
|
|
1319
|
-
return createDefaultCurrencySelection(input);
|
|
1353
|
+
var isBridgeHub = function isBridgeHub(chain) {
|
|
1354
|
+
return chain === 'BridgeHubPolkadot' || chain === 'BridgeHubKusama';
|
|
1320
1355
|
};
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
var versionedDestLocation = addXcmVersionHeader(destLocation, version);
|
|
1324
|
-
if (!isMultiAssetTransfer) {
|
|
1325
|
-
return {
|
|
1326
|
-
currency_id: currencySelection,
|
|
1327
|
-
amount: BigInt(amount),
|
|
1328
|
-
dest: versionedDestLocation,
|
|
1329
|
-
dest_weight_limit: weightLimit
|
|
1330
|
-
};
|
|
1331
|
-
}
|
|
1332
|
-
var isOverriddenMultiAssets = overriddenAsset && !isTLocation(overriddenAsset);
|
|
1333
|
-
var assetKey = isOverriddenMultiAssets ? 'assets' : 'asset';
|
|
1334
|
-
var feeAssetIndex = isOverriddenMultiAssets ? overriddenAsset.findIndex(function (asset) {
|
|
1335
|
-
return asset.isFeeAsset;
|
|
1336
|
-
}) : undefined;
|
|
1337
|
-
var feeIndexWithFallback = feeAssetIndex === -1 ? 0 : feeAssetIndex;
|
|
1338
|
-
return _objectSpread2(_objectSpread2(_defineProperty({}, assetKey, currencySelection), isOverriddenMultiAssets && {
|
|
1339
|
-
fee_item: feeIndexWithFallback
|
|
1340
|
-
}), {}, {
|
|
1341
|
-
dest: versionedDestLocation,
|
|
1342
|
-
dest_weight_limit: weightLimit
|
|
1343
|
-
});
|
|
1356
|
+
var isPeople = function isPeople(chain) {
|
|
1357
|
+
return chain === 'PeoplePolkadot' || chain === 'PeopleKusama';
|
|
1344
1358
|
};
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
var origin = _ref.origin,
|
|
1348
|
-
destination = _ref.destination,
|
|
1349
|
-
scenario = _ref.scenario,
|
|
1350
|
-
overriddenAsset = _ref.overriddenAsset,
|
|
1351
|
-
useMultiAssetTransfer = _ref.useMultiAssetTransfer;
|
|
1352
|
-
var isAstarOrShidenToRelay = scenario === 'ParaToRelay' && (origin === 'Astar' || origin === 'Shiden');
|
|
1353
|
-
var isBifrostOrigin = origin === 'BifrostPolkadot' || origin === 'BifrostKusama';
|
|
1354
|
-
var isAssetHubDest = destination === 'AssetHubPolkadot' || destination === 'AssetHubKusama';
|
|
1355
|
-
var isOverriddenMultiAssets = overriddenAsset && !isTLocation(overriddenAsset);
|
|
1356
|
-
return useMultiAssetTransfer || isAstarOrShidenToRelay || isAssetHubDest && !isBifrostOrigin || !!isOverriddenMultiAssets;
|
|
1359
|
+
var isSystemPara = function isSystemPara(chain) {
|
|
1360
|
+
return isAssetHub(chain) || isBridgeHub(chain) || isPeople(chain);
|
|
1357
1361
|
};
|
|
1358
|
-
var
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
return isOverriddenMultiAssets ? 'transfer_multiassets' : 'transfer_multiasset';
|
|
1362
|
+
var mul = function mul(v, num) {
|
|
1363
|
+
var den = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1n;
|
|
1364
|
+
return v * num / den;
|
|
1362
1365
|
};
|
|
1363
|
-
var
|
|
1364
|
-
var
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
origin: origin,
|
|
1380
|
-
destination: destination,
|
|
1381
|
-
address: address,
|
|
1382
|
-
version: version,
|
|
1383
|
-
paraId: paraIdTo
|
|
1384
|
-
});
|
|
1385
|
-
var params = getXTokensParams(useMultiAsset, modifiedCurrencySelection, destLocation, asset.amount, fees, version, overriddenAsset);
|
|
1386
|
-
return {
|
|
1387
|
-
module: pallet !== null && pallet !== void 0 ? pallet : 'XTokens',
|
|
1388
|
-
method: methodOverride !== null && methodOverride !== void 0 ? methodOverride : method,
|
|
1389
|
-
params: params
|
|
1390
|
-
};
|
|
1366
|
+
var padFee = function padFee(raw, origin, dest, side) {
|
|
1367
|
+
var relayOrigin = isRelayChain(origin);
|
|
1368
|
+
var relayDest = isRelayChain(dest);
|
|
1369
|
+
var sysParaOrigin = isSystemPara(origin);
|
|
1370
|
+
var sysParaDest = isSystemPara(dest);
|
|
1371
|
+
var relayToPara = relayOrigin && !relayDest;
|
|
1372
|
+
var sysParaToPara = sysParaOrigin && !sysParaDest;
|
|
1373
|
+
var paraToPara = !relayOrigin && !sysParaOrigin;
|
|
1374
|
+
if (sysParaToPara) return raw * 40n;
|
|
1375
|
+
if (relayToPara) return side === 'origin' ? mul(raw, 320n, 100n) : mul(raw, 3000n, 100n);
|
|
1376
|
+
if (paraToPara && side == 'origin' && origin === 'Mythos' && dest !== 'Ethereum') {
|
|
1377
|
+
return 150000000000000000n;
|
|
1378
|
+
}
|
|
1379
|
+
if (paraToPara) return mul(raw, 130n, 100n);
|
|
1380
|
+
// apply default 30% padding
|
|
1381
|
+
return mul(raw, 130n, 100n);
|
|
1391
1382
|
};
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
var fees = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_FEE;
|
|
1396
|
-
var api = input.api,
|
|
1397
|
-
destination = input.destination;
|
|
1398
|
-
assertToIsString(destination, ERR_LOCATION_DEST_NOT_SUPPORTED);
|
|
1399
|
-
var call = buildXTokensCall(input, currencySelection, fees);
|
|
1400
|
-
return api.deserializeExtrinsics(call);
|
|
1383
|
+
var padValueBy = function padValueBy(amount, percent) {
|
|
1384
|
+
var scaled = BigInt(Math.round(percent * 100)); // 2 decimal precision
|
|
1385
|
+
return amount * (BigInt(10000) + scaled) / BigInt(10000);
|
|
1401
1386
|
};
|
|
1402
1387
|
|
|
1388
|
+
var getMythosOriginFee = /*#__PURE__*/function () {
|
|
1389
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api) {
|
|
1390
|
+
var ahApi, _yield$getParaEthTran, _yield$getParaEthTran2, bridgeFee, ahExecutionFee, nativeAsset, feeConverted;
|
|
1391
|
+
return _regenerator().w(function (_context) {
|
|
1392
|
+
while (1) switch (_context.n) {
|
|
1393
|
+
case 0:
|
|
1394
|
+
ahApi = api.clone();
|
|
1395
|
+
_context.n = 1;
|
|
1396
|
+
return ahApi.init('AssetHubPolkadot');
|
|
1397
|
+
case 1:
|
|
1398
|
+
_context.n = 2;
|
|
1399
|
+
return getParaEthTransferFees(ahApi, false);
|
|
1400
|
+
case 2:
|
|
1401
|
+
_yield$getParaEthTran = _context.v;
|
|
1402
|
+
_yield$getParaEthTran2 = _slicedToArray(_yield$getParaEthTran, 2);
|
|
1403
|
+
bridgeFee = _yield$getParaEthTran2[0];
|
|
1404
|
+
ahExecutionFee = _yield$getParaEthTran2[1];
|
|
1405
|
+
nativeAsset = findNativeAssetInfoOrThrow('Mythos');
|
|
1406
|
+
assertHasLocation(nativeAsset);
|
|
1407
|
+
_context.n = 3;
|
|
1408
|
+
return ahApi.quoteAhPrice(DOT_LOCATION, nativeAsset.location, bridgeFee + ahExecutionFee);
|
|
1409
|
+
case 3:
|
|
1410
|
+
feeConverted = _context.v;
|
|
1411
|
+
_context.n = 4;
|
|
1412
|
+
return ahApi.disconnect();
|
|
1413
|
+
case 4:
|
|
1414
|
+
if (feeConverted) {
|
|
1415
|
+
_context.n = 5;
|
|
1416
|
+
break;
|
|
1417
|
+
}
|
|
1418
|
+
throw new UnableToComputeError("Pool DOT -> ".concat(nativeAsset.symbol, " not found."));
|
|
1419
|
+
case 5:
|
|
1420
|
+
return _context.a(2, padValueBy(feeConverted, 10));
|
|
1421
|
+
}
|
|
1422
|
+
}, _callee);
|
|
1423
|
+
}));
|
|
1424
|
+
return function getMythosOriginFee(_x) {
|
|
1425
|
+
return _ref.apply(this, arguments);
|
|
1426
|
+
};
|
|
1427
|
+
}();
|
|
1428
|
+
|
|
1403
1429
|
var AssetHubPolkadot$1 = {
|
|
1404
1430
|
name: "Asset Hub",
|
|
1405
1431
|
info: "PolkadotAssetHub",
|
|
@@ -1623,7 +1649,7 @@ var EnergyWebX$1 = {
|
|
|
1623
1649
|
providers: [
|
|
1624
1650
|
{
|
|
1625
1651
|
name: "Energy Web",
|
|
1626
|
-
endpoint: "wss://
|
|
1652
|
+
endpoint: "wss://wnp-rpc.mainnet.energywebx.com/"
|
|
1627
1653
|
}
|
|
1628
1654
|
]
|
|
1629
1655
|
};
|
|
@@ -2902,316 +2928,82 @@ var configs = {
|
|
|
2902
2928
|
AssetHubKusama: AssetHubKusama$1,
|
|
2903
2929
|
BridgeHubKusama: BridgeHubKusama$1,
|
|
2904
2930
|
Karura: Karura$1,
|
|
2905
|
-
Kintsugi: Kintsugi$1,
|
|
2906
|
-
Moonriver: Moonriver$1,
|
|
2907
|
-
CoretimeKusama: CoretimeKusama$1,
|
|
2908
|
-
Encointer: Encointer$1,
|
|
2909
|
-
Altair: Altair$1,
|
|
2910
|
-
Amplitude: Amplitude$1,
|
|
2911
|
-
Basilisk: Basilisk$1,
|
|
2912
|
-
BifrostKusama: BifrostKusama$1,
|
|
2913
|
-
CrustShadow: CrustShadow$1,
|
|
2914
|
-
Crab: Crab$1,
|
|
2915
|
-
Laos: Laos$1,
|
|
2916
|
-
Quartz: Quartz$1,
|
|
2917
|
-
PeopleKusama: PeopleKusama$1,
|
|
2918
|
-
Shiden: Shiden$1,
|
|
2919
|
-
Zeitgeist: Zeitgeist$1,
|
|
2920
|
-
AssetHubWestend: AssetHubWestend$1,
|
|
2921
|
-
BridgeHubWestend: BridgeHubWestend$1,
|
|
2922
|
-
CollectivesWestend: CollectivesWestend$1,
|
|
2923
|
-
CoretimeWestend: CoretimeWestend$1,
|
|
2924
|
-
Penpal: Penpal$1,
|
|
2925
|
-
PeopleWestend: PeopleWestend$1,
|
|
2926
|
-
AjunaPaseo: AjunaPaseo$1,
|
|
2927
|
-
AssetHubPaseo: AssetHubPaseo$1,
|
|
2928
|
-
BifrostPaseo: BifrostPaseo$1,
|
|
2929
|
-
BridgeHubPaseo: BridgeHubPaseo$1,
|
|
2930
|
-
CoretimePaseo: CoretimePaseo$1,
|
|
2931
|
-
EnergyWebXPaseo: EnergyWebXPaseo$1,
|
|
2932
|
-
HeimaPaseo: HeimaPaseo$1,
|
|
2933
|
-
HydrationPaseo: HydrationPaseo$1,
|
|
2934
|
-
KiltPaseo: KiltPaseo$1,
|
|
2935
|
-
LaosPaseo: LaosPaseo$1,
|
|
2936
|
-
NeuroWebPaseo: NeuroWebPaseo$1,
|
|
2937
|
-
PAssetHub: PAssetHub$1,
|
|
2938
|
-
PeoplePaseo: PeoplePaseo$1,
|
|
2939
|
-
ZeitgeistPaseo: ZeitgeistPaseo$1,
|
|
2940
|
-
Polkadot: Polkadot,
|
|
2941
|
-
Kusama: Kusama,
|
|
2942
|
-
Westend: Westend,
|
|
2943
|
-
Paseo: Paseo
|
|
2944
|
-
};
|
|
2945
|
-
|
|
2946
|
-
var configsMap = configs;
|
|
2947
|
-
var getChainConfig = function getChainConfig(chain) {
|
|
2948
|
-
return configsMap[chain];
|
|
2949
|
-
};
|
|
2950
|
-
|
|
2951
|
-
var getChainProviders = function getChainProviders(chain) {
|
|
2952
|
-
var _getChainConfig = getChainConfig(chain),
|
|
2953
|
-
providers = _getChainConfig.providers;
|
|
2954
|
-
if (providers.length === 0) {
|
|
2955
|
-
throw new ProviderUnavailableError("No providers found for chain ".concat(chain));
|
|
2956
|
-
}
|
|
2957
|
-
// Prefer Dwellir provider
|
|
2958
|
-
providers.sort(function (a, b) {
|
|
2959
|
-
return (a.name === 'Dwellir' ? 0 : 1) - (b.name === 'Dwellir' ? 0 : 1);
|
|
2960
|
-
});
|
|
2961
|
-
return providers.map(function (p) {
|
|
2962
|
-
return p.endpoint;
|
|
2963
|
-
});
|
|
2964
|
-
};
|
|
2965
|
-
|
|
2966
|
-
/**
|
|
2967
|
-
* Retrieves the parachain ID for a specified chain.
|
|
2968
|
-
*
|
|
2969
|
-
* @param chain - The chain for which to get the paraId.
|
|
2970
|
-
* @returns The parachain ID of the chain.
|
|
2971
|
-
*/
|
|
2972
|
-
var getParaId = function getParaId(chain) {
|
|
2973
|
-
if (chain === 'Ethereum') {
|
|
2974
|
-
return ETH_PARA_ID;
|
|
2975
|
-
}
|
|
2976
|
-
return getChainConfig(chain).paraId;
|
|
2977
|
-
};
|
|
2978
|
-
|
|
2979
|
-
var resolveScenario = function resolveScenario(origin, destination) {
|
|
2980
|
-
if (isRelayChain(origin)) return 'RelayToPara';
|
|
2981
|
-
var isRelayDestination = !isTLocation(destination) && isRelayChain(destination);
|
|
2982
|
-
if (isRelayDestination) return 'ParaToRelay';
|
|
2983
|
-
return 'ParaToPara';
|
|
2984
|
-
};
|
|
2985
|
-
|
|
2986
|
-
var constructRelayToParaParams = function constructRelayToParaParams(_ref, version) {
|
|
2987
|
-
var api = _ref.api,
|
|
2988
|
-
origin = _ref.origin,
|
|
2989
|
-
destination = _ref.destination,
|
|
2990
|
-
asset = _ref.assetInfo,
|
|
2991
|
-
address = _ref.address,
|
|
2992
|
-
paraIdTo = _ref.paraIdTo;
|
|
2993
|
-
var paraId = resolveParaId(paraIdTo, destination);
|
|
2994
|
-
var beneficiaryLocation = createBeneficiaryLocation({
|
|
2995
|
-
api: api,
|
|
2996
|
-
address: address,
|
|
2997
|
-
version: version
|
|
2998
|
-
});
|
|
2999
|
-
return {
|
|
3000
|
-
dest: createVersionedDestination(version, origin, destination, paraId),
|
|
3001
|
-
beneficiary: addXcmVersionHeader(beneficiaryLocation, version),
|
|
3002
|
-
assets: createVersionedAssets(version, asset.amount, {
|
|
3003
|
-
parents: Parents.ZERO,
|
|
3004
|
-
interior: 'Here'
|
|
3005
|
-
}),
|
|
3006
|
-
fee_asset_item: DEFAULT_FEE_ASSET,
|
|
3007
|
-
weight_limit: 'Unlimited'
|
|
3008
|
-
};
|
|
3009
|
-
};
|
|
3010
|
-
|
|
3011
|
-
var createDestination = function createDestination(version, origin, destination, chainId, junction, parents) {
|
|
3012
|
-
var isLocDestination = isTLocation(destination);
|
|
3013
|
-
var isSubBridge = !isLocDestination && !isExternalChain(destination) && isSubstrateBridge(origin, destination);
|
|
3014
|
-
if (isSubBridge) {
|
|
3015
|
-
return {
|
|
3016
|
-
parents: Parents.TWO,
|
|
3017
|
-
interior: {
|
|
3018
|
-
X2: [{
|
|
3019
|
-
GlobalConsensus: getRelayChainOf(destination)
|
|
3020
|
-
}, {
|
|
3021
|
-
Parachain: chainId
|
|
3022
|
-
}]
|
|
3023
|
-
}
|
|
3024
|
-
};
|
|
3025
|
-
}
|
|
3026
|
-
var scenario = resolveScenario(origin, destination);
|
|
3027
|
-
var parentsResolved = parents !== null && parents !== void 0 ? parents : scenario === 'RelayToPara' ? Parents.ZERO : Parents.ONE;
|
|
3028
|
-
var interior = scenario === 'ParaToRelay' ? 'Here' : createX1Payload(version, junction !== null && junction !== void 0 ? junction : {
|
|
3029
|
-
Parachain: chainId
|
|
3030
|
-
});
|
|
3031
|
-
return isLocDestination ? destination : {
|
|
3032
|
-
parents: parentsResolved,
|
|
3033
|
-
interior: interior
|
|
3034
|
-
};
|
|
3035
|
-
};
|
|
3036
|
-
var createVersionedDestination = function createVersionedDestination(version, origin, destination, chainId, junction, parents) {
|
|
3037
|
-
var plainDestination = createDestination(version, origin, destination, chainId, junction, parents);
|
|
3038
|
-
return addXcmVersionHeader(plainDestination, version);
|
|
3039
|
-
};
|
|
3040
|
-
var resolveTChainFromLocation = function resolveTChainFromLocation(relaychain, location) {
|
|
3041
|
-
var _PARACHAINS$find;
|
|
3042
|
-
var parachainId = getJunctionValue(location, 'Parachain');
|
|
3043
|
-
if (parachainId === undefined) {
|
|
3044
|
-
throw new RoutingResolutionError('Parachain ID not found in destination location.');
|
|
3045
|
-
}
|
|
3046
|
-
var chain = (_PARACHAINS$find = PARACHAINS.find(function (chain) {
|
|
3047
|
-
return getParaId(chain) === parachainId && getRelayChainOf(chain) === relaychain;
|
|
3048
|
-
})) !== null && _PARACHAINS$find !== void 0 ? _PARACHAINS$find : null;
|
|
3049
|
-
if (chain === null) {
|
|
3050
|
-
throw new RoutingResolutionError('Chain with specified paraId not found in destination location.');
|
|
3051
|
-
}
|
|
3052
|
-
return chain;
|
|
2931
|
+
Kintsugi: Kintsugi$1,
|
|
2932
|
+
Moonriver: Moonriver$1,
|
|
2933
|
+
CoretimeKusama: CoretimeKusama$1,
|
|
2934
|
+
Encointer: Encointer$1,
|
|
2935
|
+
Altair: Altair$1,
|
|
2936
|
+
Amplitude: Amplitude$1,
|
|
2937
|
+
Basilisk: Basilisk$1,
|
|
2938
|
+
BifrostKusama: BifrostKusama$1,
|
|
2939
|
+
CrustShadow: CrustShadow$1,
|
|
2940
|
+
Crab: Crab$1,
|
|
2941
|
+
Laos: Laos$1,
|
|
2942
|
+
Quartz: Quartz$1,
|
|
2943
|
+
PeopleKusama: PeopleKusama$1,
|
|
2944
|
+
Shiden: Shiden$1,
|
|
2945
|
+
Zeitgeist: Zeitgeist$1,
|
|
2946
|
+
AssetHubWestend: AssetHubWestend$1,
|
|
2947
|
+
BridgeHubWestend: BridgeHubWestend$1,
|
|
2948
|
+
CollectivesWestend: CollectivesWestend$1,
|
|
2949
|
+
CoretimeWestend: CoretimeWestend$1,
|
|
2950
|
+
Penpal: Penpal$1,
|
|
2951
|
+
PeopleWestend: PeopleWestend$1,
|
|
2952
|
+
AjunaPaseo: AjunaPaseo$1,
|
|
2953
|
+
AssetHubPaseo: AssetHubPaseo$1,
|
|
2954
|
+
BifrostPaseo: BifrostPaseo$1,
|
|
2955
|
+
BridgeHubPaseo: BridgeHubPaseo$1,
|
|
2956
|
+
CoretimePaseo: CoretimePaseo$1,
|
|
2957
|
+
EnergyWebXPaseo: EnergyWebXPaseo$1,
|
|
2958
|
+
HeimaPaseo: HeimaPaseo$1,
|
|
2959
|
+
HydrationPaseo: HydrationPaseo$1,
|
|
2960
|
+
KiltPaseo: KiltPaseo$1,
|
|
2961
|
+
LaosPaseo: LaosPaseo$1,
|
|
2962
|
+
NeuroWebPaseo: NeuroWebPaseo$1,
|
|
2963
|
+
PAssetHub: PAssetHub$1,
|
|
2964
|
+
PeoplePaseo: PeoplePaseo$1,
|
|
2965
|
+
ZeitgeistPaseo: ZeitgeistPaseo$1,
|
|
2966
|
+
Polkadot: Polkadot,
|
|
2967
|
+
Kusama: Kusama,
|
|
2968
|
+
Westend: Westend,
|
|
2969
|
+
Paseo: Paseo
|
|
3053
2970
|
};
|
|
3054
2971
|
|
|
3055
|
-
var
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
var beneficiary = createBeneficiaryLocation(options);
|
|
3059
|
-
return {
|
|
3060
|
-
assets: addXcmVersionHeader(assets, version),
|
|
3061
|
-
beneficiary: addXcmVersionHeader(beneficiary, version)
|
|
3062
|
-
};
|
|
2972
|
+
var configsMap = configs;
|
|
2973
|
+
var getChainConfig = function getChainConfig(chain) {
|
|
2974
|
+
return configsMap[chain];
|
|
3063
2975
|
};
|
|
3064
2976
|
|
|
3065
|
-
var
|
|
3066
|
-
var
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
var asset = findAssetInfoOrThrow(chain, currency, null);
|
|
3071
|
-
assertHasLocation(asset);
|
|
3072
|
-
var abstracted = abstractDecimals(amount, asset.decimals, api);
|
|
3073
|
-
return createAsset(version, abstracted, localizeLocation(chain, asset.location));
|
|
3074
|
-
};
|
|
3075
|
-
if (Array.isArray(currency)) {
|
|
3076
|
-
if (currency.every(function (asset) {
|
|
3077
|
-
return isTAsset(asset);
|
|
3078
|
-
})) {
|
|
3079
|
-
return currency.map(function (asset) {
|
|
3080
|
-
return _objectSpread2(_objectSpread2({}, asset), {}, {
|
|
3081
|
-
fun: {
|
|
3082
|
-
Fungible: BigInt(asset.fun.Fungible)
|
|
3083
|
-
}
|
|
3084
|
-
});
|
|
3085
|
-
});
|
|
3086
|
-
} else {
|
|
3087
|
-
return currency.map(function (currency) {
|
|
3088
|
-
return normalizeAsset(currency.amount, currency);
|
|
3089
|
-
});
|
|
3090
|
-
}
|
|
2977
|
+
var getChainProviders = function getChainProviders(chain) {
|
|
2978
|
+
var _getChainConfig = getChainConfig(chain),
|
|
2979
|
+
providers = _getChainConfig.providers;
|
|
2980
|
+
if (providers.length === 0) {
|
|
2981
|
+
throw new ProviderUnavailableError("No providers found for chain ".concat(chain));
|
|
3091
2982
|
}
|
|
3092
|
-
|
|
2983
|
+
// Prefer Dwellir provider
|
|
2984
|
+
providers.sort(function (a, b) {
|
|
2985
|
+
return (a.name === 'Dwellir' ? 0 : 1) - (b.name === 'Dwellir' ? 0 : 1);
|
|
2986
|
+
});
|
|
2987
|
+
return providers.map(function (p) {
|
|
2988
|
+
return p.endpoint;
|
|
2989
|
+
});
|
|
3093
2990
|
};
|
|
3094
2991
|
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
pallets = getSupportedPallets(chain);
|
|
3107
|
-
supportedPallet = pallets.find(function (p) {
|
|
3108
|
-
return p === 'PolkadotXcm' || p === 'XcmPallet';
|
|
3109
|
-
});
|
|
3110
|
-
if (supportedPallet) {
|
|
3111
|
-
_context.n = 2;
|
|
3112
|
-
break;
|
|
3113
|
-
}
|
|
3114
|
-
throw new UnsupportedOperationError('Unsupported pallet for asset claim');
|
|
3115
|
-
case 2:
|
|
3116
|
-
version = getChainVersion(chain);
|
|
3117
|
-
assets = resolveAssets(options, version);
|
|
3118
|
-
params = buildClaimAssetsParams(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
3119
|
-
version: version,
|
|
3120
|
-
assets: assets
|
|
3121
|
-
}));
|
|
3122
|
-
call = {
|
|
3123
|
-
module: supportedPallet,
|
|
3124
|
-
method: 'claim_assets',
|
|
3125
|
-
params: params
|
|
3126
|
-
};
|
|
3127
|
-
return _context.a(2, api.deserializeExtrinsics(call));
|
|
3128
|
-
}
|
|
3129
|
-
}, _callee);
|
|
3130
|
-
}));
|
|
3131
|
-
return function claimAssets(_x) {
|
|
3132
|
-
return _ref.apply(this, arguments);
|
|
3133
|
-
};
|
|
3134
|
-
}();
|
|
3135
|
-
|
|
3136
|
-
var isAssetHub = function isAssetHub(chain) {
|
|
3137
|
-
return chain === 'AssetHubPolkadot' || chain === 'AssetHubKusama';
|
|
3138
|
-
};
|
|
3139
|
-
var isBridgeHub = function isBridgeHub(chain) {
|
|
3140
|
-
return chain === 'BridgeHubPolkadot' || chain === 'BridgeHubKusama';
|
|
3141
|
-
};
|
|
3142
|
-
var isPeople = function isPeople(chain) {
|
|
3143
|
-
return chain === 'PeoplePolkadot' || chain === 'PeopleKusama';
|
|
3144
|
-
};
|
|
3145
|
-
var isSystemPara = function isSystemPara(chain) {
|
|
3146
|
-
return isAssetHub(chain) || isBridgeHub(chain) || isPeople(chain);
|
|
3147
|
-
};
|
|
3148
|
-
var mul = function mul(v, num) {
|
|
3149
|
-
var den = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1n;
|
|
3150
|
-
return v * num / den;
|
|
3151
|
-
};
|
|
3152
|
-
var padFee = function padFee(raw, origin, dest, side) {
|
|
3153
|
-
var relayOrigin = isRelayChain(origin);
|
|
3154
|
-
var relayDest = isRelayChain(dest);
|
|
3155
|
-
var sysParaOrigin = isSystemPara(origin);
|
|
3156
|
-
var sysParaDest = isSystemPara(dest);
|
|
3157
|
-
var relayToPara = relayOrigin && !relayDest;
|
|
3158
|
-
var sysParaToPara = sysParaOrigin && !sysParaDest;
|
|
3159
|
-
var paraToPara = !relayOrigin && !sysParaOrigin;
|
|
3160
|
-
if (sysParaToPara) return raw * 40n;
|
|
3161
|
-
if (relayToPara) return side === 'origin' ? mul(raw, 320n, 100n) : mul(raw, 3000n, 100n);
|
|
3162
|
-
if (paraToPara && side == 'origin' && origin === 'Mythos' && dest !== 'Ethereum') {
|
|
3163
|
-
return 150000000000000000n;
|
|
2992
|
+
/**
|
|
2993
|
+
* Retrieves the parachain ID for a specified chain.
|
|
2994
|
+
*
|
|
2995
|
+
* @param chain - The chain for which to get the paraId.
|
|
2996
|
+
* @returns The parachain ID of the chain.
|
|
2997
|
+
*/
|
|
2998
|
+
var getParaId = function getParaId(chain) {
|
|
2999
|
+
if (chain === 'Ethereum') {
|
|
3000
|
+
return ETH_MAINNET_PARA_ID;
|
|
3001
|
+
} else if (chain === 'EthereumTestnet') {
|
|
3002
|
+
return ETH_TESTNET_PARA_ID;
|
|
3164
3003
|
}
|
|
3165
|
-
|
|
3166
|
-
// apply default 30% padding
|
|
3167
|
-
return mul(raw, 130n, 100n);
|
|
3168
|
-
};
|
|
3169
|
-
var padValueBy = function padValueBy(amount, percent) {
|
|
3170
|
-
var scaled = BigInt(Math.round(percent * 100)); // 2 decimal precision
|
|
3171
|
-
return amount * (BigInt(10000) + scaled) / BigInt(10000);
|
|
3004
|
+
return getChainConfig(chain).paraId;
|
|
3172
3005
|
};
|
|
3173
3006
|
|
|
3174
|
-
var getMythosOriginFee = /*#__PURE__*/function () {
|
|
3175
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api) {
|
|
3176
|
-
var ahApi, _yield$getParaEthTran, _yield$getParaEthTran2, bridgeFee, ahExecutionFee, nativeAsset, feeConverted;
|
|
3177
|
-
return _regenerator().w(function (_context) {
|
|
3178
|
-
while (1) switch (_context.n) {
|
|
3179
|
-
case 0:
|
|
3180
|
-
ahApi = api.clone();
|
|
3181
|
-
_context.n = 1;
|
|
3182
|
-
return ahApi.init('AssetHubPolkadot');
|
|
3183
|
-
case 1:
|
|
3184
|
-
_context.n = 2;
|
|
3185
|
-
return getParaEthTransferFees(ahApi, false);
|
|
3186
|
-
case 2:
|
|
3187
|
-
_yield$getParaEthTran = _context.v;
|
|
3188
|
-
_yield$getParaEthTran2 = _slicedToArray(_yield$getParaEthTran, 2);
|
|
3189
|
-
bridgeFee = _yield$getParaEthTran2[0];
|
|
3190
|
-
ahExecutionFee = _yield$getParaEthTran2[1];
|
|
3191
|
-
nativeAsset = findNativeAssetInfoOrThrow('Mythos');
|
|
3192
|
-
assertHasLocation(nativeAsset);
|
|
3193
|
-
_context.n = 3;
|
|
3194
|
-
return ahApi.quoteAhPrice(DOT_LOCATION, nativeAsset.location, bridgeFee + ahExecutionFee);
|
|
3195
|
-
case 3:
|
|
3196
|
-
feeConverted = _context.v;
|
|
3197
|
-
_context.n = 4;
|
|
3198
|
-
return ahApi.disconnect();
|
|
3199
|
-
case 4:
|
|
3200
|
-
if (feeConverted) {
|
|
3201
|
-
_context.n = 5;
|
|
3202
|
-
break;
|
|
3203
|
-
}
|
|
3204
|
-
throw new UnableToComputeError("Pool DOT -> ".concat(nativeAsset.symbol, " not found."));
|
|
3205
|
-
case 5:
|
|
3206
|
-
return _context.a(2, padValueBy(feeConverted, 10));
|
|
3207
|
-
}
|
|
3208
|
-
}, _callee);
|
|
3209
|
-
}));
|
|
3210
|
-
return function getMythosOriginFee(_x) {
|
|
3211
|
-
return _ref.apply(this, arguments);
|
|
3212
|
-
};
|
|
3213
|
-
}();
|
|
3214
|
-
|
|
3215
3007
|
var resolveFeeAsset = function resolveFeeAsset(feeAsset, origin, destination, currency) {
|
|
3216
3008
|
if (!origin.startsWith('Hydration') && origin !== 'AssetHubPolkadot') {
|
|
3217
3009
|
throw new ScenarioNotSupportedError("Fee asset is not supported on ".concat(origin));
|
|
@@ -3676,7 +3468,8 @@ var GeneralBuilder = /*#__PURE__*/function () {
|
|
|
3676
3468
|
}, {
|
|
3677
3469
|
key: "to",
|
|
3678
3470
|
value: function to(chain, paraIdTo) {
|
|
3679
|
-
|
|
3471
|
+
var from = this._options.from;
|
|
3472
|
+
if (from && isRelayChain(from) && _typeof(chain) !== 'object' && isExternalChain(chain)) {
|
|
3680
3473
|
throw new ScenarioNotSupportedError('Transfers from relay chain to Ethereum are not yet supported.');
|
|
3681
3474
|
}
|
|
3682
3475
|
return new GeneralBuilder(this.api, this.batchManager, _objectSpread2(_objectSpread2({}, this._options), {}, {
|
|
@@ -4669,7 +4462,7 @@ var getDestXcmFee = /*#__PURE__*/function () {
|
|
|
4669
4462
|
return _regenerator().w(function (_context2) {
|
|
4670
4463
|
while (1) switch (_context2.p = _context2.n) {
|
|
4671
4464
|
case 0:
|
|
4672
|
-
if (!(destination
|
|
4465
|
+
if (!isExternalChain(destination)) {
|
|
4673
4466
|
_context2.n = 1;
|
|
4674
4467
|
break;
|
|
4675
4468
|
}
|
|
@@ -4756,7 +4549,7 @@ var getDestXcmFee = /*#__PURE__*/function () {
|
|
|
4756
4549
|
return _ref2.apply(this, arguments);
|
|
4757
4550
|
};
|
|
4758
4551
|
}();
|
|
4759
|
-
if (!(!hasDryRunSupport(destination) || !forwardedXcms || destination
|
|
4552
|
+
if (!(!hasDryRunSupport(destination) || !forwardedXcms || isExternalChain(destination))) {
|
|
4760
4553
|
_context3.n = 3;
|
|
4761
4554
|
break;
|
|
4762
4555
|
}
|
|
@@ -4848,7 +4641,7 @@ var resolveHopAsset = function resolveHopAsset(_ref) {
|
|
|
4848
4641
|
hasPassedExchange = _ref.hasPassedExchange,
|
|
4849
4642
|
currency = _ref.currency;
|
|
4850
4643
|
var isRelayAssetIncluded = api.getTypeThenAssetCount(tx) === 2;
|
|
4851
|
-
var useRelayAssetAsFee = destination === '
|
|
4644
|
+
var useRelayAssetAsFee = typeof destination === 'string' && isExternalChain(destination) || isRelayAssetIncluded;
|
|
4852
4645
|
if (useRelayAssetAsFee) {
|
|
4853
4646
|
return findNativeAssetInfoOrThrow(getRelayChainOf(currentChain));
|
|
4854
4647
|
}
|
|
@@ -4858,6 +4651,20 @@ var resolveHopAsset = function resolveHopAsset(_ref) {
|
|
|
4858
4651
|
return (_findAssetInfoOnDest = findAssetInfoOnDest(originChain, currentChain, currency)) !== null && _findAssetInfoOnDest !== void 0 ? _findAssetInfoOnDest : asset;
|
|
4859
4652
|
};
|
|
4860
4653
|
|
|
4654
|
+
var getEthereumJunction = function getEthereumJunction(chain) {
|
|
4655
|
+
var useBigInt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
4656
|
+
var relayChain = getRelayChainOf(chain);
|
|
4657
|
+
var isTestnet = relayChain === 'Westend' || relayChain === 'Paseo';
|
|
4658
|
+
var chainId = isTestnet ? ETH_TESTNET_PARA_ID : ETH_MAINNET_PARA_ID;
|
|
4659
|
+
return {
|
|
4660
|
+
GlobalConsensus: {
|
|
4661
|
+
Ethereum: {
|
|
4662
|
+
chainId: useBigInt ? BigInt(chainId) : chainId
|
|
4663
|
+
}
|
|
4664
|
+
}
|
|
4665
|
+
};
|
|
4666
|
+
};
|
|
4667
|
+
|
|
4861
4668
|
var validateBridgeAsset = function validateBridgeAsset(origin, destination, asset, currency, isBridge) {
|
|
4862
4669
|
var _asset$location;
|
|
4863
4670
|
if (!asset || isTLocation(destination) || isExternalChain(destination) || !isBridge) {
|
|
@@ -4872,9 +4679,25 @@ var validateBridgeAsset = function validateBridgeAsset(origin, destination, asse
|
|
|
4872
4679
|
throw new InvalidCurrencyError("Substrate bridge does not support currency ".concat(JSON.stringify(currency, replaceBigInt), "."));
|
|
4873
4680
|
}
|
|
4874
4681
|
};
|
|
4682
|
+
var validateEcosystems = function validateEcosystems(origin, destination) {
|
|
4683
|
+
if (isTLocation(destination)) return;
|
|
4684
|
+
var relayChain = getRelayChainOf(origin);
|
|
4685
|
+
var destinationToRelayChains = {
|
|
4686
|
+
Ethereum: ['Polkadot'],
|
|
4687
|
+
EthereumTestnet: ['Westend', 'Paseo']
|
|
4688
|
+
};
|
|
4689
|
+
var allowedRelayChains = destinationToRelayChains[destination];
|
|
4690
|
+
if (!allowedRelayChains) return;
|
|
4691
|
+
if (!allowedRelayChains.includes(relayChain)) {
|
|
4692
|
+
throw new InvalidCurrencyError("Destination ".concat(destination, " is only supported from following ecosystems: ").concat(allowedRelayChains.join(', '), "."));
|
|
4693
|
+
}
|
|
4694
|
+
};
|
|
4875
4695
|
var validateEthereumAsset = function validateEthereumAsset(origin, destination, asset) {
|
|
4876
4696
|
var _asset$location2;
|
|
4877
|
-
if (!asset || destination
|
|
4697
|
+
if (!asset || !isTLocation(destination) && !isSnowbridge(origin, destination) || origin === 'Mythos') {
|
|
4698
|
+
return;
|
|
4699
|
+
}
|
|
4700
|
+
validateEcosystems(origin, destination);
|
|
4878
4701
|
var ADDITIONAL_ALLOWED_LOCATIONS = [RELAY_LOCATION, {
|
|
4879
4702
|
parents: 2,
|
|
4880
4703
|
interior: {
|
|
@@ -4885,11 +4708,7 @@ var validateEthereumAsset = function validateEthereumAsset(origin, destination,
|
|
|
4885
4708
|
}]
|
|
4886
4709
|
}
|
|
4887
4710
|
}];
|
|
4888
|
-
var isEthCompatibleAsset = ((_asset$location2 = asset.location) === null || _asset$location2 === void 0 ? void 0 : _asset$location2.parents) === Parents.TWO && deepEqual(getJunctionValue(asset.location, 'GlobalConsensus'), {
|
|
4889
|
-
Ethereum: {
|
|
4890
|
-
chainId: 1
|
|
4891
|
-
}
|
|
4892
|
-
}) || ADDITIONAL_ALLOWED_LOCATIONS.some(function (loc) {
|
|
4711
|
+
var isEthCompatibleAsset = ((_asset$location2 = asset.location) === null || _asset$location2 === void 0 ? void 0 : _asset$location2.parents) === Parents.TWO && deepEqual(getJunctionValue(asset.location, 'GlobalConsensus'), getEthereumJunction(origin, false).GlobalConsensus) || ADDITIONAL_ALLOWED_LOCATIONS.some(function (loc) {
|
|
4893
4712
|
return deepEqual(asset.location, loc);
|
|
4894
4713
|
});
|
|
4895
4714
|
if (!isEthCompatibleAsset) {
|
|
@@ -5045,17 +4864,17 @@ var validateDestination = function validateDestination(origin, destination) {
|
|
|
5045
4864
|
if (isRelayChain(origin) && !isTLocation(destination) && isRelayChain(destination) && origin !== destination) {
|
|
5046
4865
|
throw new ScenarioNotSupportedError('Direct relay chain to relay chain transfers are not supported. Please use Polkadot <-> Kusama bridge through AssetHub.');
|
|
5047
4866
|
}
|
|
5048
|
-
var allowedChainsToEthereum = ['AssetHubPolkadot', 'Hydration', 'BifrostPolkadot', 'Moonbeam', 'Mythos'];
|
|
5049
|
-
if (destination === '
|
|
4867
|
+
var allowedChainsToEthereum = ['AssetHubPolkadot', 'AssetHubPaseo', 'AssetHubWestend', 'Hydration', 'BifrostPolkadot', 'Moonbeam', 'Mythos'];
|
|
4868
|
+
if (typeof destination === 'string' && isExternalChain(destination) && !allowedChainsToEthereum.includes(origin)) {
|
|
5050
4869
|
throw new ScenarioNotSupportedError("Transfers to Ethereum are only supported from: ".concat(allowedChainsToEthereum.join(', ')));
|
|
5051
4870
|
}
|
|
5052
4871
|
var isLocationDestination = _typeof(destination) === 'object';
|
|
5053
|
-
var
|
|
4872
|
+
var isBridgeTransfer = !isTLocation(destination) && isBridge(origin, destination);
|
|
5054
4873
|
var isRelayDestination = !isTLocation(destination) && isRelayChain(destination);
|
|
5055
4874
|
if (!isRelayDestination && !isLocationDestination) {
|
|
5056
4875
|
var originRelayChainSymbol = getRelayChainSymbol(origin);
|
|
5057
4876
|
var destinationRelayChainSymbol = getRelayChainSymbol(destination);
|
|
5058
|
-
if (!
|
|
4877
|
+
if (!isBridgeTransfer && originRelayChainSymbol !== destinationRelayChainSymbol) {
|
|
5059
4878
|
throw new ScenarioNotSupportedError('Origin and destination must share the same relay chain unless using a bridge.');
|
|
5060
4879
|
}
|
|
5061
4880
|
}
|
|
@@ -5117,12 +4936,9 @@ var getFailureInfo$1 = function getFailureInfo(result) {
|
|
|
5117
4936
|
*/
|
|
5118
4937
|
var getTChain = function getTChain(paraId, ecosystem) {
|
|
5119
4938
|
var _PARACHAINS$find;
|
|
5120
|
-
if (paraId ===
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
if (paraId === 1) {
|
|
5124
|
-
return 'Ethereum';
|
|
5125
|
-
}
|
|
4939
|
+
if (paraId === RELAYCHAIN_PARA_ID) return ecosystem;
|
|
4940
|
+
if (paraId === ETH_MAINNET_PARA_ID) return 'Ethereum';
|
|
4941
|
+
if (paraId === ETH_TESTNET_PARA_ID) return 'EthereumTestnet';
|
|
5126
4942
|
return (_PARACHAINS$find = PARACHAINS.find(function (chain) {
|
|
5127
4943
|
return getChain(chain).ecosystem === ecosystem && getParaId(chain) === paraId;
|
|
5128
4944
|
})) !== null && _PARACHAINS$find !== void 0 ? _PARACHAINS$find : null;
|
|
@@ -5379,6 +5195,13 @@ var transferMoonbeamEvm = /*#__PURE__*/function () {
|
|
|
5379
5195
|
};
|
|
5380
5196
|
}();
|
|
5381
5197
|
|
|
5198
|
+
var resolveScenario = function resolveScenario(origin, destination) {
|
|
5199
|
+
if (isRelayChain(origin)) return 'RelayToPara';
|
|
5200
|
+
var isRelayDestination = !isTLocation(destination) && isRelayChain(destination);
|
|
5201
|
+
if (isRelayDestination) return 'ParaToRelay';
|
|
5202
|
+
return 'ParaToPara';
|
|
5203
|
+
};
|
|
5204
|
+
|
|
5382
5205
|
var createX1Payload = function createX1Payload(version, junction) {
|
|
5383
5206
|
return version === Version.V3 ? {
|
|
5384
5207
|
X1: junction
|
|
@@ -5482,6 +5305,8 @@ var localizeLocation = function localizeLocation(chain, location, origin) {
|
|
|
5482
5305
|
});
|
|
5483
5306
|
var junctionCount = junctions.length;
|
|
5484
5307
|
var isLocationOnTargetRelay = targetRelay !== undefined && locationRelay === targetRelay;
|
|
5308
|
+
// Check if target is an external chain and location's GlobalConsensus matches it
|
|
5309
|
+
var isLocationOnTargetExternal = isExternalChain(chain) && locationRelay === chain.toLowerCase();
|
|
5485
5310
|
if (!origin && locationRelay && targetRelay && locationRelay !== targetRelay) {
|
|
5486
5311
|
return location;
|
|
5487
5312
|
}
|
|
@@ -5493,7 +5318,7 @@ var localizeLocation = function localizeLocation(chain, location, origin) {
|
|
|
5493
5318
|
if (location.interior !== 'Here') {
|
|
5494
5319
|
var paraId = getParaId(chain);
|
|
5495
5320
|
var filteredJunctions = junctions.filter(function (junction) {
|
|
5496
|
-
if ('GlobalConsensus' in junction && isLocationOnTargetRelay) {
|
|
5321
|
+
if ('GlobalConsensus' in junction && (isLocationOnTargetRelay || isLocationOnTargetExternal)) {
|
|
5497
5322
|
return false;
|
|
5498
5323
|
}
|
|
5499
5324
|
if ('Parachain' in junction && (!ecosystemDiffers || isLocationOnTargetRelay)) {
|
|
@@ -5537,7 +5362,7 @@ var localizeLocation = function localizeLocation(chain, location, origin) {
|
|
|
5537
5362
|
interior: _defineProperty({}, "X".concat(updatedJunctions.length), updatedJunctions)
|
|
5538
5363
|
};
|
|
5539
5364
|
}
|
|
5540
|
-
var shouldSetParentsToZero = parachainRemoved || newInterior === 'Here' && isRelayChain(chain);
|
|
5365
|
+
var shouldSetParentsToZero = parachainRemoved || newInterior === 'Here' && isRelayChain(chain) || isLocationOnTargetExternal;
|
|
5541
5366
|
return {
|
|
5542
5367
|
parents: shouldSetParentsToZero ? Parents.ZERO : location.parents,
|
|
5543
5368
|
interior: newInterior
|
|
@@ -5625,6 +5450,7 @@ var createMainInstruction = function createMainInstruction(origin, asset, ethAss
|
|
|
5625
5450
|
SetTopic: messageId
|
|
5626
5451
|
}];
|
|
5627
5452
|
};
|
|
5453
|
+
var ethJunction = getEthereumJunction(origin);
|
|
5628
5454
|
if (isAssetNativeToPolkadot) {
|
|
5629
5455
|
var assetEcosystem = RELAYCHAINS.find(function (chain) {
|
|
5630
5456
|
return asset.symbol.includes(getNativeAssetSymbol(chain));
|
|
@@ -5643,7 +5469,7 @@ var createMainInstruction = function createMainInstruction(origin, asset, ethAss
|
|
|
5643
5469
|
dest: {
|
|
5644
5470
|
parents: Parents.TWO,
|
|
5645
5471
|
interior: {
|
|
5646
|
-
X1: [
|
|
5472
|
+
X1: [ethJunction]
|
|
5647
5473
|
}
|
|
5648
5474
|
},
|
|
5649
5475
|
xcm: commonXcm({
|
|
@@ -5670,7 +5496,7 @@ var createMainInstruction = function createMainInstruction(origin, asset, ethAss
|
|
|
5670
5496
|
reserve: {
|
|
5671
5497
|
parents: Parents.TWO,
|
|
5672
5498
|
interior: {
|
|
5673
|
-
X1: [
|
|
5499
|
+
X1: [ethJunction]
|
|
5674
5500
|
}
|
|
5675
5501
|
},
|
|
5676
5502
|
xcm: commonXcm({
|
|
@@ -5829,13 +5655,13 @@ var abi = [
|
|
|
5829
5655
|
var xcmInterfacePrecompile = '0x000000000000000000000000000000000000081A';
|
|
5830
5656
|
var XCDOT = '0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080';
|
|
5831
5657
|
var transferMoonbeamToEth = /*#__PURE__*/function () {
|
|
5832
|
-
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
|
|
5658
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(from, _ref) {
|
|
5833
5659
|
var _signer$account;
|
|
5834
|
-
var api,
|
|
5660
|
+
var api, to, signer, address, ahAddress, currency, bridgeStatus, foundAsset, amount, ethAsset, contract, senderAddress, messageId, customXcm, customXcmOnDest, assetHubApi, _yield$getParaEthTran, _yield$getParaEthTran2, bridgeFee, executionFee, transferFee, createTx, numberToHex32, tx;
|
|
5835
5661
|
return _regenerator().w(function (_context) {
|
|
5836
5662
|
while (1) switch (_context.n) {
|
|
5837
5663
|
case 0:
|
|
5838
|
-
api = _ref.api,
|
|
5664
|
+
api = _ref.api, to = _ref.to, signer = _ref.signer, address = _ref.address, ahAddress = _ref.ahAddress, currency = _ref.currency;
|
|
5839
5665
|
if (ahAddress) {
|
|
5840
5666
|
_context.n = 1;
|
|
5841
5667
|
break;
|
|
@@ -5943,7 +5769,7 @@ var transferMoonbeamToEth = /*#__PURE__*/function () {
|
|
|
5943
5769
|
}
|
|
5944
5770
|
}, _callee);
|
|
5945
5771
|
}));
|
|
5946
|
-
return function transferMoonbeamToEth(_x) {
|
|
5772
|
+
return function transferMoonbeamToEth(_x, _x2) {
|
|
5947
5773
|
return _ref2.apply(this, arguments);
|
|
5948
5774
|
};
|
|
5949
5775
|
}();
|
|
@@ -6049,7 +5875,7 @@ var addEthereumBridgeFees = /*#__PURE__*/function () {
|
|
|
6049
5875
|
return _regenerator().w(function (_context2) {
|
|
6050
5876
|
while (1) switch (_context2.n) {
|
|
6051
5877
|
case 0:
|
|
6052
|
-
if (!(!bridgeHubResult || !('fee' in bridgeHubResult) || destination
|
|
5878
|
+
if (!(!bridgeHubResult || !('fee' in bridgeHubResult) || !isExternalChain(destination))) {
|
|
6053
5879
|
_context2.n = 1;
|
|
6054
5880
|
break;
|
|
6055
5881
|
}
|
|
@@ -7165,7 +6991,7 @@ var getXcmFeeOnce = /*#__PURE__*/function () {
|
|
|
7165
6991
|
traversalResult = _context2.v;
|
|
7166
6992
|
// Handle case where we failed before reaching destination
|
|
7167
6993
|
destFee = 0n;
|
|
7168
|
-
destFeeType = destination
|
|
6994
|
+
destFeeType = isExternalChain(destination) ? 'noFeeRequired' : 'paymentInfo';
|
|
7169
6995
|
destSufficient = undefined;
|
|
7170
6996
|
if (!traversalResult.destination) {
|
|
7171
6997
|
_context2.n = 12;
|
|
@@ -7478,7 +7304,7 @@ var getXcmFeeEstimate = /*#__PURE__*/function () {
|
|
|
7478
7304
|
symbol: originAsset.symbol,
|
|
7479
7305
|
amount: amount
|
|
7480
7306
|
};
|
|
7481
|
-
if (!(destination
|
|
7307
|
+
if (!isExternalChain(destination)) {
|
|
7482
7308
|
_context.n = 7;
|
|
7483
7309
|
break;
|
|
7484
7310
|
}
|
|
@@ -7509,12 +7335,65 @@ var getXcmFeeEstimate = /*#__PURE__*/function () {
|
|
|
7509
7335
|
destination: destFeeDetails
|
|
7510
7336
|
});
|
|
7511
7337
|
}
|
|
7512
|
-
}, _callee);
|
|
7513
|
-
}));
|
|
7514
|
-
return function getXcmFeeEstimate(_x) {
|
|
7515
|
-
return _ref.apply(this, arguments);
|
|
7338
|
+
}, _callee);
|
|
7339
|
+
}));
|
|
7340
|
+
return function getXcmFeeEstimate(_x) {
|
|
7341
|
+
return _ref.apply(this, arguments);
|
|
7342
|
+
};
|
|
7343
|
+
}();
|
|
7344
|
+
|
|
7345
|
+
var createDestination = function createDestination(version, origin, destination, chainId, junction, parents) {
|
|
7346
|
+
var isLocDestination = isTLocation(destination);
|
|
7347
|
+
var isSubBridge = !isLocDestination && !isExternalChain(destination) && isSubstrateBridge(origin, destination);
|
|
7348
|
+
if (isSubBridge) {
|
|
7349
|
+
return {
|
|
7350
|
+
parents: Parents.TWO,
|
|
7351
|
+
interior: {
|
|
7352
|
+
X2: [{
|
|
7353
|
+
GlobalConsensus: getRelayChainOf(destination)
|
|
7354
|
+
}, {
|
|
7355
|
+
Parachain: chainId
|
|
7356
|
+
}]
|
|
7357
|
+
}
|
|
7358
|
+
};
|
|
7359
|
+
}
|
|
7360
|
+
var isSb = !isLocDestination && isSnowbridge(origin, destination);
|
|
7361
|
+
if (isSb) {
|
|
7362
|
+
return {
|
|
7363
|
+
parents: Parents.TWO,
|
|
7364
|
+
interior: {
|
|
7365
|
+
X1: [getEthereumJunction(origin)]
|
|
7366
|
+
}
|
|
7367
|
+
};
|
|
7368
|
+
}
|
|
7369
|
+
var scenario = resolveScenario(origin, destination);
|
|
7370
|
+
var parentsResolved = parents !== null && parents !== void 0 ? parents : scenario === 'RelayToPara' ? Parents.ZERO : Parents.ONE;
|
|
7371
|
+
var interior = scenario === 'ParaToRelay' ? 'Here' : createX1Payload(version, junction !== null && junction !== void 0 ? junction : {
|
|
7372
|
+
Parachain: chainId
|
|
7373
|
+
});
|
|
7374
|
+
return isLocDestination ? destination : {
|
|
7375
|
+
parents: parentsResolved,
|
|
7376
|
+
interior: interior
|
|
7516
7377
|
};
|
|
7517
|
-
}
|
|
7378
|
+
};
|
|
7379
|
+
var createVersionedDestination = function createVersionedDestination(version, origin, destination, chainId, junction, parents) {
|
|
7380
|
+
var plainDestination = createDestination(version, origin, destination, chainId, junction, parents);
|
|
7381
|
+
return addXcmVersionHeader(plainDestination, version);
|
|
7382
|
+
};
|
|
7383
|
+
var resolveTChainFromLocation = function resolveTChainFromLocation(relaychain, location) {
|
|
7384
|
+
var _PARACHAINS$find;
|
|
7385
|
+
var parachainId = getJunctionValue(location, 'Parachain');
|
|
7386
|
+
if (parachainId === undefined) {
|
|
7387
|
+
throw new RoutingResolutionError('Parachain ID not found in destination location.');
|
|
7388
|
+
}
|
|
7389
|
+
var chain = (_PARACHAINS$find = PARACHAINS.find(function (chain) {
|
|
7390
|
+
return getParaId(chain) === parachainId && getRelayChainOf(chain) === relaychain;
|
|
7391
|
+
})) !== null && _PARACHAINS$find !== void 0 ? _PARACHAINS$find : null;
|
|
7392
|
+
if (chain === null) {
|
|
7393
|
+
throw new RoutingResolutionError('Chain with specified paraId not found in destination location.');
|
|
7394
|
+
}
|
|
7395
|
+
return chain;
|
|
7396
|
+
};
|
|
7518
7397
|
|
|
7519
7398
|
var transferRelayToPara = /*#__PURE__*/function () {
|
|
7520
7399
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
|
|
@@ -7572,7 +7451,7 @@ var send = /*#__PURE__*/function () {
|
|
|
7572
7451
|
_context.n = 6;
|
|
7573
7452
|
break;
|
|
7574
7453
|
}
|
|
7575
|
-
if (!(destination === '
|
|
7454
|
+
if (!(typeof destination === 'string' && isExternalChain(destination))) {
|
|
7576
7455
|
_context.n = 1;
|
|
7577
7456
|
break;
|
|
7578
7457
|
}
|
|
@@ -8322,26 +8201,35 @@ var getTransferableAmount = /*#__PURE__*/function () {
|
|
|
8322
8201
|
|
|
8323
8202
|
var resolveTransferType = function resolveTransferType(_ref) {
|
|
8324
8203
|
var origin = _ref.origin,
|
|
8325
|
-
reserve = _ref.reserve
|
|
8204
|
+
reserve = _ref.reserve,
|
|
8205
|
+
dest = _ref.dest,
|
|
8206
|
+
isSubBridge = _ref.isSubBridge;
|
|
8207
|
+
// Direct A → C: when origin is reserve OR dest is reserve, check origin <-> dest trust
|
|
8208
|
+
// Hop A → B → C: when reserve differs from both, check origin <-> reserve trust
|
|
8209
|
+
var isDirect = origin.chain === reserve.chain || dest.chain === reserve.chain;
|
|
8210
|
+
var chainToCheck = isDirect ? dest.chain : reserve.chain;
|
|
8211
|
+
if (isTrustedChain(origin.chain) && isTrustedChain(chainToCheck) && !isSubBridge) return 'Teleport';
|
|
8326
8212
|
if (origin.chain === reserve.chain) return 'LocalReserve';
|
|
8327
|
-
if (isTrustedChain(origin.chain) && isTrustedChain(reserve.chain)) return 'Teleport';
|
|
8328
8213
|
return 'DestinationReserve';
|
|
8329
8214
|
};
|
|
8330
8215
|
var buildTypeAndThenCall = function buildTypeAndThenCall(context, isDotAsset, customXcm, assets) {
|
|
8331
8216
|
var origin = context.origin,
|
|
8332
8217
|
reserve = context.reserve,
|
|
8333
8218
|
dest = context.dest,
|
|
8334
|
-
isSubBridge = context.isSubBridge,
|
|
8335
8219
|
assetInfo = context.assetInfo,
|
|
8336
8220
|
_context$options = context.options,
|
|
8337
8221
|
version = _context$options.version,
|
|
8338
8222
|
pallet = _context$options.pallet,
|
|
8339
|
-
method = _context$options.method
|
|
8223
|
+
method = _context$options.method,
|
|
8224
|
+
overriddenAsset = _context$options.overriddenAsset;
|
|
8340
8225
|
var feeAssetLocation = !isDotAsset ? RELAY_LOCATION : assetInfo.location;
|
|
8341
8226
|
var finalDest = origin.chain === reserve.chain ? dest.chain : reserve.chain;
|
|
8342
8227
|
var destLocation = createDestination(version, origin.chain, finalDest, getParaId(finalDest));
|
|
8343
8228
|
var transferType = resolveTransferType(context);
|
|
8344
|
-
var
|
|
8229
|
+
var feeAsset = Array.isArray(overriddenAsset) ? overriddenAsset.find(function (a) {
|
|
8230
|
+
return a.isFeeAsset;
|
|
8231
|
+
}) : null;
|
|
8232
|
+
var feeMultiAsset = feeAsset !== null && feeAsset !== void 0 ? feeAsset : createAsset(version, assetInfo.amount, localizeLocation(origin.chain, feeAssetLocation));
|
|
8345
8233
|
var module = pallet !== null && pallet !== void 0 ? pallet : isRelayChain(origin.chain) ? 'XcmPallet' : 'PolkadotXcm';
|
|
8346
8234
|
var methodName = method !== null && method !== void 0 ? method : 'transfer_assets_using_type_and_then';
|
|
8347
8235
|
return {
|
|
@@ -8359,15 +8247,16 @@ var buildTypeAndThenCall = function buildTypeAndThenCall(context, isDotAsset, cu
|
|
|
8359
8247
|
};
|
|
8360
8248
|
};
|
|
8361
8249
|
|
|
8362
|
-
var
|
|
8363
|
-
var
|
|
8364
|
-
var
|
|
8365
|
-
|
|
8366
|
-
|
|
8250
|
+
var getBridgeReserve = function getBridgeReserve(chain, destination, location) {
|
|
8251
|
+
var isExternal = isExternalChain(destination);
|
|
8252
|
+
var destRelay = isExternal ? destination : getRelayChainOf(destination).toLowerCase();
|
|
8253
|
+
var expectedConsensus = isExternal ? getEthereumJunction(chain, false).GlobalConsensus : _defineProperty({}, destRelay, null);
|
|
8254
|
+
var isDestReserve = deepEqual(getJunctionValue(location, 'GlobalConsensus'), expectedConsensus);
|
|
8255
|
+
return isDestReserve ? destination : chain;
|
|
8367
8256
|
};
|
|
8368
|
-
var resolveReserveChain = function resolveReserveChain(chain, destination, assetLocation, isSubBridge, overrideReserve) {
|
|
8369
|
-
if (isSubBridge) {
|
|
8370
|
-
return
|
|
8257
|
+
var resolveReserveChain = function resolveReserveChain(chain, destination, assetLocation, isSubBridge, isSnowbridge, overrideReserve) {
|
|
8258
|
+
if (isSubBridge || isSnowbridge) {
|
|
8259
|
+
return getBridgeReserve(chain, destination, assetLocation);
|
|
8371
8260
|
}
|
|
8372
8261
|
if (overrideReserve !== undefined) {
|
|
8373
8262
|
return overrideReserve;
|
|
@@ -8375,17 +8264,19 @@ var resolveReserveChain = function resolveReserveChain(chain, destination, asset
|
|
|
8375
8264
|
return getAssetReserveChain(chain, assetLocation);
|
|
8376
8265
|
};
|
|
8377
8266
|
var createTypeAndThenCallContext = /*#__PURE__*/function () {
|
|
8378
|
-
var
|
|
8379
|
-
var
|
|
8267
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options, overrides) {
|
|
8268
|
+
var _overrides$noFeeAsset;
|
|
8269
|
+
var api, chain, destination, assetInfo, destinationChain, isSubBridge, isSb, reserveChain, NO_FEE_ASSET_LOCS, systemAsset, isRelayAsset, destApi, reserveApi;
|
|
8380
8270
|
return _regenerator().w(function (_context) {
|
|
8381
8271
|
while (1) switch (_context.n) {
|
|
8382
8272
|
case 0:
|
|
8383
|
-
api = options.api, destination = options.destination, assetInfo = options.assetInfo;
|
|
8273
|
+
api = options.api, chain = options.chain, destination = options.destination, assetInfo = options.assetInfo;
|
|
8384
8274
|
assertHasLocation(assetInfo);
|
|
8385
8275
|
assertToIsString(destination);
|
|
8386
8276
|
destinationChain = destination;
|
|
8387
8277
|
isSubBridge = isSubstrateBridge(chain, destinationChain);
|
|
8388
|
-
|
|
8278
|
+
isSb = isSnowbridge(chain, destinationChain);
|
|
8279
|
+
reserveChain = resolveReserveChain(chain, destinationChain, assetInfo.location, isSubBridge, isSb, overrides.reserveChain);
|
|
8389
8280
|
NO_FEE_ASSET_LOCS = [RELAY_LOCATION, {
|
|
8390
8281
|
parents: 2,
|
|
8391
8282
|
interior: {
|
|
@@ -8415,7 +8306,7 @@ var createTypeAndThenCallContext = /*#__PURE__*/function () {
|
|
|
8415
8306
|
systemAsset = findNativeAssetInfoOrThrow(getRelayChainOf(chain));
|
|
8416
8307
|
isRelayAsset = NO_FEE_ASSET_LOCS.some(function (loc) {
|
|
8417
8308
|
return deepEqual(assetInfo.location, loc);
|
|
8418
|
-
}) || isSubBridge;
|
|
8309
|
+
}) || isSubBridge || ((_overrides$noFeeAsset = overrides.noFeeAsset) !== null && _overrides$noFeeAsset !== void 0 ? _overrides$noFeeAsset : false);
|
|
8419
8310
|
destApi = api.clone();
|
|
8420
8311
|
_context.n = 1;
|
|
8421
8312
|
return destApi.init(destinationChain);
|
|
@@ -8438,6 +8329,7 @@ var createTypeAndThenCallContext = /*#__PURE__*/function () {
|
|
|
8438
8329
|
chain: reserveChain
|
|
8439
8330
|
},
|
|
8440
8331
|
isSubBridge: isSubBridge,
|
|
8332
|
+
isSnowbridge: isSb,
|
|
8441
8333
|
isRelayAsset: isRelayAsset,
|
|
8442
8334
|
assetInfo: assetInfo,
|
|
8443
8335
|
options: options,
|
|
@@ -8446,8 +8338,8 @@ var createTypeAndThenCallContext = /*#__PURE__*/function () {
|
|
|
8446
8338
|
}
|
|
8447
8339
|
}, _callee);
|
|
8448
8340
|
}));
|
|
8449
|
-
return function createTypeAndThenCallContext(_x, _x2
|
|
8450
|
-
return
|
|
8341
|
+
return function createTypeAndThenCallContext(_x, _x2) {
|
|
8342
|
+
return _ref2.apply(this, arguments);
|
|
8451
8343
|
};
|
|
8452
8344
|
}();
|
|
8453
8345
|
|
|
@@ -8463,89 +8355,147 @@ var resolveBuyExecutionAmount = function resolveBuyExecutionAmount(_ref, isForFe
|
|
|
8463
8355
|
// We have actual fees, calculate exact buy execution amount
|
|
8464
8356
|
return isRelayAsset ? assetInfo.amount - hopFees : destFee;
|
|
8465
8357
|
};
|
|
8466
|
-
var createCustomXcm = function
|
|
8467
|
-
var
|
|
8468
|
-
|
|
8469
|
-
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8476
|
-
|
|
8477
|
-
|
|
8478
|
-
|
|
8479
|
-
|
|
8480
|
-
|
|
8481
|
-
|
|
8482
|
-
|
|
8483
|
-
|
|
8484
|
-
|
|
8485
|
-
|
|
8486
|
-
|
|
8487
|
-
|
|
8488
|
-
|
|
8489
|
-
|
|
8490
|
-
|
|
8491
|
-
|
|
8492
|
-
|
|
8493
|
-
|
|
8358
|
+
var createCustomXcm = /*#__PURE__*/function () {
|
|
8359
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(context, assetCount, isForFeeCalc, systemAssetAmount, refundInstruction) {
|
|
8360
|
+
var fees,
|
|
8361
|
+
origin,
|
|
8362
|
+
dest,
|
|
8363
|
+
reserve,
|
|
8364
|
+
isSubBridge,
|
|
8365
|
+
isSnowbridge,
|
|
8366
|
+
isRelayAsset,
|
|
8367
|
+
assetInfo,
|
|
8368
|
+
options,
|
|
8369
|
+
destination,
|
|
8370
|
+
version,
|
|
8371
|
+
address,
|
|
8372
|
+
senderAddress,
|
|
8373
|
+
paraIdTo,
|
|
8374
|
+
hopFees,
|
|
8375
|
+
destFee,
|
|
8376
|
+
feeAssetLocation,
|
|
8377
|
+
feeLocLocalized,
|
|
8378
|
+
assetLocLocalized,
|
|
8379
|
+
asset,
|
|
8380
|
+
allOfSelector,
|
|
8381
|
+
depositInstruction,
|
|
8382
|
+
assetsFilter,
|
|
8383
|
+
buyExecutionAmount,
|
|
8384
|
+
filter,
|
|
8385
|
+
buyExecution,
|
|
8386
|
+
destLoc,
|
|
8387
|
+
messageId,
|
|
8388
|
+
_args = arguments;
|
|
8389
|
+
return _regenerator().w(function (_context) {
|
|
8390
|
+
while (1) switch (_context.n) {
|
|
8391
|
+
case 0:
|
|
8392
|
+
fees = _args.length > 5 && _args[5] !== undefined ? _args[5] : {
|
|
8393
|
+
hopFees: 0n,
|
|
8394
|
+
destFee: 0n
|
|
8395
|
+
};
|
|
8396
|
+
origin = context.origin, dest = context.dest, reserve = context.reserve, isSubBridge = context.isSubBridge, isSnowbridge = context.isSnowbridge, isRelayAsset = context.isRelayAsset, assetInfo = context.assetInfo, options = context.options;
|
|
8397
|
+
destination = options.destination, version = options.version, address = options.address, senderAddress = options.senderAddress, paraIdTo = options.paraIdTo;
|
|
8398
|
+
hopFees = fees.hopFees, destFee = fees.destFee;
|
|
8399
|
+
feeAssetLocation = !isRelayAsset ? RELAY_LOCATION : assetInfo.location;
|
|
8400
|
+
feeLocLocalized = localizeLocation(dest.chain, feeAssetLocation, origin.chain);
|
|
8401
|
+
assetLocLocalized = localizeLocation(dest.chain, assetInfo.location, origin.chain);
|
|
8402
|
+
asset = createAsset(version, assetInfo.amount, assetLocLocalized);
|
|
8403
|
+
allOfSelector = {
|
|
8404
|
+
AllOf: {
|
|
8405
|
+
id: asset.id,
|
|
8406
|
+
fun: 'Fungible'
|
|
8407
|
+
}
|
|
8408
|
+
};
|
|
8409
|
+
depositInstruction = {
|
|
8410
|
+
DepositAsset: {
|
|
8411
|
+
assets: {
|
|
8412
|
+
Wild: assetCount > 1 ? allOfSelector : {
|
|
8413
|
+
AllCounted: 1
|
|
8414
|
+
}
|
|
8415
|
+
},
|
|
8416
|
+
beneficiary: createBeneficiaryLocation({
|
|
8417
|
+
api: isSubBridge ? dest.api : origin.api,
|
|
8418
|
+
address: address,
|
|
8419
|
+
version: version
|
|
8420
|
+
})
|
|
8421
|
+
}
|
|
8422
|
+
};
|
|
8423
|
+
assetsFilter = [];
|
|
8424
|
+
if (!isRelayAsset) assetsFilter.push(createAsset(version, hopFees + destFee, localizeLocation(reserve.chain, RELAY_LOCATION)));
|
|
8425
|
+
assetsFilter.push(createAsset(version, assetInfo.amount, localizeLocation(reserve.chain, assetInfo.location)));
|
|
8426
|
+
if (!(isSubBridge || origin.chain !== reserve.chain && dest.chain !== reserve.chain)) {
|
|
8427
|
+
_context.n = 4;
|
|
8428
|
+
break;
|
|
8494
8429
|
}
|
|
8495
|
-
|
|
8496
|
-
|
|
8497
|
-
|
|
8498
|
-
|
|
8499
|
-
|
|
8500
|
-
|
|
8501
|
-
|
|
8502
|
-
|
|
8503
|
-
|
|
8504
|
-
|
|
8505
|
-
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
|
|
8509
|
-
|
|
8510
|
-
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
8519
|
-
|
|
8520
|
-
|
|
8521
|
-
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
|
|
8525
|
-
|
|
8526
|
-
|
|
8527
|
-
|
|
8528
|
-
|
|
8529
|
-
|
|
8530
|
-
|
|
8531
|
-
|
|
8532
|
-
|
|
8533
|
-
|
|
8534
|
-
|
|
8535
|
-
|
|
8536
|
-
|
|
8537
|
-
|
|
8538
|
-
|
|
8539
|
-
|
|
8540
|
-
|
|
8541
|
-
|
|
8542
|
-
|
|
8543
|
-
|
|
8430
|
+
buyExecutionAmount = resolveBuyExecutionAmount(context, isForFeeCalc, fees, systemAssetAmount);
|
|
8431
|
+
if (!(buyExecutionAmount < 0n && !isForFeeCalc)) {
|
|
8432
|
+
_context.n = 1;
|
|
8433
|
+
break;
|
|
8434
|
+
}
|
|
8435
|
+
throw new AmountTooLowError();
|
|
8436
|
+
case 1:
|
|
8437
|
+
filter = isForFeeCalc ? {
|
|
8438
|
+
Wild: {
|
|
8439
|
+
AllCounted: assetCount
|
|
8440
|
+
}
|
|
8441
|
+
} : {
|
|
8442
|
+
Definite: assetsFilter
|
|
8443
|
+
};
|
|
8444
|
+
buyExecution = {
|
|
8445
|
+
BuyExecution: {
|
|
8446
|
+
fees: createAsset(version, normalizeAmount(buyExecutionAmount), feeLocLocalized),
|
|
8447
|
+
weight_limit: 'Unlimited'
|
|
8448
|
+
}
|
|
8449
|
+
};
|
|
8450
|
+
if (!isSubBridge) {
|
|
8451
|
+
_context.n = 2;
|
|
8452
|
+
break;
|
|
8453
|
+
}
|
|
8454
|
+
return _context.a(2, [buyExecution, depositInstruction]);
|
|
8455
|
+
case 2:
|
|
8456
|
+
destLoc = createDestination(version, origin.chain, destination, paraIdTo); // If both reserve (B) and destination (C) are trusted chains,
|
|
8457
|
+
// use teleport instead of DepositReserveAsset
|
|
8458
|
+
if (!(isTrustedChain(reserve.chain) && isTrustedChain(dest.chain))) {
|
|
8459
|
+
_context.n = 3;
|
|
8460
|
+
break;
|
|
8461
|
+
}
|
|
8462
|
+
return _context.a(2, [].concat(_toConsumableArray(refundInstruction ? [refundInstruction] : []), [{
|
|
8463
|
+
InitiateTeleport: {
|
|
8464
|
+
assets: filter,
|
|
8465
|
+
dest: destLoc,
|
|
8466
|
+
xcm: [buyExecution, depositInstruction]
|
|
8467
|
+
}
|
|
8468
|
+
}]));
|
|
8469
|
+
case 3:
|
|
8470
|
+
return _context.a(2, [].concat(_toConsumableArray(refundInstruction ? [refundInstruction] : []), [{
|
|
8471
|
+
DepositReserveAsset: {
|
|
8472
|
+
assets: filter,
|
|
8473
|
+
dest: destLoc,
|
|
8474
|
+
xcm: [buyExecution, depositInstruction]
|
|
8475
|
+
}
|
|
8476
|
+
}]));
|
|
8477
|
+
case 4:
|
|
8478
|
+
if (!isSnowbridge) {
|
|
8479
|
+
_context.n = 6;
|
|
8480
|
+
break;
|
|
8481
|
+
}
|
|
8482
|
+
assertSenderAddress(senderAddress);
|
|
8483
|
+
_context.n = 5;
|
|
8484
|
+
return generateMessageId(origin.api, senderAddress, getParaId(origin.chain), JSON.stringify(assetInfo.location), JSON.stringify(address), assetInfo.amount);
|
|
8485
|
+
case 5:
|
|
8486
|
+
messageId = _context.v;
|
|
8487
|
+
return _context.a(2, [depositInstruction, {
|
|
8488
|
+
SetTopic: messageId
|
|
8489
|
+
}]);
|
|
8490
|
+
case 6:
|
|
8491
|
+
return _context.a(2, [depositInstruction]);
|
|
8544
8492
|
}
|
|
8545
|
-
}
|
|
8546
|
-
}
|
|
8547
|
-
return
|
|
8548
|
-
|
|
8493
|
+
}, _callee);
|
|
8494
|
+
}));
|
|
8495
|
+
return function createCustomXcm(_x, _x2, _x3, _x4, _x5) {
|
|
8496
|
+
return _ref3.apply(this, arguments);
|
|
8497
|
+
};
|
|
8498
|
+
}();
|
|
8549
8499
|
|
|
8550
8500
|
var createRefundInstruction = function createRefundInstruction(api, senderAddress, version, assetCount) {
|
|
8551
8501
|
return {
|
|
@@ -8566,75 +8516,145 @@ var createRefundInstruction = function createRefundInstruction(api, senderAddres
|
|
|
8566
8516
|
};
|
|
8567
8517
|
};
|
|
8568
8518
|
|
|
8569
|
-
var buildAssets = function buildAssets(chain, asset, feeAmount, isRelayAsset,
|
|
8519
|
+
var buildAssets = function buildAssets(chain, asset, feeAmount, isRelayAsset, _ref) {
|
|
8520
|
+
var version = _ref.version,
|
|
8521
|
+
overriddenAsset = _ref.overriddenAsset;
|
|
8522
|
+
if (overriddenAsset) {
|
|
8523
|
+
if (Array.isArray(overriddenAsset)) return overriddenAsset;
|
|
8524
|
+
return [createAsset(version, asset.amount, overriddenAsset)];
|
|
8525
|
+
}
|
|
8570
8526
|
var assets = [];
|
|
8571
|
-
var shouldLocalizeAndSort = isRelayChain(chain) || chain.startsWith('AssetHub') || chain === 'Mythos';
|
|
8572
8527
|
if (!isRelayAsset) {
|
|
8573
8528
|
assets.push(createAsset(version, feeAmount, RELAY_LOCATION));
|
|
8574
8529
|
}
|
|
8575
|
-
assets.push(createAsset(version, asset.amount,
|
|
8576
|
-
return
|
|
8530
|
+
assets.push(createAsset(version, asset.amount, localizeLocation(chain, asset.location)));
|
|
8531
|
+
return sortAssets(assets);
|
|
8577
8532
|
};
|
|
8578
8533
|
var DEFAULT_SYSTEM_ASSET_AMOUNT = '1';
|
|
8579
|
-
var resolveSystemAssetAmount = function resolveSystemAssetAmount(
|
|
8580
|
-
var systemAsset =
|
|
8534
|
+
var resolveSystemAssetAmount = function resolveSystemAssetAmount(_ref2, isForFeeCalc, fees) {
|
|
8535
|
+
var systemAsset = _ref2.systemAsset;
|
|
8581
8536
|
if (isForFeeCalc) {
|
|
8582
8537
|
return parseUnits(DEFAULT_SYSTEM_ASSET_AMOUNT, systemAsset.decimals);
|
|
8583
8538
|
}
|
|
8584
8539
|
return fees.destFee + fees.hopFees;
|
|
8585
8540
|
};
|
|
8586
|
-
var constructTypeAndThenCall = function
|
|
8587
|
-
var
|
|
8588
|
-
|
|
8589
|
-
|
|
8590
|
-
|
|
8591
|
-
|
|
8592
|
-
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8596
|
-
|
|
8597
|
-
|
|
8598
|
-
|
|
8599
|
-
|
|
8541
|
+
var constructTypeAndThenCall = /*#__PURE__*/function () {
|
|
8542
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(context) {
|
|
8543
|
+
var fees,
|
|
8544
|
+
origin,
|
|
8545
|
+
assetInfo,
|
|
8546
|
+
isSubBridge,
|
|
8547
|
+
isRelayAsset,
|
|
8548
|
+
options,
|
|
8549
|
+
senderAddress,
|
|
8550
|
+
version,
|
|
8551
|
+
assetCount,
|
|
8552
|
+
refundInstruction,
|
|
8553
|
+
resolvedFees,
|
|
8554
|
+
isForFeeCalc,
|
|
8555
|
+
systemAssetAmount,
|
|
8556
|
+
customXcm,
|
|
8557
|
+
assets,
|
|
8558
|
+
_args = arguments;
|
|
8559
|
+
return _regenerator().w(function (_context) {
|
|
8560
|
+
while (1) switch (_context.n) {
|
|
8561
|
+
case 0:
|
|
8562
|
+
fees = _args.length > 1 && _args[1] !== undefined ? _args[1] : null;
|
|
8563
|
+
origin = context.origin, assetInfo = context.assetInfo, isSubBridge = context.isSubBridge, isRelayAsset = context.isRelayAsset, options = context.options;
|
|
8564
|
+
senderAddress = options.senderAddress, version = options.version;
|
|
8565
|
+
assetCount = isRelayAsset ? 1 : 2;
|
|
8566
|
+
refundInstruction = senderAddress && !isSubBridge ? createRefundInstruction(origin.api, senderAddress, version, assetCount) : null;
|
|
8567
|
+
resolvedFees = fees !== null && fees !== void 0 ? fees : {
|
|
8568
|
+
hopFees: 0n,
|
|
8569
|
+
destFee: 0n
|
|
8570
|
+
};
|
|
8571
|
+
isForFeeCalc = fees === null;
|
|
8572
|
+
systemAssetAmount = resolveSystemAssetAmount(context, isForFeeCalc, resolvedFees);
|
|
8573
|
+
_context.n = 1;
|
|
8574
|
+
return createCustomXcm(context, assetCount, isForFeeCalc, systemAssetAmount, refundInstruction, resolvedFees);
|
|
8575
|
+
case 1:
|
|
8576
|
+
customXcm = _context.v;
|
|
8577
|
+
assets = buildAssets(origin.chain, assetInfo, systemAssetAmount, isRelayAsset, options);
|
|
8578
|
+
return _context.a(2, buildTypeAndThenCall(context, isRelayAsset, customXcm, assets));
|
|
8579
|
+
}
|
|
8580
|
+
}, _callee);
|
|
8581
|
+
}));
|
|
8582
|
+
return function constructTypeAndThenCall(_x) {
|
|
8583
|
+
return _ref3.apply(this, arguments);
|
|
8600
8584
|
};
|
|
8601
|
-
|
|
8602
|
-
var systemAssetAmount = resolveSystemAssetAmount(context, isForFeeCalc, resolvedFees);
|
|
8603
|
-
var customXcm = createCustomXcm(context, assetCount, isForFeeCalc, systemAssetAmount, refundInstruction, resolvedFees);
|
|
8604
|
-
var assets = buildAssets(origin.chain, assetInfo, systemAssetAmount, isRelayAsset, version);
|
|
8605
|
-
return buildTypeAndThenCall(context, isRelayAsset, customXcm, assets);
|
|
8606
|
-
};
|
|
8585
|
+
}();
|
|
8607
8586
|
/**
|
|
8608
8587
|
* Creates a type and then call for transferring assets using XCM. Works only for DOT and snowbridge assets so far.
|
|
8609
8588
|
*/
|
|
8610
8589
|
var createTypeAndThenCall = /*#__PURE__*/function () {
|
|
8611
|
-
var
|
|
8612
|
-
var
|
|
8613
|
-
|
|
8614
|
-
|
|
8590
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(options) {
|
|
8591
|
+
var overrides,
|
|
8592
|
+
context,
|
|
8593
|
+
origin,
|
|
8594
|
+
assetInfo,
|
|
8595
|
+
isSnowbridge,
|
|
8596
|
+
bridgeStatus,
|
|
8597
|
+
fees,
|
|
8598
|
+
_args3 = arguments;
|
|
8599
|
+
return _regenerator().w(function (_context3) {
|
|
8600
|
+
while (1) switch (_context3.n) {
|
|
8615
8601
|
case 0:
|
|
8616
|
-
|
|
8617
|
-
|
|
8602
|
+
overrides = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {
|
|
8603
|
+
reserveChain: undefined,
|
|
8604
|
+
noFeeAsset: false
|
|
8605
|
+
};
|
|
8606
|
+
_context3.n = 1;
|
|
8607
|
+
return createTypeAndThenCallContext(options, overrides);
|
|
8618
8608
|
case 1:
|
|
8619
|
-
context =
|
|
8620
|
-
origin = context.origin, assetInfo = context.assetInfo;
|
|
8621
|
-
|
|
8622
|
-
|
|
8623
|
-
|
|
8624
|
-
|
|
8625
|
-
|
|
8626
|
-
|
|
8627
|
-
})
|
|
8628
|
-
}))));
|
|
8629
|
-
});
|
|
8609
|
+
context = _context3.v;
|
|
8610
|
+
origin = context.origin, assetInfo = context.assetInfo, isSnowbridge = context.isSnowbridge;
|
|
8611
|
+
if (!isSnowbridge) {
|
|
8612
|
+
_context3.n = 3;
|
|
8613
|
+
break;
|
|
8614
|
+
}
|
|
8615
|
+
_context3.n = 2;
|
|
8616
|
+
return getBridgeStatus(origin.api.clone());
|
|
8630
8617
|
case 2:
|
|
8631
|
-
|
|
8632
|
-
|
|
8618
|
+
bridgeStatus = _context3.v;
|
|
8619
|
+
if (!(bridgeStatus !== 'Normal')) {
|
|
8620
|
+
_context3.n = 3;
|
|
8621
|
+
break;
|
|
8622
|
+
}
|
|
8623
|
+
throw new BridgeHaltedError();
|
|
8624
|
+
case 3:
|
|
8625
|
+
_context3.n = 4;
|
|
8626
|
+
return computeAllFees(context, /*#__PURE__*/function () {
|
|
8627
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(amount, relative) {
|
|
8628
|
+
var overridenAmount, _t, _t2;
|
|
8629
|
+
return _regenerator().w(function (_context2) {
|
|
8630
|
+
while (1) switch (_context2.n) {
|
|
8631
|
+
case 0:
|
|
8632
|
+
overridenAmount = amount ? relative ? assetInfo.amount + parseUnits(amount, assetInfo.decimals) : parseUnits(amount, assetInfo.decimals) : assetInfo.amount;
|
|
8633
|
+
_t = Promise;
|
|
8634
|
+
_t2 = origin.api;
|
|
8635
|
+
_context2.n = 1;
|
|
8636
|
+
return constructTypeAndThenCall(_objectSpread2(_objectSpread2({}, context), {}, {
|
|
8637
|
+
assetInfo: _objectSpread2(_objectSpread2({}, assetInfo), {}, {
|
|
8638
|
+
amount: overridenAmount
|
|
8639
|
+
})
|
|
8640
|
+
}));
|
|
8641
|
+
case 1:
|
|
8642
|
+
return _context2.a(2, _t.resolve.call(_t, _t2.deserializeExtrinsics.call(_t2, _context2.v)));
|
|
8643
|
+
}
|
|
8644
|
+
}, _callee2);
|
|
8645
|
+
}));
|
|
8646
|
+
return function (_x3, _x4) {
|
|
8647
|
+
return _ref5.apply(this, arguments);
|
|
8648
|
+
};
|
|
8649
|
+
}());
|
|
8650
|
+
case 4:
|
|
8651
|
+
fees = _context3.v;
|
|
8652
|
+
return _context3.a(2, constructTypeAndThenCall(context, fees));
|
|
8633
8653
|
}
|
|
8634
|
-
},
|
|
8654
|
+
}, _callee3);
|
|
8635
8655
|
}));
|
|
8636
|
-
return function createTypeAndThenCall(
|
|
8637
|
-
return
|
|
8656
|
+
return function createTypeAndThenCall(_x2) {
|
|
8657
|
+
return _ref4.apply(this, arguments);
|
|
8638
8658
|
};
|
|
8639
8659
|
}();
|
|
8640
8660
|
|
|
@@ -8657,7 +8677,9 @@ var createCallForReserve = /*#__PURE__*/function () {
|
|
|
8657
8677
|
case 0:
|
|
8658
8678
|
api = options.api, destination = options.destination, address = options.address, senderAddress = options.senderAddress, currency = options.currency, feeCurrency = options.feeCurrency;
|
|
8659
8679
|
_context.n = 1;
|
|
8660
|
-
return createTypeAndThenCall(
|
|
8680
|
+
return createTypeAndThenCall(options, {
|
|
8681
|
+
reserveChain: reserveChain
|
|
8682
|
+
});
|
|
8661
8683
|
case 1:
|
|
8662
8684
|
serialized = _context.v;
|
|
8663
8685
|
assertAddressIsString(address);
|
|
@@ -8709,7 +8731,7 @@ var createTypeThenAutoReserve = /*#__PURE__*/function () {
|
|
|
8709
8731
|
break;
|
|
8710
8732
|
}
|
|
8711
8733
|
_context2.n = 1;
|
|
8712
|
-
return createTypeAndThenCall(
|
|
8734
|
+
return createTypeAndThenCall(options);
|
|
8713
8735
|
case 1:
|
|
8714
8736
|
return _context2.a(2, _context2.v);
|
|
8715
8737
|
case 2:
|
|
@@ -8758,7 +8780,7 @@ var verifyEdOnDestinationInternal = /*#__PURE__*/function () {
|
|
|
8758
8780
|
while (1) switch (_context.n) {
|
|
8759
8781
|
case 0:
|
|
8760
8782
|
api = options.api, buildTx = options.buildTx, origin = options.origin, destination = options.destination, currency = options.currency, address = options.address, senderAddress = options.senderAddress, feeAsset = options.feeAsset;
|
|
8761
|
-
if (!(destination
|
|
8783
|
+
if (!isExternalChain(destination)) {
|
|
8762
8784
|
_context.n = 1;
|
|
8763
8785
|
break;
|
|
8764
8786
|
}
|
|
@@ -8876,12 +8898,219 @@ var verifyEdOnDestination = /*#__PURE__*/function () {
|
|
|
8876
8898
|
case 5:
|
|
8877
8899
|
return _context.a(2);
|
|
8878
8900
|
}
|
|
8879
|
-
}, _callee, null, [[1,, 3, 5]]);
|
|
8880
|
-
}));
|
|
8881
|
-
return function verifyEdOnDestination(_x) {
|
|
8882
|
-
return _ref.apply(this, arguments);
|
|
8901
|
+
}, _callee, null, [[1,, 3, 5]]);
|
|
8902
|
+
}));
|
|
8903
|
+
return function verifyEdOnDestination(_x) {
|
|
8904
|
+
return _ref.apply(this, arguments);
|
|
8905
|
+
};
|
|
8906
|
+
}();
|
|
8907
|
+
|
|
8908
|
+
var transferPolkadotXcm = /*#__PURE__*/function () {
|
|
8909
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
|
|
8910
|
+
var method,
|
|
8911
|
+
fees,
|
|
8912
|
+
api,
|
|
8913
|
+
destLocation,
|
|
8914
|
+
asset,
|
|
8915
|
+
beneficiaryLocation,
|
|
8916
|
+
multiAsset,
|
|
8917
|
+
overriddenAsset,
|
|
8918
|
+
pallet,
|
|
8919
|
+
version,
|
|
8920
|
+
methodOverride,
|
|
8921
|
+
resolvedMultiAssets,
|
|
8922
|
+
feeAssetIndex,
|
|
8923
|
+
call,
|
|
8924
|
+
_args = arguments,
|
|
8925
|
+
_t;
|
|
8926
|
+
return _regenerator().w(function (_context) {
|
|
8927
|
+
while (1) switch (_context.n) {
|
|
8928
|
+
case 0:
|
|
8929
|
+
method = _args.length > 1 && _args[1] !== undefined ? _args[1] : 'transfer_assets_using_type_and_then';
|
|
8930
|
+
fees = _args.length > 2 && _args[2] !== undefined ? _args[2] : undefined;
|
|
8931
|
+
api = options.api, destLocation = options.destLocation, asset = options.assetInfo, beneficiaryLocation = options.beneficiaryLocation, multiAsset = options.asset, overriddenAsset = options.overriddenAsset, pallet = options.pallet, version = options.version, methodOverride = options.method;
|
|
8932
|
+
if (!(method === 'transfer_assets_using_type_and_then')) {
|
|
8933
|
+
_context.n = 2;
|
|
8934
|
+
break;
|
|
8935
|
+
}
|
|
8936
|
+
_t = api;
|
|
8937
|
+
_context.n = 1;
|
|
8938
|
+
return createTypeAndThenCall(options, {
|
|
8939
|
+
noFeeAsset: true
|
|
8940
|
+
});
|
|
8941
|
+
case 1:
|
|
8942
|
+
return _context.a(2, _t.deserializeExtrinsics.call(_t, _context.v));
|
|
8943
|
+
case 2:
|
|
8944
|
+
resolvedMultiAssets = maybeOverrideAssets(version, asset.amount, [multiAsset], overriddenAsset);
|
|
8945
|
+
feeAssetIndex = overriddenAsset === undefined || isTLocation(overriddenAsset) ? DEFAULT_FEE_ASSET : overriddenAsset.findIndex(function (asset) {
|
|
8946
|
+
return asset.isFeeAsset;
|
|
8947
|
+
});
|
|
8948
|
+
call = {
|
|
8949
|
+
module: pallet !== null && pallet !== void 0 ? pallet : 'PolkadotXcm',
|
|
8950
|
+
method: methodOverride !== null && methodOverride !== void 0 ? methodOverride : method,
|
|
8951
|
+
params: _objectSpread2({
|
|
8952
|
+
dest: addXcmVersionHeader(destLocation, version),
|
|
8953
|
+
beneficiary: addXcmVersionHeader(beneficiaryLocation, version),
|
|
8954
|
+
assets: addXcmVersionHeader(resolvedMultiAssets, version),
|
|
8955
|
+
fee_asset_item: feeAssetIndex
|
|
8956
|
+
}, fees !== undefined ? {
|
|
8957
|
+
weight_limit: fees
|
|
8958
|
+
} : {})
|
|
8959
|
+
};
|
|
8960
|
+
return _context.a(2, Promise.resolve(api.deserializeExtrinsics(call)));
|
|
8961
|
+
}
|
|
8962
|
+
}, _callee);
|
|
8963
|
+
}));
|
|
8964
|
+
return function transferPolkadotXcm(_x) {
|
|
8965
|
+
return _ref.apply(this, arguments);
|
|
8966
|
+
};
|
|
8967
|
+
}();
|
|
8968
|
+
|
|
8969
|
+
var ERR_LOCATION_DEST_NOT_SUPPORTED = 'XCM Location destinations are not supported for specific transfer you are trying to create. In special cases such as xTokens or xTransfer pallet try using address locaation instead (for both destination and address in same location set (eg. X2 - Parachain, Address). For further assistance please open issue in our repository.';
|
|
8970
|
+
|
|
8971
|
+
var resolveLocationFromDest = function resolveLocationFromDest(destination, asset) {
|
|
8972
|
+
if (_typeof(destination) === 'object') return destination;
|
|
8973
|
+
if (isRelayChain(destination)) return DOT_LOCATION;
|
|
8974
|
+
// If it is a native asset, search by symbol on AssetHub and use the location from there
|
|
8975
|
+
var assetHubAsset = getOtherAssets(destination).find(function (ahAsset) {
|
|
8976
|
+
var _ahAsset$symbol, _asset$symbol;
|
|
8977
|
+
return ((_ahAsset$symbol = ahAsset.symbol) === null || _ahAsset$symbol === void 0 ? void 0 : _ahAsset$symbol.toLowerCase()) === ((_asset$symbol = asset.symbol) === null || _asset$symbol === void 0 ? void 0 : _asset$symbol.toLowerCase());
|
|
8978
|
+
});
|
|
8979
|
+
if (!(assetHubAsset !== null && assetHubAsset !== void 0 && assetHubAsset.location)) {
|
|
8980
|
+
throw new InvalidCurrencyError("Asset ".concat(asset.symbol, " not found or has no location"));
|
|
8981
|
+
}
|
|
8982
|
+
return assetHubAsset.location;
|
|
8983
|
+
};
|
|
8984
|
+
var buildLocation = function buildLocation(_ref) {
|
|
8985
|
+
var paraIdTo = _ref.paraIdTo,
|
|
8986
|
+
asset = _ref.asset,
|
|
8987
|
+
origin = _ref.origin,
|
|
8988
|
+
destination = _ref.destination;
|
|
8989
|
+
if (asset.isNative) {
|
|
8990
|
+
return resolveLocationFromDest(destination, asset);
|
|
8991
|
+
}
|
|
8992
|
+
var createDefaultLocation = function createDefaultLocation(assetId) {
|
|
8993
|
+
return {
|
|
8994
|
+
parents: Parents.ONE,
|
|
8995
|
+
interior: {
|
|
8996
|
+
X3: [{
|
|
8997
|
+
Parachain: paraIdTo
|
|
8998
|
+
}, {
|
|
8999
|
+
PalletInstance: '50'
|
|
9000
|
+
}, {
|
|
9001
|
+
GeneralIndex: BigInt(assetId)
|
|
9002
|
+
}]
|
|
9003
|
+
}
|
|
9004
|
+
};
|
|
8883
9005
|
};
|
|
8884
|
-
|
|
9006
|
+
var isBifrostOrigin = origin === 'BifrostPolkadot' || origin === 'BifrostKusama';
|
|
9007
|
+
if (isBifrostOrigin) {
|
|
9008
|
+
return createDefaultLocation(asset.assetId);
|
|
9009
|
+
}
|
|
9010
|
+
if (asset.location) {
|
|
9011
|
+
return asset.location;
|
|
9012
|
+
} else {
|
|
9013
|
+
return createDefaultLocation(asset.assetId);
|
|
9014
|
+
}
|
|
9015
|
+
};
|
|
9016
|
+
|
|
9017
|
+
var createDefaultCurrencySelection = function createDefaultCurrencySelection(input) {
|
|
9018
|
+
var asset = input.asset,
|
|
9019
|
+
version = input.version;
|
|
9020
|
+
var location = buildLocation(input);
|
|
9021
|
+
var multiAsset = createAsset(version, asset.amount, location);
|
|
9022
|
+
return addXcmVersionHeader(multiAsset, version);
|
|
9023
|
+
};
|
|
9024
|
+
var getModifiedCurrencySelection = function getModifiedCurrencySelection(input) {
|
|
9025
|
+
var version = input.version,
|
|
9026
|
+
asset = input.asset,
|
|
9027
|
+
overriddenAsset = input.overriddenAsset;
|
|
9028
|
+
if (overriddenAsset) {
|
|
9029
|
+
return addXcmVersionHeader(maybeOverrideAssets(version, asset.amount, [], overriddenAsset), version);
|
|
9030
|
+
}
|
|
9031
|
+
return createDefaultCurrencySelection(input);
|
|
9032
|
+
};
|
|
9033
|
+
|
|
9034
|
+
var getXTokensParams = function getXTokensParams(isMultiAssetTransfer, currencySelection, destLocation, amount, weightLimit, version, overriddenAsset) {
|
|
9035
|
+
var versionedDestLocation = addXcmVersionHeader(destLocation, version);
|
|
9036
|
+
if (!isMultiAssetTransfer) {
|
|
9037
|
+
return {
|
|
9038
|
+
currency_id: currencySelection,
|
|
9039
|
+
amount: BigInt(amount),
|
|
9040
|
+
dest: versionedDestLocation,
|
|
9041
|
+
dest_weight_limit: weightLimit
|
|
9042
|
+
};
|
|
9043
|
+
}
|
|
9044
|
+
var isOverriddenMultiAssets = overriddenAsset && !isTLocation(overriddenAsset);
|
|
9045
|
+
var assetKey = isOverriddenMultiAssets ? 'assets' : 'asset';
|
|
9046
|
+
var feeAssetIndex = isOverriddenMultiAssets ? overriddenAsset.findIndex(function (asset) {
|
|
9047
|
+
return asset.isFeeAsset;
|
|
9048
|
+
}) : undefined;
|
|
9049
|
+
var feeIndexWithFallback = feeAssetIndex === -1 ? 0 : feeAssetIndex;
|
|
9050
|
+
return _objectSpread2(_objectSpread2(_defineProperty({}, assetKey, currencySelection), isOverriddenMultiAssets && {
|
|
9051
|
+
fee_item: feeIndexWithFallback
|
|
9052
|
+
}), {}, {
|
|
9053
|
+
dest: versionedDestLocation,
|
|
9054
|
+
dest_weight_limit: weightLimit
|
|
9055
|
+
});
|
|
9056
|
+
};
|
|
9057
|
+
|
|
9058
|
+
var shouldUseMultiAssetTransfer = function shouldUseMultiAssetTransfer(_ref) {
|
|
9059
|
+
var origin = _ref.origin,
|
|
9060
|
+
destination = _ref.destination,
|
|
9061
|
+
scenario = _ref.scenario,
|
|
9062
|
+
overriddenAsset = _ref.overriddenAsset,
|
|
9063
|
+
useMultiAssetTransfer = _ref.useMultiAssetTransfer;
|
|
9064
|
+
var isAstarOrShidenToRelay = scenario === 'ParaToRelay' && (origin === 'Astar' || origin === 'Shiden');
|
|
9065
|
+
var isBifrostOrigin = origin === 'BifrostPolkadot' || origin === 'BifrostKusama';
|
|
9066
|
+
var isAssetHubDest = destination === 'AssetHubPolkadot' || destination === 'AssetHubKusama';
|
|
9067
|
+
var isOverriddenMultiAssets = overriddenAsset && !isTLocation(overriddenAsset);
|
|
9068
|
+
return useMultiAssetTransfer || isAstarOrShidenToRelay || isAssetHubDest && !isBifrostOrigin || !!isOverriddenMultiAssets;
|
|
9069
|
+
};
|
|
9070
|
+
var getXTokensMethod = function getXTokensMethod(useMultiAsset, overriddenAsset) {
|
|
9071
|
+
if (!useMultiAsset) return 'transfer';
|
|
9072
|
+
var isOverriddenMultiAssets = overriddenAsset && !isTLocation(overriddenAsset);
|
|
9073
|
+
return isOverriddenMultiAssets ? 'transfer_multiassets' : 'transfer_multiasset';
|
|
9074
|
+
};
|
|
9075
|
+
var buildXTokensCall = function buildXTokensCall(input, currencySelection, fees) {
|
|
9076
|
+
var api = input.api,
|
|
9077
|
+
origin = input.origin,
|
|
9078
|
+
destination = input.destination,
|
|
9079
|
+
overriddenAsset = input.overriddenAsset,
|
|
9080
|
+
address = input.address,
|
|
9081
|
+
asset = input.asset,
|
|
9082
|
+
pallet = input.pallet,
|
|
9083
|
+
version = input.version,
|
|
9084
|
+
paraIdTo = input.paraIdTo,
|
|
9085
|
+
methodOverride = input.method;
|
|
9086
|
+
var useMultiAsset = shouldUseMultiAssetTransfer(input);
|
|
9087
|
+
var modifiedCurrencySelection = useMultiAsset ? getModifiedCurrencySelection(input) : currencySelection;
|
|
9088
|
+
var method = getXTokensMethod(useMultiAsset, overriddenAsset);
|
|
9089
|
+
var destLocation = createBeneficiaryLocXTokens({
|
|
9090
|
+
api: api,
|
|
9091
|
+
origin: origin,
|
|
9092
|
+
destination: destination,
|
|
9093
|
+
address: address,
|
|
9094
|
+
version: version,
|
|
9095
|
+
paraId: paraIdTo
|
|
9096
|
+
});
|
|
9097
|
+
var params = getXTokensParams(useMultiAsset, modifiedCurrencySelection, destLocation, asset.amount, fees, version, overriddenAsset);
|
|
9098
|
+
return {
|
|
9099
|
+
module: pallet !== null && pallet !== void 0 ? pallet : 'XTokens',
|
|
9100
|
+
method: methodOverride !== null && methodOverride !== void 0 ? methodOverride : method,
|
|
9101
|
+
params: params
|
|
9102
|
+
};
|
|
9103
|
+
};
|
|
9104
|
+
|
|
9105
|
+
// Contains basic structure of xTokens call
|
|
9106
|
+
var transferXTokens = function transferXTokens(input, currencySelection) {
|
|
9107
|
+
var fees = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_FEE;
|
|
9108
|
+
var api = input.api,
|
|
9109
|
+
destination = input.destination;
|
|
9110
|
+
assertToIsString(destination, ERR_LOCATION_DEST_NOT_SUPPORTED);
|
|
9111
|
+
var call = buildXTokensCall(input, currencySelection, fees);
|
|
9112
|
+
return api.deserializeExtrinsics(call);
|
|
9113
|
+
};
|
|
8885
9114
|
|
|
8886
9115
|
var resolveParaId = function resolveParaId(paraId, destination) {
|
|
8887
9116
|
if (isTLocation(destination)) {
|
|
@@ -8933,7 +9162,8 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
8933
9162
|
var _asset$location;
|
|
8934
9163
|
var asset = options.assetInfo;
|
|
8935
9164
|
var isExternalAsset = ((_asset$location = asset.location) === null || _asset$location === void 0 ? void 0 : _asset$location.parents) === Parents.TWO;
|
|
8936
|
-
|
|
9165
|
+
if (isExternalAsset) return false;
|
|
9166
|
+
return !this.shouldUseNativeAssetTeleport(options) || !supportsPolkadotXCM(this);
|
|
8937
9167
|
}
|
|
8938
9168
|
}, {
|
|
8939
9169
|
key: "transfer",
|
|
@@ -8968,7 +9198,7 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
8968
9198
|
_context.n = 3;
|
|
8969
9199
|
break;
|
|
8970
9200
|
}
|
|
8971
|
-
throw new
|
|
9201
|
+
throw new TypeAndThenUnavailableError('Relaychain assets require the type-and-then method which is not supported by this chain.');
|
|
8972
9202
|
case 3:
|
|
8973
9203
|
isSubBridge = !isTLocation(destination) && isSubstrateBridge(this.chain, destination);
|
|
8974
9204
|
useTypeAndThen = assetNeedsTypeThen && supportsTypeThen && destChain && !isExternalChain(destChain) && !feeAsset && (!isTrustedChain(this.chain) || !isTrustedChain(destChain)) || isSubBridge;
|
|
@@ -9023,6 +9253,7 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
9023
9253
|
}
|
|
9024
9254
|
options = {
|
|
9025
9255
|
api: api,
|
|
9256
|
+
chain: this.chain,
|
|
9026
9257
|
destLocation: createDestination(version, this.chain, destination, paraId),
|
|
9027
9258
|
beneficiaryLocation: createBeneficiaryLocation({
|
|
9028
9259
|
api: api,
|
|
@@ -9067,7 +9298,7 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
9067
9298
|
isAHOrigin = this.chain.includes('AssetHub');
|
|
9068
9299
|
isAHDest = !isTLocation(destination) && destination.includes('AssetHub'); // Handle common cases
|
|
9069
9300
|
isExternalAsset = ((_asset$location2 = asset.location) === null || _asset$location2 === void 0 ? void 0 : _asset$location2.parents) === Parents.TWO;
|
|
9070
|
-
isEthDest = destination
|
|
9301
|
+
isEthDest = _typeof(destination) !== 'object' && isExternalChain(destination); // External asset - Any origin to any dest via AH - DestinationReserve - multiple instructions
|
|
9071
9302
|
isExternalAssetViaAh = isExternalAsset && !isAHOrigin && !isAHDest && !isEthDest && !feeAsset; // External asset - Any origin to AHP - DestinationReserve - one DepositAsset instruction
|
|
9072
9303
|
isExternalAssetToAh = isExternalAsset && isAHDest && !isAHOrigin && !isEthDest && !feeAsset;
|
|
9073
9304
|
if (!(isExternalAssetViaAh || isExternalAssetToAh || useTypeAndThen)) {
|
|
@@ -9082,7 +9313,7 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
9082
9313
|
return this.transferPolkadotXCM(options);
|
|
9083
9314
|
case 9:
|
|
9084
9315
|
_context.n = 10;
|
|
9085
|
-
return createTypeAndThenCall(
|
|
9316
|
+
return createTypeAndThenCall(options);
|
|
9086
9317
|
case 10:
|
|
9087
9318
|
call = _context.v;
|
|
9088
9319
|
return _context.a(2, api.deserializeExtrinsics(call));
|
|
@@ -9146,45 +9377,42 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
9146
9377
|
}, {
|
|
9147
9378
|
key: "shouldUseNativeAssetTeleport",
|
|
9148
9379
|
value: function shouldUseNativeAssetTeleport(_ref) {
|
|
9380
|
+
var _this = this;
|
|
9149
9381
|
var asset = _ref.assetInfo,
|
|
9150
9382
|
to = _ref.to;
|
|
9151
|
-
if (isTLocation(to) || isSubstrateBridge(this.chain, to) || to
|
|
9383
|
+
if (isTLocation(to) || isSubstrateBridge(this.chain, to) || isExternalChain(to)) return false;
|
|
9152
9384
|
var isAHPOrigin = this.chain.includes('AssetHub');
|
|
9153
9385
|
var isAHPDest = !isTLocation(to) && to.includes('AssetHub');
|
|
9154
|
-
var
|
|
9386
|
+
var nativeSymbols = PARACHAINS.filter(function (chain) {
|
|
9387
|
+
return getRelayChainOf(chain) === getRelayChainOf(_this.chain) && !isTrustedChain(chain);
|
|
9388
|
+
}).map(function (chain) {
|
|
9389
|
+
return getNativeAssetSymbol(chain);
|
|
9390
|
+
});
|
|
9391
|
+
var isSomeChainNativeAsset = nativeSymbols.some(function (symbol) {
|
|
9392
|
+
return isSymbolMatch(asset.symbol, symbol);
|
|
9393
|
+
});
|
|
9394
|
+
var isNativeAsset = !isTLocation(to) && (isAHPOrigin && !asset.isNative && isSymbolMatch(asset.symbol, getNativeAssetSymbol(to)) || isAHPDest && isSomeChainNativeAsset);
|
|
9155
9395
|
var assetHubChain = "AssetHub".concat(getRelayChainOf(this.chain));
|
|
9156
9396
|
var isRegisteredOnAh = asset.location && findAssetInfo(assetHubChain, {
|
|
9157
9397
|
location: asset.location
|
|
9158
9398
|
}, null);
|
|
9159
9399
|
return Boolean(isNativeAsset) && Boolean(isRegisteredOnAh) && (isAHPOrigin || isAHPDest);
|
|
9160
9400
|
}
|
|
9161
|
-
}, {
|
|
9162
|
-
key: "getRelayToParaOverrides",
|
|
9163
|
-
value: function getRelayToParaOverrides() {
|
|
9164
|
-
return {
|
|
9165
|
-
transferType: 'typeAndThen'
|
|
9166
|
-
};
|
|
9167
|
-
}
|
|
9168
9401
|
}, {
|
|
9169
9402
|
key: "transferRelayToPara",
|
|
9170
9403
|
value: function () {
|
|
9171
9404
|
var _transferRelayToPara = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options) {
|
|
9172
|
-
var api,
|
|
9405
|
+
var api, origin, version, assetInfo, address, senderAddress, destination, paraIdTo, paraId, destChain, scenario;
|
|
9173
9406
|
return _regenerator().w(function (_context2) {
|
|
9174
9407
|
while (1) switch (_context2.n) {
|
|
9175
9408
|
case 0:
|
|
9176
|
-
api = options.api,
|
|
9177
|
-
_this$getRelayToParaO = this.getRelayToParaOverrides(), transferType = _this$getRelayToParaO.transferType;
|
|
9409
|
+
api = options.api, origin = options.origin, version = options.version, assetInfo = options.assetInfo, address = options.address, senderAddress = options.senderAddress, destination = options.destination, paraIdTo = options.paraIdTo;
|
|
9178
9410
|
if (!this.isReceivingTempDisabled('RelayToPara')) {
|
|
9179
9411
|
_context2.n = 1;
|
|
9180
9412
|
break;
|
|
9181
9413
|
}
|
|
9182
9414
|
throw new FeatureTemporarilyDisabledError("Receiving on ".concat(this.chain, " is temporarily disabled"));
|
|
9183
9415
|
case 1:
|
|
9184
|
-
if (!(transferType === 'typeAndThen')) {
|
|
9185
|
-
_context2.n = 3;
|
|
9186
|
-
break;
|
|
9187
|
-
}
|
|
9188
9416
|
paraId = resolveParaId(paraIdTo, destination);
|
|
9189
9417
|
destChain = resolveDestChain(this.chain, paraId);
|
|
9190
9418
|
scenario = 'RelayToPara';
|
|
@@ -9195,6 +9423,7 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
9195
9423
|
throw new UnsupportedOperationError('Cannot override destination when using type and then transfer.');
|
|
9196
9424
|
case 2:
|
|
9197
9425
|
return _context2.a(2, createTypeThenAutoReserve(getRelayChainOf(destChain), _objectSpread2(_objectSpread2({}, options), {}, {
|
|
9426
|
+
chain: origin,
|
|
9198
9427
|
beneficiaryLocation: createBeneficiaryLocation({
|
|
9199
9428
|
api: api,
|
|
9200
9429
|
address: address,
|
|
@@ -9207,12 +9436,6 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
9207
9436
|
destChain: destChain,
|
|
9208
9437
|
paraIdTo: paraId
|
|
9209
9438
|
})));
|
|
9210
|
-
case 3:
|
|
9211
|
-
return _context2.a(2, {
|
|
9212
|
-
module: pallet !== null && pallet !== void 0 ? pallet : 'XcmPallet',
|
|
9213
|
-
method: method !== null && method !== void 0 ? method : 'limited_teleport_assets',
|
|
9214
|
-
params: constructRelayToParaParams(options, version)
|
|
9215
|
-
});
|
|
9216
9439
|
}
|
|
9217
9440
|
}, _callee2, this);
|
|
9218
9441
|
}));
|
|
@@ -9369,7 +9592,6 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
9369
9592
|
api,
|
|
9370
9593
|
asset,
|
|
9371
9594
|
version,
|
|
9372
|
-
destination,
|
|
9373
9595
|
address,
|
|
9374
9596
|
senderAddress,
|
|
9375
9597
|
feeAsset,
|
|
@@ -9387,13 +9609,14 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
9387
9609
|
shouldIncludeFeeAsset,
|
|
9388
9610
|
customXcmOnDest,
|
|
9389
9611
|
messageId,
|
|
9612
|
+
hopDestination,
|
|
9390
9613
|
call,
|
|
9391
9614
|
_args4 = arguments;
|
|
9392
9615
|
return _regenerator().w(function (_context4) {
|
|
9393
9616
|
while (1) switch (_context4.n) {
|
|
9394
9617
|
case 0:
|
|
9395
9618
|
useOnlyDepositInstruction = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : false;
|
|
9396
|
-
api = input.api, asset = input.assetInfo, version = input.version,
|
|
9619
|
+
api = input.api, asset = input.assetInfo, version = input.version, address = input.address, senderAddress = input.senderAddress, feeAsset = input.feeAssetInfo;
|
|
9397
9620
|
_context4.n = 1;
|
|
9398
9621
|
return getBridgeStatus(api.clone());
|
|
9399
9622
|
case 1:
|
|
@@ -9454,11 +9677,12 @@ var Parachain = /*#__PURE__*/function () {
|
|
|
9454
9677
|
messageId = _context4.v;
|
|
9455
9678
|
customXcmOnDest = createCustomXcmOnDest(input, this.chain, messageId, ethAssetInfo);
|
|
9456
9679
|
case 7:
|
|
9680
|
+
hopDestination = 'AssetHubPolkadot';
|
|
9457
9681
|
call = {
|
|
9458
9682
|
module: 'PolkadotXcm',
|
|
9459
9683
|
method: 'transfer_assets_using_type_and_then',
|
|
9460
9684
|
params: {
|
|
9461
|
-
dest: createVersionedDestination(version, this.chain,
|
|
9685
|
+
dest: createVersionedDestination(version, this.chain, hopDestination, getParaId(hopDestination)),
|
|
9462
9686
|
assets: addXcmVersionHeader([].concat(_toConsumableArray(shouldIncludeFeeAsset ? [createAsset(version, fee, DOT_LOCATION)] : []), [ethAsset]), version),
|
|
9463
9687
|
assets_transfer_type: 'DestinationReserve',
|
|
9464
9688
|
remote_fees_id: addXcmVersionHeader((_feeAsset$location = feeAsset === null || feeAsset === void 0 ? void 0 : feeAsset.location) !== null && _feeAsset$location !== void 0 ? _feeAsset$location : shouldIncludeFeeAsset ? DOT_LOCATION : asset.location, version),
|
|
@@ -9569,11 +9793,9 @@ var Acala = /*#__PURE__*/function (_Parachain) {
|
|
|
9569
9793
|
}
|
|
9570
9794
|
_inherits(Acala, _Parachain);
|
|
9571
9795
|
return _createClass(Acala, [{
|
|
9572
|
-
key: "
|
|
9573
|
-
value: function
|
|
9574
|
-
|
|
9575
|
-
var currencySelection = this.getCustomCurrencyId(asset);
|
|
9576
|
-
return transferXTokens(input, currencySelection);
|
|
9796
|
+
key: "transferPolkadotXCM",
|
|
9797
|
+
value: function transferPolkadotXCM(input) {
|
|
9798
|
+
return transferPolkadotXcm(input);
|
|
9577
9799
|
}
|
|
9578
9800
|
}, {
|
|
9579
9801
|
key: "transferRelayToPara",
|
|
@@ -9684,20 +9906,9 @@ var Ajuna = /*#__PURE__*/function (_Parachain) {
|
|
|
9684
9906
|
}
|
|
9685
9907
|
_inherits(Ajuna, _Parachain);
|
|
9686
9908
|
return _createClass(Ajuna, [{
|
|
9687
|
-
key: "
|
|
9688
|
-
value: function
|
|
9689
|
-
|
|
9690
|
-
asset = input.asset;
|
|
9691
|
-
if (scenario !== 'ParaToPara') {
|
|
9692
|
-
throw new ScenarioNotSupportedError({
|
|
9693
|
-
chain: this.chain,
|
|
9694
|
-
scenario: scenario
|
|
9695
|
-
});
|
|
9696
|
-
}
|
|
9697
|
-
if (asset.symbol !== this.getNativeAssetSymbol()) {
|
|
9698
|
-
throw new InvalidCurrencyError("Asset ".concat(asset.symbol, " is not supported by chain ").concat(this.chain, "."));
|
|
9699
|
-
}
|
|
9700
|
-
return transferXTokens(input, this.getNativeAssetSymbol());
|
|
9909
|
+
key: "transferPolkadotXCM",
|
|
9910
|
+
value: function transferPolkadotXCM(input) {
|
|
9911
|
+
return transferPolkadotXcm(input);
|
|
9701
9912
|
}
|
|
9702
9913
|
}, {
|
|
9703
9914
|
key: "transferRelayToPara",
|
|
@@ -9743,68 +9954,14 @@ var Ajuna = /*#__PURE__*/function (_Parachain) {
|
|
|
9743
9954
|
}]);
|
|
9744
9955
|
}(Parachain);
|
|
9745
9956
|
|
|
9746
|
-
var
|
|
9747
|
-
var api = _ref.api,
|
|
9748
|
-
destLocation = _ref.destLocation,
|
|
9749
|
-
asset = _ref.assetInfo,
|
|
9750
|
-
beneficiaryLocation = _ref.beneficiaryLocation,
|
|
9751
|
-
multiAsset = _ref.asset,
|
|
9752
|
-
overriddenAsset = _ref.overriddenAsset,
|
|
9753
|
-
pallet = _ref.pallet,
|
|
9754
|
-
version = _ref.version,
|
|
9755
|
-
methodOverride = _ref.method;
|
|
9756
|
-
var fees = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
9757
|
-
var resolvedMultiAssets = maybeOverrideAssets(version, asset.amount, [multiAsset], overriddenAsset);
|
|
9758
|
-
var feeAssetIndex = overriddenAsset === undefined || isTLocation(overriddenAsset) ? DEFAULT_FEE_ASSET : overriddenAsset.findIndex(function (asset) {
|
|
9759
|
-
return asset.isFeeAsset;
|
|
9760
|
-
});
|
|
9761
|
-
var call = {
|
|
9762
|
-
module: pallet !== null && pallet !== void 0 ? pallet : 'PolkadotXcm',
|
|
9763
|
-
method: methodOverride !== null && methodOverride !== void 0 ? methodOverride : method,
|
|
9764
|
-
params: _objectSpread2({
|
|
9765
|
-
dest: addXcmVersionHeader(destLocation, version),
|
|
9766
|
-
beneficiary: addXcmVersionHeader(beneficiaryLocation, version),
|
|
9767
|
-
assets: addXcmVersionHeader(resolvedMultiAssets, version),
|
|
9768
|
-
fee_asset_item: feeAssetIndex
|
|
9769
|
-
}, fees !== undefined ? {
|
|
9770
|
-
weight_limit: fees
|
|
9771
|
-
} : {})
|
|
9772
|
-
};
|
|
9773
|
-
return Promise.resolve(api.deserializeExtrinsics(call));
|
|
9774
|
-
};
|
|
9775
|
-
|
|
9776
|
-
var AjunaPaseo = /*#__PURE__*/function (_Parachain) {
|
|
9957
|
+
var AjunaPaseo = /*#__PURE__*/function (_Ajuna) {
|
|
9777
9958
|
function AjunaPaseo() {
|
|
9778
9959
|
_classCallCheck(this, AjunaPaseo);
|
|
9779
9960
|
return _callSuper(this, AjunaPaseo, ['AjunaPaseo', 'Ajuna(paseo)', 'Paseo', Version.V5]);
|
|
9780
9961
|
}
|
|
9781
|
-
_inherits(AjunaPaseo,
|
|
9782
|
-
return _createClass(AjunaPaseo
|
|
9783
|
-
|
|
9784
|
-
value: function transferPolkadotXCM(input) {
|
|
9785
|
-
var scenario = input.scenario,
|
|
9786
|
-
asset = input.assetInfo;
|
|
9787
|
-
if (scenario !== 'ParaToPara') {
|
|
9788
|
-
throw new ScenarioNotSupportedError({
|
|
9789
|
-
chain: this.chain,
|
|
9790
|
-
scenario: scenario
|
|
9791
|
-
});
|
|
9792
|
-
}
|
|
9793
|
-
if (asset.symbol !== this.getNativeAssetSymbol()) {
|
|
9794
|
-
throw new InvalidCurrencyError("Asset ".concat(asset.symbol, " is not supported by chain ").concat(this.chain, "."));
|
|
9795
|
-
}
|
|
9796
|
-
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
9797
|
-
}
|
|
9798
|
-
}, {
|
|
9799
|
-
key: "transferRelayToPara",
|
|
9800
|
-
value: function transferRelayToPara() {
|
|
9801
|
-
throw new ScenarioNotSupportedError({
|
|
9802
|
-
chain: this.chain,
|
|
9803
|
-
scenario: 'RelayToPara'
|
|
9804
|
-
});
|
|
9805
|
-
}
|
|
9806
|
-
}]);
|
|
9807
|
-
}(Parachain);
|
|
9962
|
+
_inherits(AjunaPaseo, _Ajuna);
|
|
9963
|
+
return _createClass(AjunaPaseo);
|
|
9964
|
+
}(Ajuna);
|
|
9808
9965
|
|
|
9809
9966
|
var Altair = /*#__PURE__*/function (_Parachain) {
|
|
9810
9967
|
function Altair() {
|
|
@@ -9902,29 +10059,12 @@ var AssetHubKusama = /*#__PURE__*/function (_Parachain) {
|
|
|
9902
10059
|
return _createClass(AssetHubKusama, [{
|
|
9903
10060
|
key: "transferPolkadotXCM",
|
|
9904
10061
|
value: function transferPolkadotXCM(input) {
|
|
9905
|
-
var
|
|
9906
|
-
asset = input.assetInfo,
|
|
10062
|
+
var asset = input.assetInfo,
|
|
9907
10063
|
scenario = input.scenario;
|
|
9908
|
-
|
|
9909
|
-
// TESTED https://kusama.subscan.io/xcm_message/kusama-8e423130a4d8b61679af95dbea18a55124f99672
|
|
9910
|
-
if (scenario === 'ParaToPara' && asset.symbol === 'DOT' && asset.isNative) {
|
|
10064
|
+
if (scenario === 'ParaToPara' && asset.symbol === 'DOT' && asset.assetId === undefined) {
|
|
9911
10065
|
throw new ScenarioNotSupportedError('Bridged DOT cannot currently be transfered from AssetHubKusama, if you are sending different DOT asset, please specify {id: <DOTID>}.');
|
|
9912
10066
|
}
|
|
9913
|
-
|
|
9914
|
-
return transferPolkadotXcm(input, method, 'Unlimited');
|
|
9915
|
-
}
|
|
9916
|
-
}, {
|
|
9917
|
-
key: "getMethod",
|
|
9918
|
-
value: function getMethod(scenario, destination) {
|
|
9919
|
-
var isTrusted = !isTLocation(destination) && isTrustedChain(destination);
|
|
9920
|
-
return scenario === 'ParaToPara' && !isTrusted ? 'limited_reserve_transfer_assets' : 'limited_teleport_assets';
|
|
9921
|
-
}
|
|
9922
|
-
}, {
|
|
9923
|
-
key: "getRelayToParaOverrides",
|
|
9924
|
-
value: function getRelayToParaOverrides() {
|
|
9925
|
-
return {
|
|
9926
|
-
transferType: 'teleport'
|
|
9927
|
-
};
|
|
10067
|
+
return transferPolkadotXcm(input);
|
|
9928
10068
|
}
|
|
9929
10069
|
}, {
|
|
9930
10070
|
key: "transferLocalNonNativeAsset",
|
|
@@ -10854,39 +10994,23 @@ var AssetHubPolkadot = /*#__PURE__*/function (_Parachain) {
|
|
|
10854
10994
|
key: "handleEthBridgeNativeTransfer",
|
|
10855
10995
|
value: function () {
|
|
10856
10996
|
var _handleEthBridgeNativeTransfer = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(input) {
|
|
10857
|
-
var api, version, destination, senderAddress, address, paraIdTo, asset,
|
|
10997
|
+
var api, version, destination, senderAddress, address, paraIdTo, asset, messageId, location, call;
|
|
10858
10998
|
return _regenerator().w(function (_context) {
|
|
10859
10999
|
while (1) switch (_context.n) {
|
|
10860
11000
|
case 0:
|
|
10861
11001
|
api = input.api, version = input.version, destination = input.destination, senderAddress = input.senderAddress, address = input.address, paraIdTo = input.paraIdTo, asset = input.assetInfo;
|
|
10862
|
-
_context.n = 1;
|
|
10863
|
-
return getBridgeStatus(api.clone());
|
|
10864
|
-
case 1:
|
|
10865
|
-
bridgeStatus = _context.v;
|
|
10866
|
-
if (!(bridgeStatus !== 'Normal')) {
|
|
10867
|
-
_context.n = 2;
|
|
10868
|
-
break;
|
|
10869
|
-
}
|
|
10870
|
-
throw new BridgeHaltedError();
|
|
10871
|
-
case 2:
|
|
10872
11002
|
assertSenderAddress(senderAddress);
|
|
10873
|
-
if (!isTLocation(address)) {
|
|
10874
|
-
_context.n = 3;
|
|
10875
|
-
break;
|
|
10876
|
-
}
|
|
10877
|
-
throw new InvalidAddressError('Location address is not supported for Ethereum transfers');
|
|
10878
|
-
case 3:
|
|
10879
11003
|
assertHasLocation(asset);
|
|
10880
|
-
_context.n =
|
|
10881
|
-
return generateMessageId(api, senderAddress, getParaId(this.chain), JSON.stringify(asset.location), address, asset.amount);
|
|
10882
|
-
case
|
|
11004
|
+
_context.n = 1;
|
|
11005
|
+
return generateMessageId(api, senderAddress, getParaId(this.chain), JSON.stringify(asset.location), JSON.stringify(address), asset.amount);
|
|
11006
|
+
case 1:
|
|
10883
11007
|
messageId = _context.v;
|
|
10884
11008
|
location = asset.symbol === this.getNativeAssetSymbol() ? DOT_LOCATION : asset.location;
|
|
10885
11009
|
call = {
|
|
10886
11010
|
module: 'PolkadotXcm',
|
|
10887
11011
|
method: 'transfer_assets_using_type_and_then',
|
|
10888
11012
|
params: {
|
|
10889
|
-
dest: createVersionedDestination(this.version, this.chain, destination, paraIdTo,
|
|
11013
|
+
dest: createVersionedDestination(this.version, this.chain, destination, paraIdTo, getEthereumJunction(this.chain), Parents.TWO),
|
|
10890
11014
|
assets: addXcmVersionHeader([createAsset(version, asset.amount, location)], version),
|
|
10891
11015
|
assets_transfer_type: 'LocalReserve',
|
|
10892
11016
|
remote_fees_id: addXcmVersionHeader(location, version),
|
|
@@ -10902,212 +11026,69 @@ var AssetHubPolkadot = /*#__PURE__*/function (_Parachain) {
|
|
|
10902
11026
|
api: api,
|
|
10903
11027
|
address: address,
|
|
10904
11028
|
version: version
|
|
10905
|
-
})
|
|
10906
|
-
}
|
|
10907
|
-
}, {
|
|
10908
|
-
SetTopic: messageId
|
|
10909
|
-
}], version),
|
|
10910
|
-
weight_limit: 'Unlimited'
|
|
10911
|
-
}
|
|
10912
|
-
};
|
|
10913
|
-
return _context.a(2, api.deserializeExtrinsics(call));
|
|
10914
|
-
}
|
|
10915
|
-
}, _callee, this);
|
|
10916
|
-
}));
|
|
10917
|
-
function handleEthBridgeNativeTransfer(_x) {
|
|
10918
|
-
return _handleEthBridgeNativeTransfer.apply(this, arguments);
|
|
10919
|
-
}
|
|
10920
|
-
return handleEthBridgeNativeTransfer;
|
|
10921
|
-
}()
|
|
10922
|
-
}, {
|
|
10923
|
-
key: "handleEthBridgeTransfer",
|
|
10924
|
-
value: function () {
|
|
10925
|
-
var _handleEthBridgeTransfer = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(input) {
|
|
10926
|
-
var api, destination, paraIdTo, address, asset, version, bridgeStatus, modifiedInput;
|
|
10927
|
-
return _regenerator().w(function (_context2) {
|
|
10928
|
-
while (1) switch (_context2.n) {
|
|
10929
|
-
case 0:
|
|
10930
|
-
api = input.api, destination = input.destination, paraIdTo = input.paraIdTo, address = input.address, asset = input.assetInfo, version = input.version;
|
|
10931
|
-
_context2.n = 1;
|
|
10932
|
-
return getBridgeStatus(api.clone());
|
|
10933
|
-
case 1:
|
|
10934
|
-
bridgeStatus = _context2.v;
|
|
10935
|
-
if (!(bridgeStatus !== 'Normal')) {
|
|
10936
|
-
_context2.n = 2;
|
|
10937
|
-
break;
|
|
10938
|
-
}
|
|
10939
|
-
throw new BridgeHaltedError();
|
|
10940
|
-
case 2:
|
|
10941
|
-
assertHasLocation(asset);
|
|
10942
|
-
if (!(asset.symbol === this.getNativeAssetSymbol() || asset.symbol === getNativeAssetSymbol('Kusama'))) {
|
|
10943
|
-
_context2.n = 3;
|
|
10944
|
-
break;
|
|
10945
|
-
}
|
|
10946
|
-
return _context2.a(2, this.handleEthBridgeNativeTransfer(input));
|
|
10947
|
-
case 3:
|
|
10948
|
-
modifiedInput = _objectSpread2(_objectSpread2({}, input), {}, {
|
|
10949
|
-
destLocation: createDestination(this.version, this.chain, destination, paraIdTo, ETHEREUM_JUNCTION, Parents.TWO),
|
|
10950
|
-
beneficiaryLocation: createBeneficiaryLocation({
|
|
10951
|
-
api: api,
|
|
10952
|
-
address: address,
|
|
10953
|
-
version: this.version
|
|
10954
|
-
}),
|
|
10955
|
-
asset: createAsset(version, asset.amount, asset.location)
|
|
10956
|
-
});
|
|
10957
|
-
return _context2.a(2, transferPolkadotXcm(modifiedInput, 'transfer_assets', 'Unlimited'));
|
|
11029
|
+
})
|
|
11030
|
+
}
|
|
11031
|
+
}, {
|
|
11032
|
+
SetTopic: messageId
|
|
11033
|
+
}], version),
|
|
11034
|
+
weight_limit: 'Unlimited'
|
|
11035
|
+
}
|
|
11036
|
+
};
|
|
11037
|
+
return _context.a(2, api.deserializeExtrinsics(call));
|
|
10958
11038
|
}
|
|
10959
|
-
},
|
|
11039
|
+
}, _callee, this);
|
|
10960
11040
|
}));
|
|
10961
|
-
function
|
|
10962
|
-
return
|
|
11041
|
+
function handleEthBridgeNativeTransfer(_x) {
|
|
11042
|
+
return _handleEthBridgeNativeTransfer.apply(this, arguments);
|
|
10963
11043
|
}
|
|
10964
|
-
return
|
|
11044
|
+
return handleEthBridgeNativeTransfer;
|
|
10965
11045
|
}()
|
|
10966
|
-
}, {
|
|
10967
|
-
key: "handleMythosTransfer",
|
|
10968
|
-
value: function handleMythosTransfer(input) {
|
|
10969
|
-
var api = input.api,
|
|
10970
|
-
address = input.address,
|
|
10971
|
-
asset = input.assetInfo,
|
|
10972
|
-
destination = input.destination,
|
|
10973
|
-
paraIdTo = input.paraIdTo,
|
|
10974
|
-
version = input.version;
|
|
10975
|
-
var paraId = resolveParaId(paraIdTo, destination);
|
|
10976
|
-
var customLocation = {
|
|
10977
|
-
parents: Parents.ONE,
|
|
10978
|
-
interior: {
|
|
10979
|
-
X1: {
|
|
10980
|
-
Parachain: paraId
|
|
10981
|
-
}
|
|
10982
|
-
}
|
|
10983
|
-
};
|
|
10984
|
-
var modifiedInput = _objectSpread2(_objectSpread2({}, input), {}, {
|
|
10985
|
-
destLocation: createDestination(version, this.chain, destination, paraId),
|
|
10986
|
-
beneficiaryLocation: createBeneficiaryLocation({
|
|
10987
|
-
api: api,
|
|
10988
|
-
address: address,
|
|
10989
|
-
version: version
|
|
10990
|
-
}),
|
|
10991
|
-
asset: createAsset(version, asset.amount, customLocation)
|
|
10992
|
-
});
|
|
10993
|
-
return transferPolkadotXcm(modifiedInput, 'limited_teleport_assets', 'Unlimited');
|
|
10994
|
-
}
|
|
10995
|
-
}, {
|
|
10996
|
-
key: "patchInput",
|
|
10997
|
-
value: function patchInput(input) {
|
|
10998
|
-
var assetInfo = input.assetInfo,
|
|
10999
|
-
destination = input.destination,
|
|
11000
|
-
version = input.version;
|
|
11001
|
-
// TODO: Refactor this
|
|
11002
|
-
if ((destination === 'Hydration' || destination === 'Moonbeam' || destination === 'BifrostPolkadot') && assetInfo.symbol === this.getNativeAssetSymbol()) {
|
|
11003
|
-
return _objectSpread2(_objectSpread2({}, input), {}, {
|
|
11004
|
-
asset: createAsset(version, assetInfo.amount, DOT_LOCATION)
|
|
11005
|
-
});
|
|
11006
|
-
}
|
|
11007
|
-
return input;
|
|
11008
|
-
}
|
|
11009
|
-
}, {
|
|
11010
|
-
key: "getMethod",
|
|
11011
|
-
value: function getMethod(scenario, destination) {
|
|
11012
|
-
var isTrusted = !isTLocation(destination) && isTrustedChain(destination);
|
|
11013
|
-
if (destination === 'Moonbeam' || typeof destination === 'string' && destination.startsWith('Integritee')) return 'transfer_assets';
|
|
11014
|
-
return scenario === 'ParaToPara' && !isTrusted ? 'limited_reserve_transfer_assets' : 'limited_teleport_assets';
|
|
11015
|
-
}
|
|
11016
11046
|
}, {
|
|
11017
11047
|
key: "transferPolkadotXCM",
|
|
11018
11048
|
value: function () {
|
|
11019
|
-
var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
11020
|
-
var api,
|
|
11021
|
-
return _regenerator().w(function (
|
|
11022
|
-
while (1) switch (
|
|
11049
|
+
var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options) {
|
|
11050
|
+
var api, assetInfo, feeAssetInfo, overriddenAsset, isNativeAsset, isNativeFeeAsset, _t;
|
|
11051
|
+
return _regenerator().w(function (_context2) {
|
|
11052
|
+
while (1) switch (_context2.n) {
|
|
11023
11053
|
case 0:
|
|
11024
|
-
api = options.api,
|
|
11054
|
+
api = options.api, assetInfo = options.assetInfo, feeAssetInfo = options.feeAssetInfo, overriddenAsset = options.overriddenAsset;
|
|
11025
11055
|
if (!feeAssetInfo) {
|
|
11026
|
-
|
|
11056
|
+
_context2.n = 4;
|
|
11027
11057
|
break;
|
|
11028
11058
|
}
|
|
11029
11059
|
if (!overriddenAsset) {
|
|
11030
|
-
|
|
11060
|
+
_context2.n = 1;
|
|
11031
11061
|
break;
|
|
11032
11062
|
}
|
|
11033
11063
|
throw new InvalidCurrencyError('Cannot use overridden multi-assets with XCM execute');
|
|
11034
11064
|
case 1:
|
|
11035
11065
|
if (!isSymbolMatch(assetInfo.symbol, 'KSM')) {
|
|
11036
|
-
|
|
11066
|
+
_context2.n = 2;
|
|
11037
11067
|
break;
|
|
11038
11068
|
}
|
|
11039
|
-
|
|
11040
|
-
return createTypeAndThenCall(this.chain, options);
|
|
11069
|
+
return _context2.a(2, transferPolkadotXcm(options));
|
|
11041
11070
|
case 2:
|
|
11042
|
-
call = _context3.v;
|
|
11043
|
-
return _context3.a(2, api.deserializeExtrinsics(call));
|
|
11044
|
-
case 3:
|
|
11045
11071
|
isNativeAsset = isSymbolMatch(assetInfo.symbol, this.getNativeAssetSymbol());
|
|
11046
11072
|
isNativeFeeAsset = isSymbolMatch(feeAssetInfo.symbol, this.getNativeAssetSymbol());
|
|
11047
11073
|
if (!(!isNativeAsset || !isNativeFeeAsset)) {
|
|
11048
|
-
|
|
11074
|
+
_context2.n = 4;
|
|
11049
11075
|
break;
|
|
11050
11076
|
}
|
|
11051
11077
|
_t = api;
|
|
11052
|
-
|
|
11078
|
+
_context2.n = 3;
|
|
11053
11079
|
return handleExecuteTransfer(this.chain, options);
|
|
11080
|
+
case 3:
|
|
11081
|
+
return _context2.a(2, _t.deserializeExtrinsics.call(_t, _context2.v));
|
|
11054
11082
|
case 4:
|
|
11055
|
-
return
|
|
11056
|
-
case 5:
|
|
11057
|
-
if (!(destination === 'Ethereum')) {
|
|
11058
|
-
_context3.n = 6;
|
|
11059
|
-
break;
|
|
11060
|
-
}
|
|
11061
|
-
return _context3.a(2, this.handleEthBridgeTransfer(options));
|
|
11062
|
-
case 6:
|
|
11063
|
-
if (!(destination === 'Mythos')) {
|
|
11064
|
-
_context3.n = 7;
|
|
11065
|
-
break;
|
|
11066
|
-
}
|
|
11067
|
-
return _context3.a(2, this.handleMythosTransfer(options));
|
|
11068
|
-
case 7:
|
|
11069
|
-
isExternalAsset = assetInfo.location && assetInfo.location.parents === Parents.TWO;
|
|
11070
|
-
requiresTypeThen = AH_REQUIRES_FEE_ASSET_LOCS.some(function (loc) {
|
|
11071
|
-
return deepEqual(loc, assetInfo.location);
|
|
11072
|
-
});
|
|
11073
|
-
if (!(isExternalAsset || requiresTypeThen)) {
|
|
11074
|
-
_context3.n = 9;
|
|
11075
|
-
break;
|
|
11076
|
-
}
|
|
11077
|
-
_context3.n = 8;
|
|
11078
|
-
return createTypeAndThenCall(this.chain, options);
|
|
11079
|
-
case 8:
|
|
11080
|
-
_call = _context3.v;
|
|
11081
|
-
return _context3.a(2, api.deserializeExtrinsics(_call));
|
|
11082
|
-
case 9:
|
|
11083
|
-
method = this.getMethod(scenario, destination); // Patch transfer_assets to use type_and_then transfer
|
|
11084
|
-
if (!(method === 'transfer_assets' && isSymbolMatch(assetInfo.symbol, getRelayChainSymbol(this.chain)))) {
|
|
11085
|
-
_context3.n = 11;
|
|
11086
|
-
break;
|
|
11087
|
-
}
|
|
11088
|
-
_t2 = api;
|
|
11089
|
-
_context3.n = 10;
|
|
11090
|
-
return createTypeAndThenCall(this.chain, options);
|
|
11091
|
-
case 10:
|
|
11092
|
-
return _context3.a(2, _t2.deserializeExtrinsics.call(_t2, _context3.v));
|
|
11093
|
-
case 11:
|
|
11094
|
-
modifiedInput = this.patchInput(options);
|
|
11095
|
-
return _context3.a(2, transferPolkadotXcm(modifiedInput, method, 'Unlimited'));
|
|
11083
|
+
return _context2.a(2, transferPolkadotXcm(options));
|
|
11096
11084
|
}
|
|
11097
|
-
},
|
|
11085
|
+
}, _callee2, this);
|
|
11098
11086
|
}));
|
|
11099
|
-
function transferPolkadotXCM(
|
|
11087
|
+
function transferPolkadotXCM(_x2) {
|
|
11100
11088
|
return _transferPolkadotXCM.apply(this, arguments);
|
|
11101
11089
|
}
|
|
11102
11090
|
return transferPolkadotXCM;
|
|
11103
11091
|
}()
|
|
11104
|
-
}, {
|
|
11105
|
-
key: "getRelayToParaOverrides",
|
|
11106
|
-
value: function getRelayToParaOverrides() {
|
|
11107
|
-
return {
|
|
11108
|
-
transferType: 'teleport'
|
|
11109
|
-
};
|
|
11110
|
-
}
|
|
11111
11092
|
}, {
|
|
11112
11093
|
key: "transferLocalNonNativeAsset",
|
|
11113
11094
|
value: function transferLocalNonNativeAsset(options) {
|
|
@@ -11199,30 +11180,18 @@ var AssetHubWestend = /*#__PURE__*/function (_AssetHubPolkadot) {
|
|
|
11199
11180
|
|
|
11200
11181
|
var Astar = /*#__PURE__*/function (_Parachain) {
|
|
11201
11182
|
function Astar() {
|
|
11183
|
+
var chain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Astar';
|
|
11184
|
+
var info = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'astar';
|
|
11185
|
+
var ecosystem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Polkadot';
|
|
11186
|
+
var version = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Version.V5;
|
|
11202
11187
|
_classCallCheck(this, Astar);
|
|
11203
|
-
return _callSuper(this, Astar, [
|
|
11188
|
+
return _callSuper(this, Astar, [chain, info, ecosystem, version]);
|
|
11204
11189
|
}
|
|
11205
11190
|
_inherits(Astar, _Parachain);
|
|
11206
11191
|
return _createClass(Astar, [{
|
|
11207
11192
|
key: "transferPolkadotXCM",
|
|
11208
11193
|
value: function transferPolkadotXCM(input) {
|
|
11209
|
-
return transferPolkadotXcm(input, '
|
|
11210
|
-
}
|
|
11211
|
-
}, {
|
|
11212
|
-
key: "transferXTokens",
|
|
11213
|
-
value: function transferXTokens$1(input) {
|
|
11214
|
-
var asset = input.asset;
|
|
11215
|
-
if (asset.isNative) {
|
|
11216
|
-
return transferXTokens(input, undefined);
|
|
11217
|
-
}
|
|
11218
|
-
assertHasId(asset);
|
|
11219
|
-
return transferXTokens(input, BigInt(asset.assetId));
|
|
11220
|
-
}
|
|
11221
|
-
}, {
|
|
11222
|
-
key: "canUseXTokens",
|
|
11223
|
-
value: function canUseXTokens(_ref) {
|
|
11224
|
-
var assetInfo = _ref.assetInfo;
|
|
11225
|
-
return assetInfo.symbol !== this.getNativeAssetSymbol();
|
|
11194
|
+
return transferPolkadotXcm(input, 'transfer_assets_using_type_and_then');
|
|
11226
11195
|
}
|
|
11227
11196
|
}, {
|
|
11228
11197
|
key: "transferRelayToPara",
|
|
@@ -11268,32 +11237,159 @@ var Astar = /*#__PURE__*/function (_Parachain) {
|
|
|
11268
11237
|
}]);
|
|
11269
11238
|
}(Parachain);
|
|
11270
11239
|
|
|
11271
|
-
var
|
|
11272
|
-
function
|
|
11273
|
-
|
|
11274
|
-
|
|
11240
|
+
var Hydration = /*#__PURE__*/function (_Parachain) {
|
|
11241
|
+
function Hydration() {
|
|
11242
|
+
var chain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Hydration';
|
|
11243
|
+
var info = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'hydradx';
|
|
11244
|
+
var ecosystem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Polkadot';
|
|
11245
|
+
var version = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Version.V4;
|
|
11246
|
+
_classCallCheck(this, Hydration);
|
|
11247
|
+
return _callSuper(this, Hydration, [chain, info, ecosystem, version]);
|
|
11275
11248
|
}
|
|
11276
|
-
_inherits(
|
|
11277
|
-
return _createClass(
|
|
11278
|
-
key: "
|
|
11279
|
-
value: function
|
|
11280
|
-
var
|
|
11281
|
-
|
|
11282
|
-
|
|
11249
|
+
_inherits(Hydration, _Parachain);
|
|
11250
|
+
return _createClass(Hydration, [{
|
|
11251
|
+
key: "transferPolkadotXCM",
|
|
11252
|
+
value: function () {
|
|
11253
|
+
var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(input) {
|
|
11254
|
+
var api, destination, feeAsset, asset, overriddenAsset, isMoonbeamWhAsset, isNativeAsset, isNativeFeeAsset, _t;
|
|
11255
|
+
return _regenerator().w(function (_context) {
|
|
11256
|
+
while (1) switch (_context.n) {
|
|
11257
|
+
case 0:
|
|
11258
|
+
api = input.api, destination = input.destination, feeAsset = input.feeAssetInfo, asset = input.assetInfo, overriddenAsset = input.overriddenAsset;
|
|
11259
|
+
if (!(destination === 'Ethereum')) {
|
|
11260
|
+
_context.n = 1;
|
|
11261
|
+
break;
|
|
11262
|
+
}
|
|
11263
|
+
return _context.a(2, this.transferToEthereum(input));
|
|
11264
|
+
case 1:
|
|
11265
|
+
isMoonbeamWhAsset = asset.location && hasJunction(asset.location, 'Parachain', getParaId('Moonbeam')) && hasJunction(asset.location, 'PalletInstance', 110);
|
|
11266
|
+
if (!(isMoonbeamWhAsset && destination === 'Moonbeam')) {
|
|
11267
|
+
_context.n = 2;
|
|
11268
|
+
break;
|
|
11269
|
+
}
|
|
11270
|
+
return _context.a(2, this.transferMoonbeamWhAsset(input));
|
|
11271
|
+
case 2:
|
|
11272
|
+
if (!feeAsset) {
|
|
11273
|
+
_context.n = 5;
|
|
11274
|
+
break;
|
|
11275
|
+
}
|
|
11276
|
+
if (!overriddenAsset) {
|
|
11277
|
+
_context.n = 3;
|
|
11278
|
+
break;
|
|
11279
|
+
}
|
|
11280
|
+
throw new InvalidCurrencyError('Cannot use overridden assets with XCM execute');
|
|
11281
|
+
case 3:
|
|
11282
|
+
isNativeAsset = isSymbolMatch(asset.symbol, this.getNativeAssetSymbol());
|
|
11283
|
+
isNativeFeeAsset = isSymbolMatch(feeAsset.symbol, this.getNativeAssetSymbol());
|
|
11284
|
+
if (!(!isNativeAsset || !isNativeFeeAsset)) {
|
|
11285
|
+
_context.n = 5;
|
|
11286
|
+
break;
|
|
11287
|
+
}
|
|
11288
|
+
_t = api;
|
|
11289
|
+
_context.n = 4;
|
|
11290
|
+
return handleExecuteTransfer(this.chain, input);
|
|
11291
|
+
case 4:
|
|
11292
|
+
return _context.a(2, _t.deserializeExtrinsics.call(_t, _context.v));
|
|
11293
|
+
case 5:
|
|
11294
|
+
return _context.a(2, transferPolkadotXcm(input));
|
|
11295
|
+
}
|
|
11296
|
+
}, _callee, this);
|
|
11297
|
+
}));
|
|
11298
|
+
function transferPolkadotXCM(_x) {
|
|
11299
|
+
return _transferPolkadotXCM.apply(this, arguments);
|
|
11300
|
+
}
|
|
11301
|
+
return transferPolkadotXCM;
|
|
11302
|
+
}()
|
|
11303
|
+
}, {
|
|
11304
|
+
key: "transferMoonbeamWhAsset",
|
|
11305
|
+
value: function transferMoonbeamWhAsset(input) {
|
|
11306
|
+
var assetInfo = input.assetInfo,
|
|
11307
|
+
version = input.version;
|
|
11308
|
+
assertHasLocation(assetInfo);
|
|
11309
|
+
var glmr = findAssetInfoOrThrow(this.chain, {
|
|
11310
|
+
symbol: getNativeAssetSymbol('Moonbeam')
|
|
11311
|
+
}, null);
|
|
11312
|
+
var FEE_AMOUNT = 80000000000000000n; // 0.08 GLMR
|
|
11313
|
+
assertHasLocation(glmr);
|
|
11314
|
+
return transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
|
|
11315
|
+
overriddenAsset: [_objectSpread2(_objectSpread2({}, createAsset(version, FEE_AMOUNT, glmr.location)), {}, {
|
|
11316
|
+
isFeeAsset: true
|
|
11317
|
+
}), createAsset(version, assetInfo.amount, assetInfo.location)]
|
|
11318
|
+
}));
|
|
11283
11319
|
}
|
|
11284
11320
|
}, {
|
|
11285
11321
|
key: "transferLocalNativeAsset",
|
|
11286
11322
|
value: function transferLocalNativeAsset(options) {
|
|
11287
|
-
|
|
11323
|
+
var api = options.api,
|
|
11324
|
+
asset = options.assetInfo,
|
|
11325
|
+
address = options.address,
|
|
11326
|
+
isAmountAll = options.isAmountAll;
|
|
11327
|
+
if (isAmountAll) {
|
|
11328
|
+
return Promise.resolve(api.deserializeExtrinsics({
|
|
11329
|
+
module: 'Balances',
|
|
11330
|
+
method: 'transfer_all',
|
|
11331
|
+
params: {
|
|
11332
|
+
dest: address,
|
|
11333
|
+
keep_alive: false
|
|
11334
|
+
}
|
|
11335
|
+
}));
|
|
11336
|
+
}
|
|
11337
|
+
return Promise.resolve(api.deserializeExtrinsics({
|
|
11338
|
+
module: 'Balances',
|
|
11339
|
+
method: 'transfer_keep_alive',
|
|
11340
|
+
params: {
|
|
11341
|
+
dest: address,
|
|
11342
|
+
value: asset.amount
|
|
11343
|
+
}
|
|
11344
|
+
}));
|
|
11288
11345
|
}
|
|
11289
11346
|
}, {
|
|
11290
11347
|
key: "transferLocalNonNativeAsset",
|
|
11291
11348
|
value: function transferLocalNonNativeAsset(options) {
|
|
11292
|
-
|
|
11349
|
+
var api = options.api,
|
|
11350
|
+
asset = options.assetInfo,
|
|
11351
|
+
address = options.address,
|
|
11352
|
+
isAmountAll = options.isAmountAll;
|
|
11353
|
+
assertHasId(asset);
|
|
11354
|
+
var currencyId = Number(asset.assetId);
|
|
11355
|
+
if (isAmountAll) {
|
|
11356
|
+
return api.deserializeExtrinsics({
|
|
11357
|
+
module: 'Tokens',
|
|
11358
|
+
method: 'transfer_all',
|
|
11359
|
+
params: {
|
|
11360
|
+
dest: address,
|
|
11361
|
+
currency_id: currencyId,
|
|
11362
|
+
keep_alive: false
|
|
11363
|
+
}
|
|
11364
|
+
});
|
|
11365
|
+
}
|
|
11366
|
+
return api.deserializeExtrinsics({
|
|
11367
|
+
module: 'Tokens',
|
|
11368
|
+
method: 'transfer',
|
|
11369
|
+
params: {
|
|
11370
|
+
dest: address,
|
|
11371
|
+
currency_id: currencyId,
|
|
11372
|
+
amount: asset.amount
|
|
11373
|
+
}
|
|
11374
|
+
});
|
|
11293
11375
|
}
|
|
11294
11376
|
}]);
|
|
11295
11377
|
}(Parachain);
|
|
11296
11378
|
|
|
11379
|
+
var Basilisk = /*#__PURE__*/function (_Hydration) {
|
|
11380
|
+
function Basilisk() {
|
|
11381
|
+
_classCallCheck(this, Basilisk);
|
|
11382
|
+
return _callSuper(this, Basilisk, ['Basilisk', 'basilisk', 'Kusama', Version.V5]);
|
|
11383
|
+
}
|
|
11384
|
+
_inherits(Basilisk, _Hydration);
|
|
11385
|
+
return _createClass(Basilisk, [{
|
|
11386
|
+
key: "transferPolkadotXCM",
|
|
11387
|
+
value: function transferPolkadotXCM(input) {
|
|
11388
|
+
return transferPolkadotXcm(input);
|
|
11389
|
+
}
|
|
11390
|
+
}]);
|
|
11391
|
+
}(Hydration);
|
|
11392
|
+
|
|
11297
11393
|
var BifrostPolkadot = /*#__PURE__*/function (_Parachain) {
|
|
11298
11394
|
function BifrostPolkadot() {
|
|
11299
11395
|
var chain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'BifrostPolkadot';
|
|
@@ -11334,13 +11430,6 @@ var BifrostPolkadot = /*#__PURE__*/function (_Parachain) {
|
|
|
11334
11430
|
Token2: id
|
|
11335
11431
|
};
|
|
11336
11432
|
}
|
|
11337
|
-
}, {
|
|
11338
|
-
key: "transferXTokens",
|
|
11339
|
-
value: function transferXTokens$1(input) {
|
|
11340
|
-
var asset = input.asset;
|
|
11341
|
-
var currencySelection = this.getCustomCurrencyId(asset);
|
|
11342
|
-
return transferXTokens(input, currencySelection);
|
|
11343
|
-
}
|
|
11344
11433
|
}, {
|
|
11345
11434
|
key: "transferPolkadotXCM",
|
|
11346
11435
|
value: function transferPolkadotXCM(options) {
|
|
@@ -11348,17 +11437,7 @@ var BifrostPolkadot = /*#__PURE__*/function (_Parachain) {
|
|
|
11348
11437
|
if (destination === 'Ethereum') {
|
|
11349
11438
|
return this.transferToEthereum(options);
|
|
11350
11439
|
}
|
|
11351
|
-
return transferPolkadotXcm(options
|
|
11352
|
-
}
|
|
11353
|
-
}, {
|
|
11354
|
-
key: "canUseXTokens",
|
|
11355
|
-
value: function canUseXTokens(_ref) {
|
|
11356
|
-
var assetInfo = _ref.assetInfo,
|
|
11357
|
-
destination = _ref.to;
|
|
11358
|
-
var isEthAsset = assetInfo.location && findAssetInfoByLoc(getOtherAssets('Ethereum'), assetInfo.location);
|
|
11359
|
-
if (isEthAsset) return false;
|
|
11360
|
-
if (destination === 'Ethereum') return false;
|
|
11361
|
-
return assetInfo.symbol !== 'WETH' && assetInfo.symbol !== 'DOT' || destination !== 'AssetHubPolkadot';
|
|
11440
|
+
return transferPolkadotXcm(options);
|
|
11362
11441
|
}
|
|
11363
11442
|
}, {
|
|
11364
11443
|
key: "transferLocalNonNativeAsset",
|
|
@@ -11426,15 +11505,7 @@ var BridgeHubKusama = /*#__PURE__*/function (_Parachain) {
|
|
|
11426
11505
|
if (scenario === 'ParaToPara') {
|
|
11427
11506
|
throw new ScenarioNotSupportedError('Unable to use bridge hub for transfers to other Parachains. Please move your currency to AssetHub to transfer to other Parachains.');
|
|
11428
11507
|
}
|
|
11429
|
-
|
|
11430
|
-
return transferPolkadotXcm(input, method, 'Unlimited');
|
|
11431
|
-
}
|
|
11432
|
-
}, {
|
|
11433
|
-
key: "getRelayToParaOverrides",
|
|
11434
|
-
value: function getRelayToParaOverrides() {
|
|
11435
|
-
return {
|
|
11436
|
-
transferType: 'teleport'
|
|
11437
|
-
};
|
|
11508
|
+
return transferPolkadotXcm(input);
|
|
11438
11509
|
}
|
|
11439
11510
|
}]);
|
|
11440
11511
|
}(Parachain);
|
|
@@ -11457,14 +11528,7 @@ var BridgeHubPolkadot = /*#__PURE__*/function (_Parachain) {
|
|
|
11457
11528
|
if (scenario === 'ParaToPara' && !(destChain !== null && destChain !== void 0 && destChain.startsWith('AssetHub'))) {
|
|
11458
11529
|
throw new ScenarioNotSupportedError("Unable to use ".concat(this.chain, " for transfers to other Parachains."));
|
|
11459
11530
|
}
|
|
11460
|
-
return transferPolkadotXcm(input
|
|
11461
|
-
}
|
|
11462
|
-
}, {
|
|
11463
|
-
key: "getRelayToParaOverrides",
|
|
11464
|
-
value: function getRelayToParaOverrides() {
|
|
11465
|
-
return {
|
|
11466
|
-
transferType: 'teleport'
|
|
11467
|
-
};
|
|
11531
|
+
return transferPolkadotXcm(input);
|
|
11468
11532
|
}
|
|
11469
11533
|
}]);
|
|
11470
11534
|
}(Parachain);
|
|
@@ -11562,14 +11626,7 @@ var Collectives = /*#__PURE__*/function (_Parachain) {
|
|
|
11562
11626
|
if (scenario === 'ParaToPara' && !(destChain !== null && destChain !== void 0 && destChain.startsWith('AssetHub'))) {
|
|
11563
11627
|
throw new ScenarioNotSupportedError("Unable to use ".concat(this.chain, " for transfers to other Parachains."));
|
|
11564
11628
|
}
|
|
11565
|
-
return transferPolkadotXcm(input
|
|
11566
|
-
}
|
|
11567
|
-
}, {
|
|
11568
|
-
key: "getRelayToParaOverrides",
|
|
11569
|
-
value: function getRelayToParaOverrides() {
|
|
11570
|
-
return {
|
|
11571
|
-
transferType: 'teleport'
|
|
11572
|
-
};
|
|
11629
|
+
return transferPolkadotXcm(input);
|
|
11573
11630
|
}
|
|
11574
11631
|
}]);
|
|
11575
11632
|
}(Parachain);
|
|
@@ -11599,14 +11656,7 @@ var CoretimeKusama = /*#__PURE__*/function (_Parachain) {
|
|
|
11599
11656
|
scenario: scenario
|
|
11600
11657
|
});
|
|
11601
11658
|
}
|
|
11602
|
-
return transferPolkadotXcm(input
|
|
11603
|
-
}
|
|
11604
|
-
}, {
|
|
11605
|
-
key: "getRelayToParaOverrides",
|
|
11606
|
-
value: function getRelayToParaOverrides() {
|
|
11607
|
-
return {
|
|
11608
|
-
transferType: 'teleport'
|
|
11609
|
-
};
|
|
11659
|
+
return transferPolkadotXcm(input);
|
|
11610
11660
|
}
|
|
11611
11661
|
}]);
|
|
11612
11662
|
}(Parachain);
|
|
@@ -11631,20 +11681,13 @@ var CoretimePolkadot = /*#__PURE__*/function (_Parachain) {
|
|
|
11631
11681
|
scenario: scenario
|
|
11632
11682
|
});
|
|
11633
11683
|
}
|
|
11634
|
-
return transferPolkadotXcm(input
|
|
11684
|
+
return transferPolkadotXcm(input);
|
|
11635
11685
|
}
|
|
11636
11686
|
}, {
|
|
11637
11687
|
key: "canReceiveFrom",
|
|
11638
11688
|
value: function canReceiveFrom(origin) {
|
|
11639
11689
|
return origin !== 'Hydration' && origin !== 'Moonbeam';
|
|
11640
11690
|
}
|
|
11641
|
-
}, {
|
|
11642
|
-
key: "getRelayToParaOverrides",
|
|
11643
|
-
value: function getRelayToParaOverrides() {
|
|
11644
|
-
return {
|
|
11645
|
-
transferType: 'teleport'
|
|
11646
|
-
};
|
|
11647
|
-
}
|
|
11648
11691
|
}]);
|
|
11649
11692
|
}(Parachain);
|
|
11650
11693
|
|
|
@@ -11675,9 +11718,7 @@ var Crab = /*#__PURE__*/function (_Parachain) {
|
|
|
11675
11718
|
return _createClass(Crab, [{
|
|
11676
11719
|
key: "transferPolkadotXCM",
|
|
11677
11720
|
value: function transferPolkadotXCM(input) {
|
|
11678
|
-
if (input.scenario === 'ParaToPara')
|
|
11679
|
-
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
11680
|
-
}
|
|
11721
|
+
if (input.scenario === 'ParaToPara') return transferPolkadotXcm(input);
|
|
11681
11722
|
throw new ScenarioNotSupportedError({
|
|
11682
11723
|
chain: this.chain,
|
|
11683
11724
|
scenario: input.scenario
|
|
@@ -11708,9 +11749,7 @@ var Crust = /*#__PURE__*/function (_Parachain) {
|
|
|
11708
11749
|
return _createClass(Crust, [{
|
|
11709
11750
|
key: "getCurrencySelection",
|
|
11710
11751
|
value: function getCurrencySelection(asset) {
|
|
11711
|
-
if (asset.isNative)
|
|
11712
|
-
return 'SelfReserve';
|
|
11713
|
-
}
|
|
11752
|
+
if (asset.isNative) return 'SelfReserve';
|
|
11714
11753
|
assertHasId(asset);
|
|
11715
11754
|
return {
|
|
11716
11755
|
OtherReserve: BigInt(asset.assetId)
|
|
@@ -11843,7 +11882,7 @@ var Darwinia = /*#__PURE__*/function (_Parachain) {
|
|
|
11843
11882
|
scenario: scenario
|
|
11844
11883
|
});
|
|
11845
11884
|
}
|
|
11846
|
-
return transferPolkadotXcm(input
|
|
11885
|
+
return transferPolkadotXcm(input);
|
|
11847
11886
|
}
|
|
11848
11887
|
}, {
|
|
11849
11888
|
key: "transferLocalNonNativeAsset",
|
|
@@ -11888,23 +11927,14 @@ var Encointer = /*#__PURE__*/function (_Parachain) {
|
|
|
11888
11927
|
key: "transferPolkadotXCM",
|
|
11889
11928
|
value: function transferPolkadotXCM(input) {
|
|
11890
11929
|
var destChain = input.destChain;
|
|
11891
|
-
// NO PARA TO PARA SCENARIOS ON SUBSCAN
|
|
11892
|
-
// TESTED https://encointer.subscan.io/xcm_message/kusama-418501e86e947b16c4e4e9040694017e64f9b162
|
|
11893
11930
|
if (input.scenario === 'ParaToRelay' || destChain && isTrustedChain(destChain)) {
|
|
11894
|
-
return transferPolkadotXcm(input
|
|
11931
|
+
return transferPolkadotXcm(input);
|
|
11895
11932
|
}
|
|
11896
11933
|
throw new ScenarioNotSupportedError({
|
|
11897
11934
|
chain: this.chain,
|
|
11898
11935
|
scenario: input.scenario
|
|
11899
11936
|
});
|
|
11900
11937
|
}
|
|
11901
|
-
}, {
|
|
11902
|
-
key: "getRelayToParaOverrides",
|
|
11903
|
-
value: function getRelayToParaOverrides() {
|
|
11904
|
-
return {
|
|
11905
|
-
transferType: 'teleport'
|
|
11906
|
-
};
|
|
11907
|
-
}
|
|
11908
11938
|
}]);
|
|
11909
11939
|
}(Parachain);
|
|
11910
11940
|
|
|
@@ -11928,7 +11958,7 @@ var EnergyWebX = /*#__PURE__*/function (_Parachain) {
|
|
|
11928
11958
|
scenario: scenario
|
|
11929
11959
|
});
|
|
11930
11960
|
}
|
|
11931
|
-
return transferPolkadotXcm(input, '
|
|
11961
|
+
return transferPolkadotXcm(input, 'reserve_transfer_assets');
|
|
11932
11962
|
}
|
|
11933
11963
|
}, {
|
|
11934
11964
|
key: "transferRelayToPara",
|
|
@@ -12001,7 +12031,7 @@ var Heima = /*#__PURE__*/function (_Parachain) {
|
|
|
12001
12031
|
if (asset.symbol !== this.getNativeAssetSymbol()) {
|
|
12002
12032
|
throw new InvalidCurrencyError("Asset ".concat(asset.symbol, " is not supported by chain ").concat(this.chain, "."));
|
|
12003
12033
|
}
|
|
12004
|
-
return transferPolkadotXcm(input
|
|
12034
|
+
return transferPolkadotXcm(input);
|
|
12005
12035
|
}
|
|
12006
12036
|
}]);
|
|
12007
12037
|
}(Parachain);
|
|
@@ -12015,166 +12045,6 @@ var HeimaPaseo = /*#__PURE__*/function (_Heima) {
|
|
|
12015
12045
|
return _createClass(HeimaPaseo);
|
|
12016
12046
|
}(Heima);
|
|
12017
12047
|
|
|
12018
|
-
var Hydration = /*#__PURE__*/function (_Parachain) {
|
|
12019
|
-
function Hydration() {
|
|
12020
|
-
var chain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Hydration';
|
|
12021
|
-
var info = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'hydradx';
|
|
12022
|
-
var ecosystem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Polkadot';
|
|
12023
|
-
var version = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Version.V4;
|
|
12024
|
-
_classCallCheck(this, Hydration);
|
|
12025
|
-
return _callSuper(this, Hydration, [chain, info, ecosystem, version]);
|
|
12026
|
-
}
|
|
12027
|
-
_inherits(Hydration, _Parachain);
|
|
12028
|
-
return _createClass(Hydration, [{
|
|
12029
|
-
key: "transferPolkadotXCM",
|
|
12030
|
-
value: function () {
|
|
12031
|
-
var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(input) {
|
|
12032
|
-
var api, destination, feeAsset, asset, overriddenAsset, isNativeAsset, isNativeFeeAsset, _t, _t2;
|
|
12033
|
-
return _regenerator().w(function (_context) {
|
|
12034
|
-
while (1) switch (_context.n) {
|
|
12035
|
-
case 0:
|
|
12036
|
-
api = input.api, destination = input.destination, feeAsset = input.feeAssetInfo, asset = input.assetInfo, overriddenAsset = input.overriddenAsset;
|
|
12037
|
-
if (!(destination === 'Ethereum')) {
|
|
12038
|
-
_context.n = 1;
|
|
12039
|
-
break;
|
|
12040
|
-
}
|
|
12041
|
-
return _context.a(2, this.transferToEthereum(input));
|
|
12042
|
-
case 1:
|
|
12043
|
-
if (!feeAsset) {
|
|
12044
|
-
_context.n = 4;
|
|
12045
|
-
break;
|
|
12046
|
-
}
|
|
12047
|
-
if (!overriddenAsset) {
|
|
12048
|
-
_context.n = 2;
|
|
12049
|
-
break;
|
|
12050
|
-
}
|
|
12051
|
-
throw new InvalidCurrencyError('Cannot use overridden assets with XCM execute');
|
|
12052
|
-
case 2:
|
|
12053
|
-
isNativeAsset = isSymbolMatch(asset.symbol, this.getNativeAssetSymbol());
|
|
12054
|
-
isNativeFeeAsset = isSymbolMatch(feeAsset.symbol, this.getNativeAssetSymbol());
|
|
12055
|
-
if (!(!isNativeAsset || !isNativeFeeAsset)) {
|
|
12056
|
-
_context.n = 4;
|
|
12057
|
-
break;
|
|
12058
|
-
}
|
|
12059
|
-
_t = api;
|
|
12060
|
-
_context.n = 3;
|
|
12061
|
-
return handleExecuteTransfer(this.chain, input);
|
|
12062
|
-
case 3:
|
|
12063
|
-
return _context.a(2, _t.deserializeExtrinsics.call(_t, _context.v));
|
|
12064
|
-
case 4:
|
|
12065
|
-
_t2 = api;
|
|
12066
|
-
_context.n = 5;
|
|
12067
|
-
return createTypeAndThenCall(this.chain, input);
|
|
12068
|
-
case 5:
|
|
12069
|
-
return _context.a(2, _t2.deserializeExtrinsics.call(_t2, _context.v));
|
|
12070
|
-
}
|
|
12071
|
-
}, _callee, this);
|
|
12072
|
-
}));
|
|
12073
|
-
function transferPolkadotXCM(_x) {
|
|
12074
|
-
return _transferPolkadotXCM.apply(this, arguments);
|
|
12075
|
-
}
|
|
12076
|
-
return transferPolkadotXCM;
|
|
12077
|
-
}()
|
|
12078
|
-
}, {
|
|
12079
|
-
key: "transferMoonbeamWhAsset",
|
|
12080
|
-
value: function transferMoonbeamWhAsset(input) {
|
|
12081
|
-
var asset = input.asset,
|
|
12082
|
-
version = input.version;
|
|
12083
|
-
assertHasLocation(asset);
|
|
12084
|
-
var glmr = findAssetInfoOrThrow(this.chain, {
|
|
12085
|
-
symbol: getNativeAssetSymbol('Moonbeam')
|
|
12086
|
-
}, null);
|
|
12087
|
-
var FEE_AMOUNT = 80000000000000000n; // 0.08 GLMR
|
|
12088
|
-
assertHasLocation(glmr);
|
|
12089
|
-
return transferXTokens(_objectSpread2(_objectSpread2({}, input), {}, {
|
|
12090
|
-
overriddenAsset: [_objectSpread2(_objectSpread2({}, createAsset(version, FEE_AMOUNT, glmr.location)), {}, {
|
|
12091
|
-
isFeeAsset: true
|
|
12092
|
-
}), createAsset(version, asset.amount, asset.location)]
|
|
12093
|
-
}), Number(asset.assetId));
|
|
12094
|
-
}
|
|
12095
|
-
}, {
|
|
12096
|
-
key: "transferXTokens",
|
|
12097
|
-
value: function transferXTokens$1(input) {
|
|
12098
|
-
var asset = input.asset,
|
|
12099
|
-
destination = input.destination;
|
|
12100
|
-
var isMoonbeamWhAsset = asset.location && hasJunction(asset.location, 'Parachain', getParaId('Moonbeam')) && hasJunction(asset.location, 'PalletInstance', 110);
|
|
12101
|
-
if (isMoonbeamWhAsset && destination === 'Moonbeam') {
|
|
12102
|
-
return this.transferMoonbeamWhAsset(input);
|
|
12103
|
-
}
|
|
12104
|
-
assertHasId(asset);
|
|
12105
|
-
return transferXTokens(input, Number(asset.assetId));
|
|
12106
|
-
}
|
|
12107
|
-
}, {
|
|
12108
|
-
key: "canUseXTokens",
|
|
12109
|
-
value: function canUseXTokens(options) {
|
|
12110
|
-
var destination = options.to,
|
|
12111
|
-
assetInfo = options.assetInfo,
|
|
12112
|
-
feeAsset = options.feeAsset;
|
|
12113
|
-
var baseCanUseXTokens = _superPropGet(Hydration, "canUseXTokens", this, 3)([options]);
|
|
12114
|
-
var requiresTypeThen = AH_REQUIRES_FEE_ASSET_LOCS.some(function (loc) {
|
|
12115
|
-
return deepEqual(loc, assetInfo.location);
|
|
12116
|
-
});
|
|
12117
|
-
return destination !== 'Ethereum' && !(destination === 'AssetHubPolkadot' && assetInfo.symbol === 'DOT') && baseCanUseXTokens && !feeAsset && !requiresTypeThen;
|
|
12118
|
-
}
|
|
12119
|
-
}, {
|
|
12120
|
-
key: "transferLocalNativeAsset",
|
|
12121
|
-
value: function transferLocalNativeAsset(options) {
|
|
12122
|
-
var api = options.api,
|
|
12123
|
-
asset = options.assetInfo,
|
|
12124
|
-
address = options.address,
|
|
12125
|
-
isAmountAll = options.isAmountAll;
|
|
12126
|
-
if (isAmountAll) {
|
|
12127
|
-
return Promise.resolve(api.deserializeExtrinsics({
|
|
12128
|
-
module: 'Balances',
|
|
12129
|
-
method: 'transfer_all',
|
|
12130
|
-
params: {
|
|
12131
|
-
dest: address,
|
|
12132
|
-
keep_alive: false
|
|
12133
|
-
}
|
|
12134
|
-
}));
|
|
12135
|
-
}
|
|
12136
|
-
return Promise.resolve(api.deserializeExtrinsics({
|
|
12137
|
-
module: 'Balances',
|
|
12138
|
-
method: 'transfer_keep_alive',
|
|
12139
|
-
params: {
|
|
12140
|
-
dest: address,
|
|
12141
|
-
value: asset.amount
|
|
12142
|
-
}
|
|
12143
|
-
}));
|
|
12144
|
-
}
|
|
12145
|
-
}, {
|
|
12146
|
-
key: "transferLocalNonNativeAsset",
|
|
12147
|
-
value: function transferLocalNonNativeAsset(options) {
|
|
12148
|
-
var api = options.api,
|
|
12149
|
-
asset = options.assetInfo,
|
|
12150
|
-
address = options.address,
|
|
12151
|
-
isAmountAll = options.isAmountAll;
|
|
12152
|
-
assertHasId(asset);
|
|
12153
|
-
var currencyId = Number(asset.assetId);
|
|
12154
|
-
if (isAmountAll) {
|
|
12155
|
-
return api.deserializeExtrinsics({
|
|
12156
|
-
module: 'Tokens',
|
|
12157
|
-
method: 'transfer_all',
|
|
12158
|
-
params: {
|
|
12159
|
-
dest: address,
|
|
12160
|
-
currency_id: currencyId,
|
|
12161
|
-
keep_alive: false
|
|
12162
|
-
}
|
|
12163
|
-
});
|
|
12164
|
-
}
|
|
12165
|
-
return api.deserializeExtrinsics({
|
|
12166
|
-
module: 'Tokens',
|
|
12167
|
-
method: 'transfer',
|
|
12168
|
-
params: {
|
|
12169
|
-
dest: address,
|
|
12170
|
-
currency_id: currencyId,
|
|
12171
|
-
amount: asset.amount
|
|
12172
|
-
}
|
|
12173
|
-
});
|
|
12174
|
-
}
|
|
12175
|
-
}]);
|
|
12176
|
-
}(Parachain);
|
|
12177
|
-
|
|
12178
12048
|
var HydrationPaseo = /*#__PURE__*/function (_Hydration) {
|
|
12179
12049
|
function HydrationPaseo() {
|
|
12180
12050
|
_classCallCheck(this, HydrationPaseo);
|
|
@@ -12257,49 +12127,41 @@ var Jamton = /*#__PURE__*/function (_Parachain) {
|
|
|
12257
12127
|
return _createClass(Jamton, [{
|
|
12258
12128
|
key: "getCustomCurrencyId",
|
|
12259
12129
|
value: function getCustomCurrencyId(asset) {
|
|
12130
|
+
var assetId = Number(asset.assetId);
|
|
12260
12131
|
return asset.isNative ? {
|
|
12261
|
-
Native:
|
|
12132
|
+
Native: assetId
|
|
12262
12133
|
} : {
|
|
12263
|
-
ForeignAsset:
|
|
12134
|
+
ForeignAsset: assetId
|
|
12264
12135
|
};
|
|
12265
12136
|
}
|
|
12266
12137
|
}, {
|
|
12267
|
-
key: "
|
|
12268
|
-
value: function
|
|
12269
|
-
var
|
|
12138
|
+
key: "transferPolkadotXCM",
|
|
12139
|
+
value: function transferPolkadotXCM(input) {
|
|
12140
|
+
var assetInfo = input.assetInfo,
|
|
12270
12141
|
scenario = input.scenario,
|
|
12271
12142
|
destination = input.destination,
|
|
12272
12143
|
version = input.version;
|
|
12273
|
-
|
|
12274
|
-
if (asset.isNative && asset.symbol in Jamton.NATIVE_ASSET_IDS) {
|
|
12275
|
-
return transferXTokens(input, currencySelection);
|
|
12276
|
-
}
|
|
12277
|
-
assertHasId(asset);
|
|
12144
|
+
if (assetInfo.isNative) return transferPolkadotXcm(input);
|
|
12278
12145
|
if (scenario === 'ParaToPara' && destination !== 'AssetHubPolkadot') {
|
|
12279
12146
|
throw new ScenarioNotSupportedError("Transfer from ".concat(this.chain, " to ").concat(JSON.stringify(destination), " is not yet supported"));
|
|
12280
12147
|
}
|
|
12281
|
-
if (isSymbolMatch(
|
|
12148
|
+
if (isSymbolMatch(assetInfo.symbol, 'WUD')) {
|
|
12282
12149
|
var usdt = findAssetInfoOrThrow(this.chain, {
|
|
12283
12150
|
symbol: 'USDt'
|
|
12284
12151
|
}, null);
|
|
12285
|
-
assertHasLocation(
|
|
12152
|
+
assertHasLocation(assetInfo);
|
|
12286
12153
|
assertHasLocation(usdt);
|
|
12287
12154
|
var MIN_USDT_AMOUNT = 180000n; // 0.18 USDt
|
|
12288
|
-
return
|
|
12155
|
+
return transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
|
|
12289
12156
|
overriddenAsset: [_objectSpread2(_objectSpread2({}, createAsset(version, MIN_USDT_AMOUNT, usdt.location)), {}, {
|
|
12290
12157
|
isFeeAsset: true
|
|
12291
|
-
}), createAsset(version,
|
|
12292
|
-
})
|
|
12158
|
+
}), createAsset(version, assetInfo.amount, assetInfo.location)]
|
|
12159
|
+
}));
|
|
12293
12160
|
}
|
|
12294
|
-
return
|
|
12161
|
+
return transferPolkadotXcm(input);
|
|
12295
12162
|
}
|
|
12296
12163
|
}]);
|
|
12297
12164
|
}(Parachain);
|
|
12298
|
-
Jamton.NATIVE_ASSET_IDS = {
|
|
12299
|
-
DOTON: 0,
|
|
12300
|
-
stDOT: 1,
|
|
12301
|
-
jamTON: 2
|
|
12302
|
-
};
|
|
12303
12165
|
|
|
12304
12166
|
var Karura = /*#__PURE__*/function (_Acala) {
|
|
12305
12167
|
function Karura() {
|
|
@@ -12328,7 +12190,7 @@ var KiltSpiritnet = /*#__PURE__*/function (_Parachain) {
|
|
|
12328
12190
|
if (scenario === 'ParaToPara' && asset.symbol !== this.getNativeAssetSymbol()) {
|
|
12329
12191
|
throw new ScenarioNotSupportedError('KiltSpiritnet only supports native asset ParaToPara transfers');
|
|
12330
12192
|
}
|
|
12331
|
-
return transferPolkadotXcm(input
|
|
12193
|
+
return transferPolkadotXcm(input);
|
|
12332
12194
|
}
|
|
12333
12195
|
}, {
|
|
12334
12196
|
key: "transferRelayToPara",
|
|
@@ -12452,7 +12314,7 @@ var Laos = /*#__PURE__*/function (_Parachain) {
|
|
|
12452
12314
|
if (destination === 'AssetHubPolkadot') {
|
|
12453
12315
|
throw new TransferToAhNotSupported('Transfer from Laos to AssetHubPolkadot is not supported.');
|
|
12454
12316
|
}
|
|
12455
|
-
return transferPolkadotXcm(input
|
|
12317
|
+
return transferPolkadotXcm(input);
|
|
12456
12318
|
}
|
|
12457
12319
|
}, {
|
|
12458
12320
|
key: "transferRelayToPara",
|
|
@@ -12548,7 +12410,7 @@ var Moonbeam = /*#__PURE__*/function (_Parachain) {
|
|
|
12548
12410
|
}
|
|
12549
12411
|
return _context.a(2, this.transferToEthereum(options));
|
|
12550
12412
|
case 1:
|
|
12551
|
-
return _context.a(2, transferPolkadotXcm(options
|
|
12413
|
+
return _context.a(2, transferPolkadotXcm(options));
|
|
12552
12414
|
}
|
|
12553
12415
|
}, _callee, this);
|
|
12554
12416
|
}));
|
|
@@ -12580,7 +12442,7 @@ var Moonriver = /*#__PURE__*/function (_Parachain) {
|
|
|
12580
12442
|
return _createClass(Moonriver, [{
|
|
12581
12443
|
key: "transferPolkadotXCM",
|
|
12582
12444
|
value: function transferPolkadotXCM(options) {
|
|
12583
|
-
return transferPolkadotXcm(options
|
|
12445
|
+
return transferPolkadotXcm(options);
|
|
12584
12446
|
}
|
|
12585
12447
|
}, {
|
|
12586
12448
|
key: "transferLocalNonNativeAsset",
|
|
@@ -12592,11 +12454,11 @@ var Moonriver = /*#__PURE__*/function (_Parachain) {
|
|
|
12592
12454
|
|
|
12593
12455
|
var createTypeAndThenTransfer = /*#__PURE__*/function () {
|
|
12594
12456
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options, chain, version) {
|
|
12595
|
-
var api, asset, senderAddress, address,
|
|
12457
|
+
var api, asset, senderAddress, address, ethAsset, messageId, nativeMythAmount, hopDestination;
|
|
12596
12458
|
return _regenerator().w(function (_context) {
|
|
12597
12459
|
while (1) switch (_context.n) {
|
|
12598
12460
|
case 0:
|
|
12599
|
-
api = options.api, asset = options.assetInfo, senderAddress = options.senderAddress, address = options.address
|
|
12461
|
+
api = options.api, asset = options.assetInfo, senderAddress = options.senderAddress, address = options.address;
|
|
12600
12462
|
ethAsset = findAssetInfoOrThrow('Ethereum', {
|
|
12601
12463
|
symbol: asset.symbol
|
|
12602
12464
|
}, null);
|
|
@@ -12612,11 +12474,12 @@ var createTypeAndThenTransfer = /*#__PURE__*/function () {
|
|
|
12612
12474
|
return getMythosOriginFee(api);
|
|
12613
12475
|
case 2:
|
|
12614
12476
|
nativeMythAmount = _context.v;
|
|
12477
|
+
hopDestination = 'AssetHubPolkadot';
|
|
12615
12478
|
return _context.a(2, {
|
|
12616
12479
|
module: 'PolkadotXcm',
|
|
12617
12480
|
method: 'transfer_assets_using_type_and_then',
|
|
12618
12481
|
params: {
|
|
12619
|
-
dest: createVersionedDestination(version, chain,
|
|
12482
|
+
dest: createVersionedDestination(version, chain, hopDestination, getParaId(hopDestination)),
|
|
12620
12483
|
assets: _defineProperty({}, version, [createAsset(version, nativeMythAmount, {
|
|
12621
12484
|
parents: Parents.ZERO,
|
|
12622
12485
|
interior: 'Here'
|
|
@@ -12645,47 +12508,43 @@ var Mythos = /*#__PURE__*/function (_Parachain) {
|
|
|
12645
12508
|
}
|
|
12646
12509
|
_inherits(Mythos, _Parachain);
|
|
12647
12510
|
return _createClass(Mythos, [{
|
|
12648
|
-
key: "createTx",
|
|
12649
|
-
value: function createTx(input) {
|
|
12650
|
-
var scenario = input.scenario,
|
|
12651
|
-
destination = input.destination;
|
|
12652
|
-
if (scenario !== 'ParaToPara') {
|
|
12653
|
-
throw new ScenarioNotSupportedError({
|
|
12654
|
-
chain: this.chain,
|
|
12655
|
-
scenario: scenario
|
|
12656
|
-
});
|
|
12657
|
-
}
|
|
12658
|
-
return transferPolkadotXcm(input, destination === 'AssetHubPolkadot' ? 'limited_teleport_assets' : 'limited_reserve_transfer_assets', 'Unlimited');
|
|
12659
|
-
}
|
|
12660
|
-
}, {
|
|
12661
12511
|
key: "transferPolkadotXCM",
|
|
12662
12512
|
value: function () {
|
|
12663
12513
|
var _transferPolkadotXCM = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(input) {
|
|
12664
|
-
var api, destination, defaultTx, _t;
|
|
12514
|
+
var api, destination, scenario, defaultTx, _t;
|
|
12665
12515
|
return _regenerator().w(function (_context2) {
|
|
12666
12516
|
while (1) switch (_context2.n) {
|
|
12667
12517
|
case 0:
|
|
12668
|
-
api = input.api, destination = input.destination;
|
|
12669
|
-
|
|
12670
|
-
|
|
12518
|
+
api = input.api, destination = input.destination, scenario = input.scenario;
|
|
12519
|
+
if (!(scenario !== 'ParaToPara')) {
|
|
12520
|
+
_context2.n = 1;
|
|
12521
|
+
break;
|
|
12522
|
+
}
|
|
12523
|
+
throw new ScenarioNotSupportedError({
|
|
12524
|
+
chain: this.chain,
|
|
12525
|
+
scenario: scenario
|
|
12526
|
+
});
|
|
12671
12527
|
case 1:
|
|
12528
|
+
_context2.n = 2;
|
|
12529
|
+
return transferPolkadotXcm(input);
|
|
12530
|
+
case 2:
|
|
12672
12531
|
defaultTx = _context2.v;
|
|
12673
12532
|
if (!(destination === 'AssetHubPolkadot')) {
|
|
12674
|
-
_context2.n =
|
|
12533
|
+
_context2.n = 3;
|
|
12675
12534
|
break;
|
|
12676
12535
|
}
|
|
12677
12536
|
return _context2.a(2, handleToAhTeleport('Mythos', input, defaultTx));
|
|
12678
|
-
case
|
|
12537
|
+
case 3:
|
|
12679
12538
|
if (!(destination == 'Ethereum')) {
|
|
12680
|
-
_context2.n =
|
|
12539
|
+
_context2.n = 5;
|
|
12681
12540
|
break;
|
|
12682
12541
|
}
|
|
12683
12542
|
_t = api;
|
|
12684
|
-
_context2.n =
|
|
12543
|
+
_context2.n = 4;
|
|
12685
12544
|
return createTypeAndThenTransfer(input, this.chain, this.version);
|
|
12686
|
-
case 3:
|
|
12687
|
-
return _context2.a(2, _t.deserializeExtrinsics.call(_t, _context2.v));
|
|
12688
12545
|
case 4:
|
|
12546
|
+
return _context2.a(2, _t.deserializeExtrinsics.call(_t, _context2.v));
|
|
12547
|
+
case 5:
|
|
12689
12548
|
return _context2.a(2, defaultTx);
|
|
12690
12549
|
}
|
|
12691
12550
|
}, _callee2, this);
|
|
@@ -12719,7 +12578,7 @@ var NeuroWeb = /*#__PURE__*/function (_Parachain) {
|
|
|
12719
12578
|
return _createClass(NeuroWeb, [{
|
|
12720
12579
|
key: "transferPolkadotXCM",
|
|
12721
12580
|
value: function transferPolkadotXCM(input) {
|
|
12722
|
-
return transferPolkadotXcm(input
|
|
12581
|
+
return transferPolkadotXcm(input);
|
|
12723
12582
|
}
|
|
12724
12583
|
}, {
|
|
12725
12584
|
key: "transferLocalNativeAsset",
|
|
@@ -12804,7 +12663,7 @@ var Nodle = /*#__PURE__*/function (_Parachain) {
|
|
|
12804
12663
|
if (asset.symbol !== this.getNativeAssetSymbol()) {
|
|
12805
12664
|
throw new InvalidCurrencyError("Asset ".concat(asset.symbol, " is not supported by chain ").concat(this.chain, "."));
|
|
12806
12665
|
}
|
|
12807
|
-
return transferPolkadotXcm(input
|
|
12666
|
+
return transferPolkadotXcm(input);
|
|
12808
12667
|
}
|
|
12809
12668
|
}, {
|
|
12810
12669
|
key: "transferRelayToPara",
|
|
@@ -12835,14 +12694,7 @@ var PeoplePolkadot = /*#__PURE__*/function (_Parachain) {
|
|
|
12835
12694
|
if (scenario === 'ParaToPara' && !(destChain !== null && destChain !== void 0 && destChain.startsWith('AssetHub'))) {
|
|
12836
12695
|
throw new ScenarioNotSupportedError("Unable to use ".concat(this.chain, " for transfers to other Parachains."));
|
|
12837
12696
|
}
|
|
12838
|
-
return transferPolkadotXcm(input
|
|
12839
|
-
}
|
|
12840
|
-
}, {
|
|
12841
|
-
key: "getRelayToParaOverrides",
|
|
12842
|
-
value: function getRelayToParaOverrides() {
|
|
12843
|
-
return {
|
|
12844
|
-
transferType: 'teleport'
|
|
12845
|
-
};
|
|
12697
|
+
return transferPolkadotXcm(input);
|
|
12846
12698
|
}
|
|
12847
12699
|
}]);
|
|
12848
12700
|
}(Parachain);
|
|
@@ -12989,15 +12841,7 @@ var PeopleKusama = /*#__PURE__*/function (_Parachain) {
|
|
|
12989
12841
|
scenario: scenario
|
|
12990
12842
|
});
|
|
12991
12843
|
}
|
|
12992
|
-
|
|
12993
|
-
return transferPolkadotXcm(input, method, 'Unlimited');
|
|
12994
|
-
}
|
|
12995
|
-
}, {
|
|
12996
|
-
key: "getRelayToParaOverrides",
|
|
12997
|
-
value: function getRelayToParaOverrides() {
|
|
12998
|
-
return {
|
|
12999
|
-
transferType: 'teleport'
|
|
13000
|
-
};
|
|
12844
|
+
return transferPolkadotXcm(input);
|
|
13001
12845
|
}
|
|
13002
12846
|
}]);
|
|
13003
12847
|
}(Parachain);
|
|
@@ -13125,18 +12969,17 @@ var Quartz = /*#__PURE__*/function (_Parachain) {
|
|
|
13125
12969
|
}
|
|
13126
12970
|
_inherits(Quartz, _Parachain);
|
|
13127
12971
|
return _createClass(Quartz, [{
|
|
13128
|
-
key: "
|
|
13129
|
-
value: function
|
|
13130
|
-
|
|
13131
|
-
|
|
13132
|
-
|
|
13133
|
-
|
|
13134
|
-
|
|
13135
|
-
return
|
|
12972
|
+
key: "transferPolkadotXCM",
|
|
12973
|
+
value: function transferPolkadotXCM(input) {
|
|
12974
|
+
return transferPolkadotXcm(input);
|
|
12975
|
+
}
|
|
12976
|
+
}, {
|
|
12977
|
+
key: "isSendingTempDisabled",
|
|
12978
|
+
value: function isSendingTempDisabled(_options) {
|
|
12979
|
+
return true;
|
|
13136
12980
|
}
|
|
13137
12981
|
}]);
|
|
13138
12982
|
}(Parachain);
|
|
13139
|
-
Quartz.NATIVE_ASSET_ID = 0;
|
|
13140
12983
|
|
|
13141
12984
|
var RobonomicsPolkadot = /*#__PURE__*/function (_Parachain) {
|
|
13142
12985
|
function RobonomicsPolkadot() {
|
|
@@ -13197,45 +13040,14 @@ var RobonomicsPolkadot = /*#__PURE__*/function (_Parachain) {
|
|
|
13197
13040
|
}]);
|
|
13198
13041
|
}(Parachain);
|
|
13199
13042
|
|
|
13200
|
-
var Shiden = /*#__PURE__*/function (
|
|
13043
|
+
var Shiden = /*#__PURE__*/function (_Astar) {
|
|
13201
13044
|
function Shiden() {
|
|
13202
13045
|
_classCallCheck(this, Shiden);
|
|
13203
13046
|
return _callSuper(this, Shiden, ['Shiden', 'shiden', 'Kusama', Version.V5]);
|
|
13204
13047
|
}
|
|
13205
|
-
_inherits(Shiden,
|
|
13206
|
-
return _createClass(Shiden
|
|
13207
|
-
|
|
13208
|
-
value: function transferPolkadotXCM(input) {
|
|
13209
|
-
// Same as Astar, works
|
|
13210
|
-
// https://shiden.subscan.io/xcm_message/kusama-97eb47c25c781affa557f36dbd117d49f7e1ab4e
|
|
13211
|
-
return getChain('Astar').transferPolkadotXCM(input);
|
|
13212
|
-
}
|
|
13213
|
-
}, {
|
|
13214
|
-
key: "transferXTokens",
|
|
13215
|
-
value: function transferXTokens(input) {
|
|
13216
|
-
return getChain('Astar').transferXTokens(input);
|
|
13217
|
-
}
|
|
13218
|
-
}, {
|
|
13219
|
-
key: "canUseXTokens",
|
|
13220
|
-
value: function canUseXTokens(_ref) {
|
|
13221
|
-
var assetInfo = _ref.assetInfo;
|
|
13222
|
-
return assetInfo.symbol !== this.getNativeAssetSymbol();
|
|
13223
|
-
}
|
|
13224
|
-
}, {
|
|
13225
|
-
key: "transferRelayToPara",
|
|
13226
|
-
value: function transferRelayToPara() {
|
|
13227
|
-
throw new ScenarioNotSupportedError({
|
|
13228
|
-
chain: this.chain,
|
|
13229
|
-
scenario: 'RelayToPara'
|
|
13230
|
-
});
|
|
13231
|
-
}
|
|
13232
|
-
}, {
|
|
13233
|
-
key: "transferLocalNonNativeAsset",
|
|
13234
|
-
value: function transferLocalNonNativeAsset(options) {
|
|
13235
|
-
return getChain('Astar').transferLocalNonNativeAsset(options);
|
|
13236
|
-
}
|
|
13237
|
-
}]);
|
|
13238
|
-
}(Parachain);
|
|
13048
|
+
_inherits(Shiden, _Astar);
|
|
13049
|
+
return _createClass(Shiden);
|
|
13050
|
+
}(Astar);
|
|
13239
13051
|
|
|
13240
13052
|
var Unique = /*#__PURE__*/function (_Parachain) {
|
|
13241
13053
|
function Unique() {
|
|
@@ -13244,14 +13056,9 @@ var Unique = /*#__PURE__*/function (_Parachain) {
|
|
|
13244
13056
|
}
|
|
13245
13057
|
_inherits(Unique, _Parachain);
|
|
13246
13058
|
return _createClass(Unique, [{
|
|
13247
|
-
key: "
|
|
13248
|
-
value: function
|
|
13249
|
-
|
|
13250
|
-
if (asset.symbol === this.getNativeAssetSymbol()) {
|
|
13251
|
-
return transferXTokens(input, Unique.NATIVE_ASSET_ID);
|
|
13252
|
-
}
|
|
13253
|
-
assertHasId(asset);
|
|
13254
|
-
return transferXTokens(input, Number(asset.assetId));
|
|
13059
|
+
key: "transferPolkadotXCM",
|
|
13060
|
+
value: function transferPolkadotXCM(input) {
|
|
13061
|
+
return transferPolkadotXcm(input);
|
|
13255
13062
|
}
|
|
13256
13063
|
}, {
|
|
13257
13064
|
key: "transferLocalNonNativeAsset",
|
|
@@ -13298,7 +13105,6 @@ var Unique = /*#__PURE__*/function (_Parachain) {
|
|
|
13298
13105
|
}()
|
|
13299
13106
|
}]);
|
|
13300
13107
|
}(Parachain);
|
|
13301
|
-
Unique.NATIVE_ASSET_ID = 0;
|
|
13302
13108
|
|
|
13303
13109
|
var Xode = /*#__PURE__*/function (_Parachain) {
|
|
13304
13110
|
function Xode() {
|
|
@@ -13310,13 +13116,11 @@ var Xode = /*#__PURE__*/function (_Parachain) {
|
|
|
13310
13116
|
key: "transferPolkadotXCM",
|
|
13311
13117
|
value: function transferPolkadotXCM(options) {
|
|
13312
13118
|
var destChain = options.destChain,
|
|
13313
|
-
assetInfo = options.assetInfo,
|
|
13314
13119
|
scenario = options.scenario;
|
|
13315
13120
|
if (destChain !== 'AssetHubPolkadot' && scenario === 'ParaToPara') {
|
|
13316
13121
|
throw new ScenarioNotSupportedError('Xode chain only supports transfers to / from AssetHubPolkadot');
|
|
13317
13122
|
}
|
|
13318
|
-
|
|
13319
|
-
return transferPolkadotXcm(options, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
13123
|
+
return transferPolkadotXcm(options);
|
|
13320
13124
|
}
|
|
13321
13125
|
}, {
|
|
13322
13126
|
key: "canReceiveFrom",
|
|
@@ -13346,11 +13150,9 @@ var Zeitgeist = /*#__PURE__*/function (_Parachain) {
|
|
|
13346
13150
|
};
|
|
13347
13151
|
}
|
|
13348
13152
|
}, {
|
|
13349
|
-
key: "
|
|
13350
|
-
value: function
|
|
13351
|
-
|
|
13352
|
-
var currencySelection = this.getCustomCurrencyId(asset);
|
|
13353
|
-
return transferXTokens(input, currencySelection);
|
|
13153
|
+
key: "transferPolkadotXCM",
|
|
13154
|
+
value: function transferPolkadotXCM(input) {
|
|
13155
|
+
return transferPolkadotXcm(input);
|
|
13354
13156
|
}
|
|
13355
13157
|
}, {
|
|
13356
13158
|
key: "canReceiveFrom",
|
|
@@ -13470,15 +13272,11 @@ var chains = function chains() {
|
|
|
13470
13272
|
|
|
13471
13273
|
var MIN_FEE = 1000n;
|
|
13472
13274
|
var DEFAULT_FEE_ASSET = 0;
|
|
13473
|
-
var
|
|
13474
|
-
var
|
|
13475
|
-
var
|
|
13476
|
-
|
|
13477
|
-
|
|
13478
|
-
chainId: ETH_CHAIN_ID
|
|
13479
|
-
}
|
|
13480
|
-
}
|
|
13481
|
-
};
|
|
13275
|
+
var RELAYCHAIN_PARA_ID = 0;
|
|
13276
|
+
var ETH_MAINNET_PARA_ID = 1;
|
|
13277
|
+
var ETH_MAINNET_CHAIN_ID = BigInt(ETH_MAINNET_PARA_ID);
|
|
13278
|
+
var ETH_TESTNET_PARA_ID = 11155111;
|
|
13279
|
+
var ETH_TESTNET_CHAIN_ID = BigInt(ETH_TESTNET_PARA_ID);
|
|
13482
13280
|
var DEFAULT_FEE = 'Unlimited';
|
|
13483
13281
|
var DOT_LOCATION = {
|
|
13484
13282
|
parents: Parents.ONE,
|
|
@@ -13490,7 +13288,7 @@ var RELAY_LOCATION = {
|
|
|
13490
13288
|
Here: null
|
|
13491
13289
|
}
|
|
13492
13290
|
};
|
|
13493
|
-
|
|
13291
|
+
[{
|
|
13494
13292
|
parents: Parents.ONE,
|
|
13495
13293
|
interior: {
|
|
13496
13294
|
X3: [{
|
|
@@ -13535,7 +13333,7 @@ var getChain = function getChain(chain) {
|
|
|
13535
13333
|
};
|
|
13536
13334
|
|
|
13537
13335
|
var getChainVersion = function getChainVersion(chain) {
|
|
13538
|
-
if (isRelayChain(chain) || chain
|
|
13336
|
+
if (isRelayChain(chain) || isExternalChain(chain)) {
|
|
13539
13337
|
return Version.V5;
|
|
13540
13338
|
}
|
|
13541
13339
|
return getChain(chain).version;
|
|
@@ -14279,15 +14077,21 @@ var ERC20_ABI$1 = [{
|
|
|
14279
14077
|
}]
|
|
14280
14078
|
}];
|
|
14281
14079
|
var ETHEREUM_RPC_URL = 'https://ethereum.publicnode.com/';
|
|
14080
|
+
var ETHEREUM_TESTNET_RPC_URL = 'https://ethereum-sepolia-rpc.publicnode.com/';
|
|
14081
|
+
var resolveClientValues = function resolveClientValues(chain) {
|
|
14082
|
+
if (chain === 'Ethereum') return [mainnet, ETHEREUM_RPC_URL];
|
|
14083
|
+
return [sepolia, ETHEREUM_TESTNET_RPC_URL];
|
|
14084
|
+
};
|
|
14282
14085
|
var getEthErc20Balance = /*#__PURE__*/function () {
|
|
14283
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(asset, address) {
|
|
14284
|
-
var client;
|
|
14086
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, asset, address) {
|
|
14087
|
+
var _resolveClientValues, _resolveClientValues2, config, url, client;
|
|
14285
14088
|
return _regenerator().w(function (_context) {
|
|
14286
14089
|
while (1) switch (_context.n) {
|
|
14287
14090
|
case 0:
|
|
14091
|
+
_resolveClientValues = resolveClientValues(chain), _resolveClientValues2 = _slicedToArray(_resolveClientValues, 2), config = _resolveClientValues2[0], url = _resolveClientValues2[1];
|
|
14288
14092
|
client = createPublicClient({
|
|
14289
|
-
chain:
|
|
14290
|
-
transport: http(
|
|
14093
|
+
chain: config,
|
|
14094
|
+
transport: http(url)
|
|
14291
14095
|
});
|
|
14292
14096
|
assertHasId(asset);
|
|
14293
14097
|
if (!(asset.symbol === getNativeAssetSymbol('Ethereum'))) {
|
|
@@ -14313,7 +14117,7 @@ var getEthErc20Balance = /*#__PURE__*/function () {
|
|
|
14313
14117
|
}
|
|
14314
14118
|
}, _callee);
|
|
14315
14119
|
}));
|
|
14316
|
-
return function getEthErc20Balance(_x, _x2) {
|
|
14120
|
+
return function getEthErc20Balance(_x, _x2, _x3) {
|
|
14317
14121
|
return _ref.apply(this, arguments);
|
|
14318
14122
|
};
|
|
14319
14123
|
}();
|
|
@@ -14329,11 +14133,11 @@ var getAssetBalanceInternal = /*#__PURE__*/function () {
|
|
|
14329
14133
|
_context.n = 1;
|
|
14330
14134
|
return api.init(chain);
|
|
14331
14135
|
case 1:
|
|
14332
|
-
if (!(chain
|
|
14136
|
+
if (!isExternalChain(chain)) {
|
|
14333
14137
|
_context.n = 2;
|
|
14334
14138
|
break;
|
|
14335
14139
|
}
|
|
14336
|
-
return _context.a(2, getEthErc20Balance(asset, address));
|
|
14140
|
+
return _context.a(2, getEthErc20Balance(chain, asset, address));
|
|
14337
14141
|
case 2:
|
|
14338
14142
|
if (!isRelayChain(chain)) {
|
|
14339
14143
|
_context.n = 3;
|
|
@@ -14438,4 +14242,4 @@ var getMoonbeamErc20Balance = /*#__PURE__*/function () {
|
|
|
14438
14242
|
};
|
|
14439
14243
|
}();
|
|
14440
14244
|
|
|
14441
|
-
export { AmountTooLowError, AssetClaimBuilder, BaseAssetsPallet, BatchMode, BatchValidationError, BridgeHaltedError, Builder, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError,
|
|
14245
|
+
export { AmountTooLowError, AssetClaimBuilder, BaseAssetsPallet, BatchMode, BatchValidationError, BridgeHaltedError, Builder, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETH_MAINNET_CHAIN_ID, ETH_TESTNET_CHAIN_ID, FeatureTemporarilyDisabledError, GeneralBuilder, InvalidAddressError, MissingChainApiError, MissingParameterError, NoXCMSupportImplementedError, NumberFormatError, OverrideConflictError, PolkadotXcmError, PolkadotXcmExecutionError, ProviderUnavailableError, RELAY_LOCATION, RoutingResolutionError, RuntimeApiUnavailableError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, TypeAndThenUnavailableError, UnableToComputeError, UnsupportedOperationError, XTokensError, abstractDecimals, addEthereumBridgeFees, addXcmVersionHeader, applyDecimalAbstraction, assertAddressIsString, assertDerivationPath, assertHasId, assertHasLocation, assertSenderAddress, assertToIsString, blake2b256, blake2b512, calcPreviewMintAmount, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, computeOverridenAmount, constructTypeAndThenCall, convertSs58, createAsset, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createChainClient, createClientCache, createClientPoolHelpers, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createId, createTx, createTypeAndThenCall, createTypeThenAutoReserve, createVersionedAssets, createX1Payload, deriveAccountId, dryRun, dryRunInternal, dryRunOrigin, encodeSs58, formatAssetIdToERC20, formatUnits, getAssetBalanceInternal, getAssetReserveChain, getBalance, getBalanceInternal, getBridgeStatus, getChain, getChainConfig, getChainLocation, getChainProviders, getChainVersion, getEthErc20Balance, getEvmPrivateKeyHex, getFailureInfo$1 as getFailureInfo, getMinTransferableAmount, getMinTransferableAmountInternal, getMoonbeamErc20Balance, getOriginXcmFee, getOriginXcmFeeEstimate, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getRelayChainOf, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, getXcmFeeInternal, getXcmFeeOnce, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, keyFromWs, localizeLocation, maybeOverrideAsset, maybeOverrideAssets, normalizeAmount, overrideTxAmount, padFee, padValueBy, parseUnits, resolveDestChain, resolveModuleError, resolveParaId, reverseTransformLocation, send, sortAssets, throwUnsupportedCurrency, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, validateAssetSpecifiers, validateCurrency, validateDestination, verifyEdOnDestination, wrapTxBypass };
|