@paraspell/sdk-core 8.6.1 → 8.7.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.cjs +475 -212
- package/dist/index.d.ts +98 -15
- package/dist/index.mjs +474 -213
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -714,6 +714,8 @@ var NODES_WITH_RELAY_CHAINS_DOT_KSM = [].concat(NODE_NAMES_DOT_KSM, ['Polkadot',
|
|
|
714
714
|
* Supported XCM pallets.
|
|
715
715
|
*/
|
|
716
716
|
var SUPPORTED_PALLETS = ['XTokens', 'OrmlXTokens', 'PolkadotXcm', 'RelayerXcm', 'XTransfer', 'XcmPallet'];
|
|
717
|
+
var SYSTEM_NODES_POLKADOT = ['PeoplePolkadot', 'CoretimePolkadot', 'Collectives'];
|
|
718
|
+
var SYSTEM_NODES_KUSAMA = ['PeopleKusama', 'CoretimeKusama'];
|
|
717
719
|
|
|
718
720
|
/**
|
|
719
721
|
* Error thrown when multiple assets with the same symbol are found.
|
|
@@ -2360,7 +2362,10 @@ var constructRelayToParaParameters = function constructRelayToParaParameters(_re
|
|
|
2360
2362
|
return _objectSpread2({
|
|
2361
2363
|
dest: createPolkadotXcmHeader('RelayToPara', version, destination, paraId),
|
|
2362
2364
|
beneficiary: generateAddressPayload(api, 'RelayToPara', null, address, version, paraId),
|
|
2363
|
-
assets:
|
|
2365
|
+
assets: createVersionedMultiAssets(version, asset.amount, {
|
|
2366
|
+
parents: Parents.ZERO,
|
|
2367
|
+
interior: 'Here'
|
|
2368
|
+
}),
|
|
2364
2369
|
fee_asset_item: DEFAULT_FEE_ASSET
|
|
2365
2370
|
}, includeFee && {
|
|
2366
2371
|
weight_limit: 'Unlimited'
|
|
@@ -2373,21 +2378,6 @@ var isTMultiLocation = function isTMultiLocation(value) {
|
|
|
2373
2378
|
var isTMultiAsset = function isTMultiAsset(value) {
|
|
2374
2379
|
return _typeof(value) === 'object' && value !== null && 'id' in value && 'fun' in value;
|
|
2375
2380
|
};
|
|
2376
|
-
var createBridgeCurrencySpec = function createBridgeCurrencySpec(amount, ecosystem) {
|
|
2377
|
-
return _defineProperty({}, Version.V4, [{
|
|
2378
|
-
id: {
|
|
2379
|
-
parents: Parents.TWO,
|
|
2380
|
-
interior: {
|
|
2381
|
-
X1: [{
|
|
2382
|
-
GlobalConsensus: ecosystem
|
|
2383
|
-
}]
|
|
2384
|
-
}
|
|
2385
|
-
},
|
|
2386
|
-
fun: {
|
|
2387
|
-
Fungible: amount.toString()
|
|
2388
|
-
}
|
|
2389
|
-
}]);
|
|
2390
|
-
};
|
|
2391
2381
|
var createMultiAsset = function createMultiAsset(version, amount, multiLocation) {
|
|
2392
2382
|
if (version === Version.V4) {
|
|
2393
2383
|
return {
|
|
@@ -2409,22 +2399,27 @@ var createMultiAsset = function createMultiAsset(version, amount, multiLocation)
|
|
|
2409
2399
|
var addXcmVersionHeader = function addXcmVersionHeader(obj, version) {
|
|
2410
2400
|
return _defineProperty({}, version, obj);
|
|
2411
2401
|
};
|
|
2412
|
-
var
|
|
2413
|
-
var
|
|
2402
|
+
var extractVersionFromHeader = function extractVersionFromHeader(versionHeader) {
|
|
2403
|
+
var keys = Object.keys(versionHeader);
|
|
2404
|
+
if (keys.length !== 1) {
|
|
2405
|
+
throw new Error('Invalid version header: expected exactly one key.');
|
|
2406
|
+
}
|
|
2407
|
+
var version = keys[0];
|
|
2408
|
+
var value = versionHeader[version];
|
|
2409
|
+
if (value === undefined) {
|
|
2410
|
+
throw new Error('Invalid version header: value is undefined.');
|
|
2411
|
+
}
|
|
2412
|
+
return [version, value];
|
|
2413
|
+
};
|
|
2414
|
+
var maybeOverrideMultiAssets = function maybeOverrideMultiAssets(version, amount, multiAssets, overriddenCurrency) {
|
|
2414
2415
|
if (!overriddenCurrency) {
|
|
2415
|
-
return
|
|
2416
|
-
parents: parents,
|
|
2417
|
-
interior: interior
|
|
2418
|
-
})];
|
|
2416
|
+
return multiAssets;
|
|
2419
2417
|
}
|
|
2420
|
-
return isTMultiLocation(overriddenCurrency) ? [createMultiAsset(version, amount, overriddenCurrency)] :
|
|
2421
|
-
// It must be TMultiAsset if not TMultiLocation
|
|
2422
|
-
overriddenCurrency;
|
|
2418
|
+
return isTMultiLocation(overriddenCurrency) ? [createMultiAsset(version, amount, overriddenCurrency)] : overriddenCurrency;
|
|
2423
2419
|
};
|
|
2424
|
-
var
|
|
2425
|
-
var
|
|
2426
|
-
|
|
2427
|
-
return addXcmVersionHeader(currency, version);
|
|
2420
|
+
var createVersionedMultiAssets = function createVersionedMultiAssets(version, amount, multiLocation) {
|
|
2421
|
+
var multiAssets = createMultiAsset(version, amount, multiLocation);
|
|
2422
|
+
return addXcmVersionHeader([multiAssets], version);
|
|
2428
2423
|
};
|
|
2429
2424
|
var createPolkadotXcmHeader = function createPolkadotXcmHeader(scenario, version, destination, nodeId, junction, parents) {
|
|
2430
2425
|
var parentsResolved = parents !== null && parents !== void 0 ? parents : scenario === 'RelayToPara' ? Parents.ZERO : Parents.ONE;
|
|
@@ -2466,20 +2461,81 @@ var resolveTNodeFromMultiLocation = function resolveTNodeFromMultiLocation(relay
|
|
|
2466
2461
|
return node;
|
|
2467
2462
|
};
|
|
2468
2463
|
var throwUnsupportedCurrency = function throwUnsupportedCurrency(currency, node) {
|
|
2469
|
-
var
|
|
2464
|
+
var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
2470
2465
|
isDestination: false
|
|
2471
2466
|
},
|
|
2472
|
-
isDestination =
|
|
2467
|
+
isDestination = _ref3.isDestination;
|
|
2473
2468
|
if ('multilocation' in currency) {
|
|
2474
2469
|
throw new InvalidCurrencyError("\n Selected chain doesn't support multilocation you provided. Maybe you meant custom multilocation. If so, you need to use override option. Your selection should look like this: {multilocation: Override(".concat(JSON.stringify(currency.multilocation), ")}."));
|
|
2475
2470
|
}
|
|
2476
2471
|
throw new InvalidCurrencyError("".concat(isDestination ? 'Destination' : 'Origin', " node ").concat(node, " does not support currency ").concat(JSON.stringify(currency), "."));
|
|
2477
2472
|
};
|
|
2478
2473
|
|
|
2474
|
+
var isPrimitive = function isPrimitive(obj) {
|
|
2475
|
+
return obj !== Object(obj);
|
|
2476
|
+
};
|
|
2477
|
+
var _deepEqual = function deepEqual(obj1, obj2) {
|
|
2478
|
+
if (obj1 === obj2) return true;
|
|
2479
|
+
if (isPrimitive(obj1) && isPrimitive(obj2)) return obj1 === obj2;
|
|
2480
|
+
if (_typeof(obj1) !== 'object' || obj1 === null || _typeof(obj2) !== 'object' || obj2 === null) {
|
|
2481
|
+
return false;
|
|
2482
|
+
}
|
|
2483
|
+
if (Array.isArray(obj1) !== Array.isArray(obj2)) {
|
|
2484
|
+
return false;
|
|
2485
|
+
}
|
|
2486
|
+
var obj1Keys = Object.keys(obj1).map(function (key) {
|
|
2487
|
+
return key.toLowerCase();
|
|
2488
|
+
});
|
|
2489
|
+
var obj2Keys = Object.keys(obj2).map(function (key) {
|
|
2490
|
+
return key.toLowerCase();
|
|
2491
|
+
});
|
|
2492
|
+
if (obj1Keys.length !== obj2Keys.length) return false;
|
|
2493
|
+
var _iterator = _createForOfIteratorHelper(obj1Keys),
|
|
2494
|
+
_step;
|
|
2495
|
+
try {
|
|
2496
|
+
var _loop = function _loop() {
|
|
2497
|
+
var key = _step.value;
|
|
2498
|
+
var keyInObj2 = obj2Keys.find(function (k) {
|
|
2499
|
+
return k === key;
|
|
2500
|
+
});
|
|
2501
|
+
if (!keyInObj2) return {
|
|
2502
|
+
v: false
|
|
2503
|
+
};
|
|
2504
|
+
var obj1Value = obj1[Object.keys(obj1).find(function (k) {
|
|
2505
|
+
return k.toLowerCase() === key;
|
|
2506
|
+
})];
|
|
2507
|
+
var obj2Value = obj2[Object.keys(obj2).find(function (k) {
|
|
2508
|
+
return k.toLowerCase() === key;
|
|
2509
|
+
})];
|
|
2510
|
+
if (!_deepEqual(obj1Value, obj2Value)) return {
|
|
2511
|
+
v: false
|
|
2512
|
+
};
|
|
2513
|
+
},
|
|
2514
|
+
_ret;
|
|
2515
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
2516
|
+
_ret = _loop();
|
|
2517
|
+
if (_ret) return _ret.v;
|
|
2518
|
+
}
|
|
2519
|
+
} catch (err) {
|
|
2520
|
+
_iterator.e(err);
|
|
2521
|
+
} finally {
|
|
2522
|
+
_iterator.f();
|
|
2523
|
+
}
|
|
2524
|
+
return true;
|
|
2525
|
+
};
|
|
2526
|
+
|
|
2479
2527
|
var isForeignAsset = function isForeignAsset(asset) {
|
|
2480
2528
|
return _typeof(asset) === 'object' && asset !== null && ('assetId' in asset || 'multiLocation' in asset) && !('isNative' in asset);
|
|
2481
2529
|
};
|
|
2482
2530
|
|
|
2531
|
+
var isAssetEqual = function isAssetEqual(asset1, asset2) {
|
|
2532
|
+
var ml1 = asset1.multiLocation;
|
|
2533
|
+
var ml2 = asset2.multiLocation;
|
|
2534
|
+
if (ml1 && ml2 && _deepEqual(ml1, ml2)) return true;
|
|
2535
|
+
if (isForeignAsset(asset1) && isForeignAsset(asset2) && asset1.assetId === asset2.assetId) return true;
|
|
2536
|
+
return asset1.symbol.toLowerCase() === asset2.symbol.toLowerCase();
|
|
2537
|
+
};
|
|
2538
|
+
|
|
2483
2539
|
var isSymbolSpecifier = function isSymbolSpecifier(currencySymbolValue) {
|
|
2484
2540
|
return _typeof(currencySymbolValue) === 'object' && 'type' in currencySymbolValue && 'value' in currencySymbolValue;
|
|
2485
2541
|
};
|
|
@@ -2535,19 +2591,21 @@ var buildMultiLocation = function buildMultiLocation(_ref) {
|
|
|
2535
2591
|
}
|
|
2536
2592
|
};
|
|
2537
2593
|
var getModifiedCurrencySelection = function getModifiedCurrencySelection(version, input) {
|
|
2538
|
-
var amount = input.asset.amount
|
|
2594
|
+
var amount = input.asset.amount,
|
|
2595
|
+
overriddenAsset = input.overriddenAsset;
|
|
2596
|
+
if (overriddenAsset) {
|
|
2597
|
+
return addXcmVersionHeader(maybeOverrideMultiAssets(version, amount, [], overriddenAsset), version);
|
|
2598
|
+
}
|
|
2539
2599
|
var multiLocation = buildMultiLocation(input);
|
|
2540
2600
|
var multiAsset = createMultiAsset(version, amount, multiLocation);
|
|
2541
2601
|
return addXcmVersionHeader(multiAsset, version);
|
|
2542
2602
|
};
|
|
2543
2603
|
|
|
2544
|
-
var getCurrencySelection = function getCurrencySelection(input,
|
|
2545
|
-
var origin = input.origin
|
|
2546
|
-
overriddenAsset = input.overriddenAsset;
|
|
2604
|
+
var getCurrencySelection = function getCurrencySelection(input, useMultiAssets, currencySelection) {
|
|
2605
|
+
var origin = input.origin;
|
|
2547
2606
|
var _getNode = getNode(origin),
|
|
2548
2607
|
version = _getNode.version;
|
|
2549
|
-
if (
|
|
2550
|
-
if (isAssetHub) {
|
|
2608
|
+
if (useMultiAssets) {
|
|
2551
2609
|
return getModifiedCurrencySelection(version, input);
|
|
2552
2610
|
}
|
|
2553
2611
|
return currencySelection;
|
|
@@ -2555,11 +2613,11 @@ var getCurrencySelection = function getCurrencySelection(input, isAssetHub, curr
|
|
|
2555
2613
|
|
|
2556
2614
|
var getXTokensParameters = function getXTokensParameters(isMultiAssetTransfer, currencySelection, addressSelection, amount, fees, overriddenAsset) {
|
|
2557
2615
|
if (isMultiAssetTransfer) {
|
|
2558
|
-
var
|
|
2559
|
-
var feeAssetIndex =
|
|
2616
|
+
var isOverridenMultiAssets = overriddenAsset && !isTMultiLocation(overriddenAsset);
|
|
2617
|
+
var feeAssetIndex = isOverridenMultiAssets ? overriddenAsset.findIndex(function (asset) {
|
|
2560
2618
|
return asset.isFeeAsset;
|
|
2561
2619
|
}) : undefined;
|
|
2562
|
-
return _objectSpread2(_objectSpread2(_defineProperty({},
|
|
2620
|
+
return _objectSpread2(_objectSpread2(_defineProperty({}, isOverridenMultiAssets ? 'assets' : 'asset', currencySelection), isOverridenMultiAssets && {
|
|
2563
2621
|
fee_item: feeAssetIndex
|
|
2564
2622
|
}), {}, {
|
|
2565
2623
|
dest: addressSelection,
|
|
@@ -2599,10 +2657,10 @@ var XTokensTransferImpl = /*#__PURE__*/function () {
|
|
|
2599
2657
|
var isAssetHubDest = destination === 'AssetHubPolkadot' || destination === 'AssetHubKusama';
|
|
2600
2658
|
var isAstarOrShidenToRelay = scenario === 'ParaToRelay' && (origin === 'Astar' || origin === 'Shiden');
|
|
2601
2659
|
var isTuring = origin === 'Turing';
|
|
2602
|
-
var
|
|
2603
|
-
var shouldUseMultiasset = isTuring || isAstarOrShidenToRelay || isAssetHubDest && !isBifrostOrigin || !!
|
|
2660
|
+
var isOverridenMultiAssets = overriddenAsset && !isTMultiLocation(overriddenAsset);
|
|
2661
|
+
var shouldUseMultiasset = isTuring || isAstarOrShidenToRelay || isAssetHubDest && !isBifrostOrigin || !!isOverridenMultiAssets;
|
|
2604
2662
|
var modifiedCurrencySelection = getCurrencySelection(input, shouldUseMultiasset, currencySelection);
|
|
2605
|
-
var section = shouldUseMultiasset ?
|
|
2663
|
+
var section = shouldUseMultiasset ? isOverridenMultiAssets ? 'transfer_multiassets' : 'transfer_multiasset' : 'transfer';
|
|
2606
2664
|
var parameters = getXTokensParameters(shouldUseMultiasset, modifiedCurrencySelection, addressSelection, asset.amount, fees, overriddenAsset);
|
|
2607
2665
|
var call = {
|
|
2608
2666
|
module: pallet !== null && pallet !== void 0 ? pallet : 'XTokens',
|
|
@@ -3669,6 +3727,14 @@ var resolveAsset = function resolveAsset(currency, origin, destination, assetChe
|
|
|
3669
3727
|
return assetCheckEnabled ? getAssetBySymbolOrId(origin, currency, !isTMultiLocation(destination) ? destination : null) : null;
|
|
3670
3728
|
};
|
|
3671
3729
|
|
|
3730
|
+
var resolveFeeAsset = function resolveFeeAsset(feeAsset, origin, destination) {
|
|
3731
|
+
var asset = getAssetBySymbolOrId(origin, feeAsset, !isTMultiLocation(destination) ? destination : null);
|
|
3732
|
+
if (!asset) {
|
|
3733
|
+
throwUnsupportedCurrency(feeAsset, origin);
|
|
3734
|
+
}
|
|
3735
|
+
return asset !== null && asset !== void 0 ? asset : undefined;
|
|
3736
|
+
};
|
|
3737
|
+
|
|
3672
3738
|
var AssetHubPolkadot$2 = {
|
|
3673
3739
|
defaultPallet: "PolkadotXcm",
|
|
3674
3740
|
supportedPallets: [
|
|
@@ -4477,7 +4543,7 @@ var getSupportedPalletsDetails = function getSupportedPalletsDetails(node) {
|
|
|
4477
4543
|
return palletsMap[node].supportedPallets;
|
|
4478
4544
|
};
|
|
4479
4545
|
|
|
4480
|
-
var validateCurrency = function validateCurrency(currency) {
|
|
4546
|
+
var validateCurrency = function validateCurrency(currency, feeAsset) {
|
|
4481
4547
|
if ('multiasset' in currency) {
|
|
4482
4548
|
if (currency.multiasset.length === 0) {
|
|
4483
4549
|
throw new InvalidCurrencyError('Overridden multi assets cannot be empty');
|
|
@@ -4485,16 +4551,9 @@ var validateCurrency = function validateCurrency(currency) {
|
|
|
4485
4551
|
if (currency.multiasset.length === 1) {
|
|
4486
4552
|
throw new InvalidCurrencyError('Please provide more than one multi asset');
|
|
4487
4553
|
}
|
|
4488
|
-
if (currency.multiasset.length > 1 && !
|
|
4489
|
-
return asset.isFeeAsset;
|
|
4490
|
-
})) {
|
|
4554
|
+
if (currency.multiasset.length > 1 && !feeAsset) {
|
|
4491
4555
|
throw new InvalidCurrencyError('Overridden multi assets cannot be used without specifying fee asset');
|
|
4492
4556
|
}
|
|
4493
|
-
if (currency.multiasset.length > 1 && currency.multiasset.filter(function (asset) {
|
|
4494
|
-
return asset.isFeeAsset;
|
|
4495
|
-
}).length > 1) {
|
|
4496
|
-
throw new InvalidCurrencyError('Overridden multi assets cannot have more than one fee asset');
|
|
4497
|
-
}
|
|
4498
4557
|
}
|
|
4499
4558
|
};
|
|
4500
4559
|
var validateDestination = function validateDestination(origin, destination) {
|
|
@@ -4554,7 +4613,7 @@ var validateAssetSupport = function validateAssetSupport(_ref, assetCheckEnabled
|
|
|
4554
4613
|
}
|
|
4555
4614
|
};
|
|
4556
4615
|
|
|
4557
|
-
var resolveOverriddenAsset = function resolveOverriddenAsset(options, isBridge, assetCheckEnabled) {
|
|
4616
|
+
var resolveOverriddenAsset = function resolveOverriddenAsset(options, isBridge, assetCheckEnabled, feeAsset) {
|
|
4558
4617
|
var currency = options.currency,
|
|
4559
4618
|
origin = options.from,
|
|
4560
4619
|
destination = options.to;
|
|
@@ -4562,6 +4621,9 @@ var resolveOverriddenAsset = function resolveOverriddenAsset(options, isBridge,
|
|
|
4562
4621
|
return currency.multilocation.value;
|
|
4563
4622
|
}
|
|
4564
4623
|
if ('multiasset' in currency) {
|
|
4624
|
+
if (!feeAsset) {
|
|
4625
|
+
throw new InvalidCurrencyError('Overridden multi assets cannot be used without specifying fee asset');
|
|
4626
|
+
}
|
|
4565
4627
|
if (currency.multiasset.every(function (asset) {
|
|
4566
4628
|
return isTMultiAsset(asset);
|
|
4567
4629
|
})) {
|
|
@@ -4569,18 +4631,30 @@ var resolveOverriddenAsset = function resolveOverriddenAsset(options, isBridge,
|
|
|
4569
4631
|
}
|
|
4570
4632
|
// MultiAsset is an array of TCurrencyCore, search for assets
|
|
4571
4633
|
var assets = currency.multiasset.map(function (currency) {
|
|
4572
|
-
var _currency$isFeeAsset;
|
|
4573
4634
|
var asset = getAssetBySymbolOrId(origin, currency, !isTMultiLocation(destination) ? destination : null);
|
|
4574
4635
|
if (asset && (!isForeignAsset(asset) || !asset.multiLocation)) {
|
|
4575
4636
|
throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(currency), " does not have a multiLocation"));
|
|
4576
4637
|
}
|
|
4638
|
+
if (!asset) {
|
|
4639
|
+
throw new InvalidCurrencyError("Origin node ".concat(origin, " does not support currency ").concat(JSON.stringify(currency)));
|
|
4640
|
+
}
|
|
4577
4641
|
validateAssetSupport(options, assetCheckEnabled, isBridge, asset);
|
|
4578
4642
|
var originTyped = origin;
|
|
4579
4643
|
var originNode = getNode(originTyped);
|
|
4580
4644
|
return _objectSpread2({
|
|
4581
|
-
isFeeAsset: (
|
|
4582
|
-
}, createMultiAsset(originNode.version, currency.amount, asset
|
|
4645
|
+
isFeeAsset: isAssetEqual(feeAsset, asset)
|
|
4646
|
+
}, createMultiAsset(originNode.version, currency.amount, asset.multiLocation));
|
|
4583
4647
|
});
|
|
4648
|
+
if (assets.filter(function (asset) {
|
|
4649
|
+
return asset.isFeeAsset;
|
|
4650
|
+
}).length > 1) {
|
|
4651
|
+
throw new InvalidCurrencyError("Fee asset matches multiple assets in multiassets");
|
|
4652
|
+
}
|
|
4653
|
+
if (assets.filter(function (asset) {
|
|
4654
|
+
return asset.isFeeAsset;
|
|
4655
|
+
}).length === 0) {
|
|
4656
|
+
throw new InvalidCurrencyError("Fee asset not found in multiassets");
|
|
4657
|
+
}
|
|
4584
4658
|
return assets;
|
|
4585
4659
|
}
|
|
4586
4660
|
return undefined;
|
|
@@ -4609,12 +4683,12 @@ var validateDestinationAddress = function validateDestinationAddress(address, de
|
|
|
4609
4683
|
|
|
4610
4684
|
var send = /*#__PURE__*/function () {
|
|
4611
4685
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(options) {
|
|
4612
|
-
var api, origin, currency, address, destination, paraIdTo, version, senderAddress, pallet, method, isBridge, assetCheckEnabled, asset, overriddenAsset, resolvedAsset, originNode;
|
|
4686
|
+
var api, origin, currency, feeAsset, address, destination, paraIdTo, version, senderAddress, pallet, method, isBridge, assetCheckEnabled, asset, resolvedFeeAsset, overriddenAsset, resolvedAsset, originNode;
|
|
4613
4687
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
4614
4688
|
while (1) switch (_context.prev = _context.next) {
|
|
4615
4689
|
case 0:
|
|
4616
|
-
api = options.api, origin = options.from, currency = options.currency, address = options.address, destination = options.to, paraIdTo = options.paraIdTo, version = options.version, senderAddress = options.senderAddress, pallet = options.pallet, method = options.method;
|
|
4617
|
-
validateCurrency(currency);
|
|
4690
|
+
api = options.api, origin = options.from, currency = options.currency, feeAsset = options.feeAsset, address = options.address, destination = options.to, paraIdTo = options.paraIdTo, version = options.version, senderAddress = options.senderAddress, pallet = options.pallet, method = options.method;
|
|
4691
|
+
validateCurrency(currency, feeAsset);
|
|
4618
4692
|
validateDestination(origin, destination);
|
|
4619
4693
|
validateDestinationAddress(address, destination);
|
|
4620
4694
|
if (senderAddress) validateAddress(senderAddress, origin, false);
|
|
@@ -4628,23 +4702,24 @@ var send = /*#__PURE__*/function () {
|
|
|
4628
4702
|
assetCheckEnabled = determineAssetCheckEnabled(origin, currency, isBridge);
|
|
4629
4703
|
validateAssetSpecifiers(assetCheckEnabled, currency);
|
|
4630
4704
|
asset = resolveAsset(currency, origin, destination, assetCheckEnabled);
|
|
4705
|
+
resolvedFeeAsset = feeAsset ? resolveFeeAsset(feeAsset, origin, destination) : undefined;
|
|
4631
4706
|
validateAssetSupport(options, assetCheckEnabled, isBridge, asset);
|
|
4632
4707
|
if (!isRelayChain(origin)) {
|
|
4633
|
-
_context.next =
|
|
4708
|
+
_context.next = 19;
|
|
4634
4709
|
break;
|
|
4635
4710
|
}
|
|
4636
4711
|
if (!(destination === 'Ethereum')) {
|
|
4637
|
-
_context.next =
|
|
4712
|
+
_context.next = 16;
|
|
4638
4713
|
break;
|
|
4639
4714
|
}
|
|
4640
4715
|
throw new Error('Transfers from relay chain to Ethereum are not supported.');
|
|
4641
|
-
case
|
|
4716
|
+
case 16:
|
|
4642
4717
|
if (asset) {
|
|
4643
|
-
_context.next =
|
|
4718
|
+
_context.next = 18;
|
|
4644
4719
|
break;
|
|
4645
4720
|
}
|
|
4646
4721
|
throw new Error('Asset is required for relay chain to relay chain transfers.');
|
|
4647
|
-
case
|
|
4722
|
+
case 18:
|
|
4648
4723
|
return _context.abrupt("return", transferRelayToPara({
|
|
4649
4724
|
api: api,
|
|
4650
4725
|
origin: origin,
|
|
@@ -4658,11 +4733,11 @@ var send = /*#__PURE__*/function () {
|
|
|
4658
4733
|
pallet: pallet,
|
|
4659
4734
|
method: method
|
|
4660
4735
|
}));
|
|
4661
|
-
case
|
|
4662
|
-
overriddenAsset = resolveOverriddenAsset(options, isBridge, assetCheckEnabled);
|
|
4663
|
-
_context.next =
|
|
4736
|
+
case 19:
|
|
4737
|
+
overriddenAsset = resolveOverriddenAsset(options, isBridge, assetCheckEnabled, resolvedFeeAsset);
|
|
4738
|
+
_context.next = 22;
|
|
4664
4739
|
return api.init(origin);
|
|
4665
|
-
case
|
|
4740
|
+
case 22:
|
|
4666
4741
|
// In case asset check is disabled, we create asset object from currency symbol
|
|
4667
4742
|
resolvedAsset = asset !== null && asset !== void 0 ? asset : {
|
|
4668
4743
|
symbol: 'symbol' in currency ? currency.symbol : undefined
|
|
@@ -4673,6 +4748,7 @@ var send = /*#__PURE__*/function () {
|
|
|
4673
4748
|
asset: _objectSpread2(_objectSpread2({}, resolvedAsset), {}, {
|
|
4674
4749
|
amount: 'multiasset' in currency ? 0 : currency.amount
|
|
4675
4750
|
}),
|
|
4751
|
+
feeAsset: resolvedFeeAsset,
|
|
4676
4752
|
address: address,
|
|
4677
4753
|
to: destination,
|
|
4678
4754
|
paraIdTo: paraIdTo,
|
|
@@ -4682,7 +4758,7 @@ var send = /*#__PURE__*/function () {
|
|
|
4682
4758
|
pallet: pallet,
|
|
4683
4759
|
method: method
|
|
4684
4760
|
}));
|
|
4685
|
-
case
|
|
4761
|
+
case 25:
|
|
4686
4762
|
case "end":
|
|
4687
4763
|
return _context.stop();
|
|
4688
4764
|
}
|
|
@@ -4752,11 +4828,11 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
4752
4828
|
key: "transfer",
|
|
4753
4829
|
value: function () {
|
|
4754
4830
|
var _transfer = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(options) {
|
|
4755
|
-
var api, asset, address, destination, paraIdTo, overriddenAsset, version, senderAddress, pallet, method, isRelayDestination, scenario, paraId, versionOrDefault, isBifrostOrigin, isAssetHubDest, shouldUseMultiasset, input;
|
|
4831
|
+
var api, asset, feeAsset, address, destination, paraIdTo, overriddenAsset, version, senderAddress, pallet, method, isRelayDestination, scenario, paraId, versionOrDefault, isBifrostOrigin, isAssetHubDest, shouldUseMultiasset, input;
|
|
4756
4832
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
4757
4833
|
while (1) switch (_context.prev = _context.next) {
|
|
4758
4834
|
case 0:
|
|
4759
|
-
api = options.api, asset = options.asset, address = options.address, destination = options.to, paraIdTo = options.paraIdTo, overriddenAsset = options.overriddenAsset, version = options.version, senderAddress = options.senderAddress, pallet = options.pallet, method = options.method;
|
|
4835
|
+
api = options.api, asset = options.asset, feeAsset = options.feeAsset, address = options.address, destination = options.to, paraIdTo = options.paraIdTo, overriddenAsset = options.overriddenAsset, version = options.version, senderAddress = options.senderAddress, pallet = options.pallet, method = options.method;
|
|
4760
4836
|
isRelayDestination = !isTMultiLocation(destination) && isRelayChain(destination);
|
|
4761
4837
|
scenario = isRelayDestination ? 'ParaToRelay' : 'ParaToPara';
|
|
4762
4838
|
paraId = resolveParaId(paraIdTo, destination);
|
|
@@ -4820,12 +4896,13 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
4820
4896
|
header: this.createPolkadotXcmHeader(scenario, versionOrDefault, destination, paraId),
|
|
4821
4897
|
addressSelection: generateAddressPayload(api, scenario, 'PolkadotXcm', address, versionOrDefault, paraId),
|
|
4822
4898
|
address: address,
|
|
4823
|
-
currencySelection: this.createCurrencySpec(asset.amount, scenario, versionOrDefault, asset
|
|
4899
|
+
currencySelection: this.createCurrencySpec(asset.amount, scenario, versionOrDefault, asset),
|
|
4900
|
+
overriddenAsset: overriddenAsset,
|
|
4824
4901
|
asset: asset,
|
|
4902
|
+
feeAsset: feeAsset,
|
|
4825
4903
|
scenario: scenario,
|
|
4826
4904
|
destination: destination,
|
|
4827
4905
|
paraIdTo: paraId,
|
|
4828
|
-
overriddenAsset: overriddenAsset,
|
|
4829
4906
|
version: version,
|
|
4830
4907
|
senderAddress: senderAddress,
|
|
4831
4908
|
pallet: pallet,
|
|
@@ -4872,8 +4949,11 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
4872
4949
|
}
|
|
4873
4950
|
}, {
|
|
4874
4951
|
key: "createCurrencySpec",
|
|
4875
|
-
value: function createCurrencySpec
|
|
4876
|
-
return
|
|
4952
|
+
value: function createCurrencySpec(amount, scenario, version, _asset) {
|
|
4953
|
+
return createVersionedMultiAssets(version, amount, {
|
|
4954
|
+
parents: scenario === 'ParaToRelay' ? Parents.ONE : Parents.ZERO,
|
|
4955
|
+
interior: 'Here'
|
|
4956
|
+
});
|
|
4877
4957
|
}
|
|
4878
4958
|
}, {
|
|
4879
4959
|
key: "createPolkadotXcmHeader",
|
|
@@ -5045,12 +5125,18 @@ var PolkadotXCMTransferImpl = /*#__PURE__*/function () {
|
|
|
5045
5125
|
value: function transferPolkadotXCM(_ref, section) {
|
|
5046
5126
|
var api = _ref.api,
|
|
5047
5127
|
header = _ref.header,
|
|
5128
|
+
asset = _ref.asset,
|
|
5048
5129
|
addressSelection = _ref.addressSelection,
|
|
5049
5130
|
currencySelection = _ref.currencySelection,
|
|
5050
5131
|
overriddenAsset = _ref.overriddenAsset,
|
|
5051
5132
|
pallet = _ref.pallet,
|
|
5052
5133
|
method = _ref.method;
|
|
5053
5134
|
var fees = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
5135
|
+
var _extractVersionFromHe = extractVersionFromHeader(currencySelection),
|
|
5136
|
+
_extractVersionFromHe2 = _slicedToArray(_extractVersionFromHe, 2),
|
|
5137
|
+
version = _extractVersionFromHe2[0],
|
|
5138
|
+
multiAssets = _extractVersionFromHe2[1];
|
|
5139
|
+
var resolvedMultiAssets = addXcmVersionHeader(maybeOverrideMultiAssets(version, asset.amount, multiAssets, overriddenAsset), version);
|
|
5054
5140
|
var feeAssetIndex = overriddenAsset === undefined || isTMultiLocation(overriddenAsset) ? DEFAULT_FEE_ASSET : overriddenAsset.findIndex(function (asset) {
|
|
5055
5141
|
return asset.isFeeAsset;
|
|
5056
5142
|
});
|
|
@@ -5060,7 +5146,7 @@ var PolkadotXCMTransferImpl = /*#__PURE__*/function () {
|
|
|
5060
5146
|
parameters: _objectSpread2({
|
|
5061
5147
|
dest: header,
|
|
5062
5148
|
beneficiary: addressSelection,
|
|
5063
|
-
assets:
|
|
5149
|
+
assets: resolvedMultiAssets,
|
|
5064
5150
|
fee_asset_item: feeAssetIndex
|
|
5065
5151
|
}, fees !== undefined ? {
|
|
5066
5152
|
weight_limit: fees
|
|
@@ -5088,13 +5174,14 @@ var AssetHubKusama$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5088
5174
|
if (destination === 'AssetHubPolkadot') {
|
|
5089
5175
|
return Promise.resolve(getNode('AssetHubPolkadot').handleBridgeTransfer(input, 'Polkadot'));
|
|
5090
5176
|
}
|
|
5091
|
-
|
|
5177
|
+
var isSystemNode = !isTMultiLocation(destination) && SYSTEM_NODES_KUSAMA.includes(destination);
|
|
5178
|
+
if (scenario === 'ParaToPara' && asset.symbol === 'KSM' && !isForeignAsset(asset) && !isSystemNode) {
|
|
5092
5179
|
throw new ScenarioNotSupportedError(this.node, scenario, 'Para to Para scenarios for KSM transfer from AssetHub are not supported, you have to transfer KSM to Relay chain and transfer to destination chain from Relay chain.');
|
|
5093
5180
|
}
|
|
5094
5181
|
if (scenario === 'ParaToPara' && asset.symbol === 'DOT' && !isForeignAsset(asset)) {
|
|
5095
5182
|
throw new ScenarioNotSupportedError(this.node, scenario, 'Bridged DOT cannot currently be transfered from AssetHubKusama, if you are sending different DOT asset, please specify {id: <DOTID>}.');
|
|
5096
5183
|
}
|
|
5097
|
-
var section = scenario === 'ParaToPara' ? 'limited_reserve_transfer_assets' : 'limited_teleport_assets';
|
|
5184
|
+
var section = scenario === 'ParaToPara' && !isSystemNode ? 'limited_reserve_transfer_assets' : 'limited_teleport_assets';
|
|
5098
5185
|
return Promise.resolve(PolkadotXCMTransferImpl.transferPolkadotXCM(input, section, 'Unlimited'));
|
|
5099
5186
|
}
|
|
5100
5187
|
}, {
|
|
@@ -5107,12 +5194,124 @@ var AssetHubKusama$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5107
5194
|
}
|
|
5108
5195
|
}, {
|
|
5109
5196
|
key: "createCurrencySpec",
|
|
5110
|
-
value: function createCurrencySpec(amount, scenario, version, asset
|
|
5111
|
-
return getNode('AssetHubPolkadot').createCurrencySpec(amount, scenario, version, asset
|
|
5197
|
+
value: function createCurrencySpec(amount, scenario, version, asset) {
|
|
5198
|
+
return getNode('AssetHubPolkadot').createCurrencySpec(amount, scenario, version, asset);
|
|
5112
5199
|
}
|
|
5113
5200
|
}]);
|
|
5114
5201
|
}(ParachainNode);
|
|
5115
5202
|
|
|
5203
|
+
var transformMultiLocation = function transformMultiLocation(multiLocation) {
|
|
5204
|
+
var newInterior;
|
|
5205
|
+
if (multiLocation.interior === 'Here') {
|
|
5206
|
+
newInterior = 'Here';
|
|
5207
|
+
} else {
|
|
5208
|
+
var junctions = Object.values(multiLocation.interior).flat().filter(function (junction) {
|
|
5209
|
+
return _typeof(junction) === 'object' && junction !== null;
|
|
5210
|
+
});
|
|
5211
|
+
var filteredJunctions = junctions.filter(function (junction) {
|
|
5212
|
+
return !('Parachain' in junction);
|
|
5213
|
+
});
|
|
5214
|
+
if (filteredJunctions.length === 0) {
|
|
5215
|
+
newInterior = 'Here';
|
|
5216
|
+
} else {
|
|
5217
|
+
newInterior = _defineProperty({}, "X".concat(filteredJunctions.length), filteredJunctions);
|
|
5218
|
+
}
|
|
5219
|
+
}
|
|
5220
|
+
return _objectSpread2(_objectSpread2({}, multiLocation), {}, {
|
|
5221
|
+
parents: Parents.ZERO,
|
|
5222
|
+
interior: newInterior
|
|
5223
|
+
});
|
|
5224
|
+
};
|
|
5225
|
+
|
|
5226
|
+
var createExecuteXcm = function createExecuteXcm(input, weight, executionFee) {
|
|
5227
|
+
var api = input.api,
|
|
5228
|
+
_input$version = input.version,
|
|
5229
|
+
version = _input$version === void 0 ? Version.V4 : _input$version,
|
|
5230
|
+
asset = input.asset,
|
|
5231
|
+
scenario = input.scenario,
|
|
5232
|
+
destination = input.destination,
|
|
5233
|
+
paraIdTo = input.paraIdTo,
|
|
5234
|
+
address = input.address;
|
|
5235
|
+
var destWithHeader = createPolkadotXcmHeader(scenario, version, destination, paraIdTo);
|
|
5236
|
+
var _extractVersionFromHe = extractVersionFromHeader(destWithHeader),
|
|
5237
|
+
_extractVersionFromHe2 = _slicedToArray(_extractVersionFromHe, 2);
|
|
5238
|
+
_extractVersionFromHe2[0];
|
|
5239
|
+
var dest = _extractVersionFromHe2[1];
|
|
5240
|
+
var beneficiaryWithHeader = generateAddressPayload(api, scenario, 'PolkadotXcm', address, version, paraIdTo);
|
|
5241
|
+
var _extractVersionFromHe3 = extractVersionFromHeader(beneficiaryWithHeader),
|
|
5242
|
+
_extractVersionFromHe4 = _slicedToArray(_extractVersionFromHe3, 2);
|
|
5243
|
+
_extractVersionFromHe4[0];
|
|
5244
|
+
var beneficiary = _extractVersionFromHe4[1];
|
|
5245
|
+
var transformedMultiLocation = transformMultiLocation(asset.multiLocation);
|
|
5246
|
+
var amountWithoutFee = BigInt(asset.amount) - executionFee;
|
|
5247
|
+
var call = {
|
|
5248
|
+
module: 'PolkadotXcm',
|
|
5249
|
+
section: 'execute',
|
|
5250
|
+
parameters: {
|
|
5251
|
+
message: _defineProperty({}, version, [{
|
|
5252
|
+
WithdrawAsset: [{
|
|
5253
|
+
id: transformedMultiLocation,
|
|
5254
|
+
fun: {
|
|
5255
|
+
Fungible: asset.amount
|
|
5256
|
+
}
|
|
5257
|
+
}]
|
|
5258
|
+
}, {
|
|
5259
|
+
BuyExecution: {
|
|
5260
|
+
fees: {
|
|
5261
|
+
id: transformedMultiLocation,
|
|
5262
|
+
fun: {
|
|
5263
|
+
Fungible: executionFee
|
|
5264
|
+
}
|
|
5265
|
+
},
|
|
5266
|
+
weight_limit: {
|
|
5267
|
+
Limited: {
|
|
5268
|
+
ref_time: 100n,
|
|
5269
|
+
proof_size: 0n
|
|
5270
|
+
}
|
|
5271
|
+
}
|
|
5272
|
+
}
|
|
5273
|
+
}, {
|
|
5274
|
+
DepositReserveAsset: {
|
|
5275
|
+
assets: {
|
|
5276
|
+
Definite: [{
|
|
5277
|
+
id: transformedMultiLocation,
|
|
5278
|
+
fun: {
|
|
5279
|
+
Fungible: amountWithoutFee
|
|
5280
|
+
}
|
|
5281
|
+
}]
|
|
5282
|
+
},
|
|
5283
|
+
dest: dest,
|
|
5284
|
+
xcm: [{
|
|
5285
|
+
BuyExecution: {
|
|
5286
|
+
fees: {
|
|
5287
|
+
id: asset.multiLocation,
|
|
5288
|
+
fun: {
|
|
5289
|
+
Fungible: amountWithoutFee
|
|
5290
|
+
}
|
|
5291
|
+
},
|
|
5292
|
+
weight_limit: 'Unlimited'
|
|
5293
|
+
}
|
|
5294
|
+
}, {
|
|
5295
|
+
DepositAsset: {
|
|
5296
|
+
assets: {
|
|
5297
|
+
Wild: {
|
|
5298
|
+
AllCounted: 1
|
|
5299
|
+
}
|
|
5300
|
+
},
|
|
5301
|
+
beneficiary: beneficiary
|
|
5302
|
+
}
|
|
5303
|
+
}]
|
|
5304
|
+
}
|
|
5305
|
+
}]),
|
|
5306
|
+
max_weight: {
|
|
5307
|
+
ref_time: weight.refTime,
|
|
5308
|
+
proof_size: weight.proofSize
|
|
5309
|
+
}
|
|
5310
|
+
}
|
|
5311
|
+
};
|
|
5312
|
+
return api.callTxMethod(call);
|
|
5313
|
+
};
|
|
5314
|
+
|
|
5116
5315
|
var generateAddressMultiLocationV4 = function generateAddressMultiLocationV4(api, address) {
|
|
5117
5316
|
var isMultiLocation = _typeof(address) === 'object';
|
|
5118
5317
|
if (isMultiLocation) {
|
|
@@ -5157,7 +5356,8 @@ var AssetHubPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5157
5356
|
_this.handleBifrostEthTransfer = function (input) {
|
|
5158
5357
|
var api = input.api,
|
|
5159
5358
|
scenario = input.scenario,
|
|
5160
|
-
version = input.version,
|
|
5359
|
+
_input$version = input.version,
|
|
5360
|
+
version = _input$version === void 0 ? _this.version : _input$version,
|
|
5161
5361
|
destination = input.destination,
|
|
5162
5362
|
asset = input.asset;
|
|
5163
5363
|
if (!isForeignAsset(asset)) {
|
|
@@ -5166,19 +5366,18 @@ var AssetHubPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5166
5366
|
if (!asset.multiLocation) {
|
|
5167
5367
|
throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no multiLocation"));
|
|
5168
5368
|
}
|
|
5169
|
-
var versionOrDefault = version !== null && version !== void 0 ? version : _this.version;
|
|
5170
5369
|
var call = {
|
|
5171
5370
|
module: 'PolkadotXcm',
|
|
5172
5371
|
section: 'transfer_assets_using_type_and_then',
|
|
5173
5372
|
parameters: {
|
|
5174
|
-
dest: _this.createPolkadotXcmHeader(scenario,
|
|
5175
|
-
assets: _defineProperty({},
|
|
5373
|
+
dest: _this.createPolkadotXcmHeader(scenario, version, destination, getParaId('BifrostPolkadot')),
|
|
5374
|
+
assets: _defineProperty({}, version, [createMultiAsset(version, asset.amount, asset.multiLocation)]),
|
|
5176
5375
|
assets_transfer_type: 'LocalReserve',
|
|
5177
|
-
remote_fees_id: _defineProperty({},
|
|
5376
|
+
remote_fees_id: _defineProperty({}, version, {
|
|
5178
5377
|
Concrete: asset.multiLocation
|
|
5179
5378
|
}),
|
|
5180
5379
|
fees_transfer_type: 'LocalReserve',
|
|
5181
|
-
custom_xcm_on_dest: createCustomXcmToBifrost(input,
|
|
5380
|
+
custom_xcm_on_dest: createCustomXcmToBifrost(input, version),
|
|
5182
5381
|
weight_limit: 'Unlimited'
|
|
5183
5382
|
}
|
|
5184
5383
|
};
|
|
@@ -5192,16 +5391,26 @@ var AssetHubPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5192
5391
|
value: function handleBridgeTransfer(input, targetChain) {
|
|
5193
5392
|
var _input$asset$symbol, _input$asset$symbol2, _input$asset$symbol3, _input$asset$symbol4;
|
|
5194
5393
|
if (targetChain === 'Kusama' && ((_input$asset$symbol = input.asset.symbol) === null || _input$asset$symbol === void 0 ? void 0 : _input$asset$symbol.toUpperCase()) === 'KSM' || targetChain === 'Polkadot' && ((_input$asset$symbol2 = input.asset.symbol) === null || _input$asset$symbol2 === void 0 ? void 0 : _input$asset$symbol2.toUpperCase()) === 'DOT') {
|
|
5394
|
+
var overriddenVersion = Version.V4;
|
|
5395
|
+
var customMultiLocation = {
|
|
5396
|
+
parents: Parents.TWO,
|
|
5397
|
+
interior: {
|
|
5398
|
+
X1: [{
|
|
5399
|
+
GlobalConsensus: targetChain
|
|
5400
|
+
}]
|
|
5401
|
+
}
|
|
5402
|
+
};
|
|
5195
5403
|
var modifiedInput = _objectSpread2(_objectSpread2({}, input), {}, {
|
|
5196
|
-
header: createBridgePolkadotXcmDest(
|
|
5404
|
+
header: createBridgePolkadotXcmDest(overriddenVersion, targetChain, input.destination, input.paraIdTo),
|
|
5197
5405
|
addressSelection: generateAddressMultiLocationV4(input.api, input.address),
|
|
5198
|
-
currencySelection:
|
|
5406
|
+
currencySelection: createVersionedMultiAssets(overriddenVersion, input.asset.amount, customMultiLocation)
|
|
5199
5407
|
});
|
|
5200
5408
|
return PolkadotXCMTransferImpl.transferPolkadotXCM(modifiedInput, 'transfer_assets', 'Unlimited');
|
|
5201
5409
|
} else if (targetChain === 'Polkadot' && ((_input$asset$symbol3 = input.asset.symbol) === null || _input$asset$symbol3 === void 0 ? void 0 : _input$asset$symbol3.toUpperCase()) === 'KSM' || targetChain === 'Kusama' && ((_input$asset$symbol4 = input.asset.symbol) === null || _input$asset$symbol4 === void 0 ? void 0 : _input$asset$symbol4.toUpperCase()) === 'DOT') {
|
|
5410
|
+
var _overriddenVersion = Version.V3;
|
|
5202
5411
|
var _modifiedInput = _objectSpread2(_objectSpread2({}, input), {}, {
|
|
5203
|
-
header: createBridgePolkadotXcmDest(
|
|
5204
|
-
currencySelection:
|
|
5412
|
+
header: createBridgePolkadotXcmDest(_overriddenVersion, targetChain, input.destination, input.paraIdTo),
|
|
5413
|
+
currencySelection: createVersionedMultiAssets(_overriddenVersion, input.asset.amount, DOT_MULTILOCATION)
|
|
5205
5414
|
});
|
|
5206
5415
|
return PolkadotXCMTransferImpl.transferPolkadotXCM(_modifiedInput, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
5207
5416
|
}
|
|
@@ -5228,7 +5437,7 @@ var AssetHubPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5228
5437
|
var modifiedInput = _objectSpread2(_objectSpread2({}, input), {}, {
|
|
5229
5438
|
header: createPolkadotXcmHeader(scenario, this.version, destination, paraIdTo, ETHEREUM_JUNCTION, Parents.TWO),
|
|
5230
5439
|
addressSelection: generateAddressPayload(api, scenario, 'PolkadotXcm', address, this.version, paraIdTo),
|
|
5231
|
-
currencySelection:
|
|
5440
|
+
currencySelection: createVersionedMultiAssets(Version.V3, asset.amount, asset.multiLocation)
|
|
5232
5441
|
});
|
|
5233
5442
|
return PolkadotXCMTransferImpl.transferPolkadotXCM(modifiedInput, 'transfer_assets', 'Unlimited');
|
|
5234
5443
|
}
|
|
@@ -5238,7 +5447,6 @@ var AssetHubPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5238
5447
|
var api = input.api,
|
|
5239
5448
|
address = input.address,
|
|
5240
5449
|
asset = input.asset,
|
|
5241
|
-
overriddenAsset = input.overriddenAsset,
|
|
5242
5450
|
scenario = input.scenario,
|
|
5243
5451
|
destination = input.destination,
|
|
5244
5452
|
paraIdTo = input.paraIdTo;
|
|
@@ -5255,7 +5463,7 @@ var AssetHubPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5255
5463
|
var modifiedInput = _objectSpread2(_objectSpread2({}, input), {}, {
|
|
5256
5464
|
header: this.createPolkadotXcmHeader(scenario, version, destination, paraId),
|
|
5257
5465
|
addressSelection: generateAddressPayload(api, scenario, 'PolkadotXcm', address, version, paraId),
|
|
5258
|
-
currencySelection:
|
|
5466
|
+
currencySelection: createVersionedMultiAssets(version, asset.amount, customMultiLocation)
|
|
5259
5467
|
});
|
|
5260
5468
|
return PolkadotXCMTransferImpl.transferPolkadotXCM(modifiedInput, 'limited_teleport_assets', 'Unlimited');
|
|
5261
5469
|
}
|
|
@@ -5266,24 +5474,23 @@ var AssetHubPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5266
5474
|
var asset = input.asset,
|
|
5267
5475
|
destination = input.destination,
|
|
5268
5476
|
paraIdTo = input.paraIdTo,
|
|
5269
|
-
overriddenAsset = input.overriddenAsset,
|
|
5270
5477
|
scenario = input.scenario,
|
|
5271
5478
|
api = input.api,
|
|
5272
|
-
|
|
5479
|
+
_input$version2 = input.version,
|
|
5480
|
+
version = _input$version2 === void 0 ? this.version : _input$version2,
|
|
5273
5481
|
address = input.address;
|
|
5274
5482
|
if ((((_asset$symbol = asset.symbol) === null || _asset$symbol === void 0 ? void 0 : _asset$symbol.toUpperCase()) === 'USDT' || ((_asset$symbol2 = asset.symbol) === null || _asset$symbol2 === void 0 ? void 0 : _asset$symbol2.toUpperCase()) === 'USDC') && destination === 'BifrostPolkadot') {
|
|
5275
|
-
var _input$
|
|
5276
|
-
var versionOrDefault = (_input$
|
|
5483
|
+
var _input$version3;
|
|
5484
|
+
var versionOrDefault = (_input$version3 = input.version) !== null && _input$version3 !== void 0 ? _input$version3 : Version.V2;
|
|
5277
5485
|
return _objectSpread2(_objectSpread2({}, input), {}, {
|
|
5278
5486
|
header: this.createPolkadotXcmHeader(scenario, versionOrDefault, destination, paraIdTo),
|
|
5279
5487
|
addressSelection: generateAddressPayload(api, scenario, 'PolkadotXcm', address, versionOrDefault, paraIdTo),
|
|
5280
|
-
currencySelection: this.createCurrencySpec(asset.amount, scenario, versionOrDefault, asset
|
|
5488
|
+
currencySelection: this.createCurrencySpec(asset.amount, scenario, versionOrDefault, asset)
|
|
5281
5489
|
});
|
|
5282
5490
|
}
|
|
5283
5491
|
if ((destination === 'Hydration' || destination === 'Polimec' || destination === 'Moonbeam' || destination === 'BifrostPolkadot') && asset.symbol === 'DOT') {
|
|
5284
|
-
var _versionOrDefault = version !== null && version !== void 0 ? version : this.version;
|
|
5285
5492
|
return _objectSpread2(_objectSpread2({}, input), {}, {
|
|
5286
|
-
currencySelection:
|
|
5493
|
+
currencySelection: createVersionedMultiAssets(version, asset.amount, DOT_MULTILOCATION)
|
|
5287
5494
|
});
|
|
5288
5495
|
}
|
|
5289
5496
|
return input;
|
|
@@ -5291,15 +5498,96 @@ var AssetHubPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5291
5498
|
}, {
|
|
5292
5499
|
key: "getSection",
|
|
5293
5500
|
value: function getSection(scenario, destination) {
|
|
5501
|
+
var isSystemNode = !isTMultiLocation(destination) && SYSTEM_NODES_POLKADOT.includes(destination);
|
|
5294
5502
|
if (destination === 'Polimec' || destination === 'Moonbeam') return 'transfer_assets';
|
|
5295
|
-
return scenario === 'ParaToPara' ? 'limited_reserve_transfer_assets' : 'limited_teleport_assets';
|
|
5503
|
+
return scenario === 'ParaToPara' && !isSystemNode ? 'limited_reserve_transfer_assets' : 'limited_teleport_assets';
|
|
5296
5504
|
}
|
|
5505
|
+
}, {
|
|
5506
|
+
key: "handleExecuteTransfer",
|
|
5507
|
+
value: function () {
|
|
5508
|
+
var _handleExecuteTransfer = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(input) {
|
|
5509
|
+
var api, senderAddress, asset, MIN_FEE, maxU64, dummyTx, dryRunResult, feeDotShifted, toMl, feeConverted, feeConvertedPadded;
|
|
5510
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
5511
|
+
while (1) switch (_context.prev = _context.next) {
|
|
5512
|
+
case 0:
|
|
5513
|
+
api = input.api, senderAddress = input.senderAddress, asset = input.asset;
|
|
5514
|
+
if (senderAddress) {
|
|
5515
|
+
_context.next = 3;
|
|
5516
|
+
break;
|
|
5517
|
+
}
|
|
5518
|
+
throw new Error('Please provide senderAddress');
|
|
5519
|
+
case 3:
|
|
5520
|
+
validateAddress(senderAddress, this.node, false);
|
|
5521
|
+
MIN_FEE = 150000n;
|
|
5522
|
+
maxU64 = (1n << 64n) - 1n;
|
|
5523
|
+
dummyTx = createExecuteXcm(input, {
|
|
5524
|
+
refTime: maxU64,
|
|
5525
|
+
proofSize: maxU64
|
|
5526
|
+
}, MIN_FEE);
|
|
5527
|
+
_context.next = 9;
|
|
5528
|
+
return api.getDryRun({
|
|
5529
|
+
node: this.node,
|
|
5530
|
+
tx: dummyTx,
|
|
5531
|
+
address: senderAddress
|
|
5532
|
+
});
|
|
5533
|
+
case 9:
|
|
5534
|
+
dryRunResult = _context.sent;
|
|
5535
|
+
if (dryRunResult.success) {
|
|
5536
|
+
_context.next = 12;
|
|
5537
|
+
break;
|
|
5538
|
+
}
|
|
5539
|
+
throw new Error("Dry run failed: ".concat(dryRunResult.failureReason));
|
|
5540
|
+
case 12:
|
|
5541
|
+
if (dryRunResult.weight) {
|
|
5542
|
+
_context.next = 14;
|
|
5543
|
+
break;
|
|
5544
|
+
}
|
|
5545
|
+
throw new Error('Dry run failed: weight not found');
|
|
5546
|
+
case 14:
|
|
5547
|
+
feeDotShifted = dryRunResult.fee / 10n;
|
|
5548
|
+
toMl = transformMultiLocation(asset.multiLocation);
|
|
5549
|
+
_context.next = 18;
|
|
5550
|
+
return api.quoteAhPrice(DOT_MULTILOCATION, toMl, feeDotShifted);
|
|
5551
|
+
case 18:
|
|
5552
|
+
feeConverted = _context.sent;
|
|
5553
|
+
if (feeConverted) {
|
|
5554
|
+
_context.next = 21;
|
|
5555
|
+
break;
|
|
5556
|
+
}
|
|
5557
|
+
throw new Error("Pool DOT -> ".concat(asset.symbol, " not found."));
|
|
5558
|
+
case 21:
|
|
5559
|
+
if (!(BigInt(asset.amount) - feeConverted < 0)) {
|
|
5560
|
+
_context.next = 23;
|
|
5561
|
+
break;
|
|
5562
|
+
}
|
|
5563
|
+
throw new Error("Insufficient balance. Fee: ".concat(feeConverted, ", Amount: ").concat(asset.amount));
|
|
5564
|
+
case 23:
|
|
5565
|
+
feeConvertedPadded = feeConverted * 3n / 2n; // increases fee by 50%
|
|
5566
|
+
return _context.abrupt("return", createExecuteXcm(input, dryRunResult.weight, feeConvertedPadded));
|
|
5567
|
+
case 25:
|
|
5568
|
+
case "end":
|
|
5569
|
+
return _context.stop();
|
|
5570
|
+
}
|
|
5571
|
+
}, _callee, this);
|
|
5572
|
+
}));
|
|
5573
|
+
function handleExecuteTransfer(_x) {
|
|
5574
|
+
return _handleExecuteTransfer.apply(this, arguments);
|
|
5575
|
+
}
|
|
5576
|
+
return handleExecuteTransfer;
|
|
5577
|
+
}()
|
|
5297
5578
|
}, {
|
|
5298
5579
|
key: "transferPolkadotXCM",
|
|
5299
5580
|
value: function transferPolkadotXCM(input) {
|
|
5300
5581
|
var scenario = input.scenario,
|
|
5301
5582
|
asset = input.asset,
|
|
5302
|
-
destination = input.destination
|
|
5583
|
+
destination = input.destination,
|
|
5584
|
+
feeAsset = input.feeAsset;
|
|
5585
|
+
if (feeAsset) {
|
|
5586
|
+
if (!isAssetEqual(feeAsset, asset)) {
|
|
5587
|
+
throw new InvalidCurrencyError("Fee asset does not match transfer asset.");
|
|
5588
|
+
}
|
|
5589
|
+
return Promise.resolve(this.handleExecuteTransfer(input));
|
|
5590
|
+
}
|
|
5303
5591
|
if (destination === 'AssetHubKusama') {
|
|
5304
5592
|
return Promise.resolve(this.handleBridgeTransfer(input, 'Kusama'));
|
|
5305
5593
|
}
|
|
@@ -5318,7 +5606,8 @@ var AssetHubPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5318
5606
|
if (destination === 'BifrostPolkadot' && isEthereumAsset) {
|
|
5319
5607
|
return Promise.resolve(this.handleBifrostEthTransfer(input));
|
|
5320
5608
|
}
|
|
5321
|
-
|
|
5609
|
+
var isSystemNode = !isTMultiLocation(destination) && SYSTEM_NODES_POLKADOT.includes(destination);
|
|
5610
|
+
if (scenario === 'ParaToPara' && asset.symbol === 'DOT' && !isForeignAsset(asset) && destination !== 'Hydration' && destination !== 'Polimec' && destination !== 'Moonbeam' && destination !== 'BifrostPolkadot' && destination !== 'PeoplePolkadot' && !isSystemNode) {
|
|
5322
5611
|
throw new ScenarioNotSupportedError(this.node, scenario, 'Para to Para scenarios for DOT transfer from AssetHub are not supported, you have to transfer DOT to Relay chain and transfer to destination chain from Relay chain.');
|
|
5323
5612
|
}
|
|
5324
5613
|
if (scenario === 'ParaToPara' && asset.symbol === 'KSM' && !isForeignAsset(asset)) {
|
|
@@ -5338,18 +5627,20 @@ var AssetHubPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5338
5627
|
}
|
|
5339
5628
|
}, {
|
|
5340
5629
|
key: "createCurrencySpec",
|
|
5341
|
-
value: function createCurrencySpec
|
|
5630
|
+
value: function createCurrencySpec(amount, scenario, version, asset) {
|
|
5342
5631
|
if (scenario === 'ParaToPara') {
|
|
5343
|
-
var
|
|
5344
|
-
|
|
5345
|
-
|
|
5346
|
-
|
|
5347
|
-
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
|
|
5352
|
-
|
|
5632
|
+
var multiLocation = asset ? asset.multiLocation : undefined;
|
|
5633
|
+
return createVersionedMultiAssets(version, amount, multiLocation !== null && multiLocation !== void 0 ? multiLocation : {
|
|
5634
|
+
parents: Parents.ZERO,
|
|
5635
|
+
interior: {
|
|
5636
|
+
X2: [{
|
|
5637
|
+
PalletInstance: 50
|
|
5638
|
+
}, {
|
|
5639
|
+
// TODO: Handle missing assedId
|
|
5640
|
+
GeneralIndex: asset && isForeignAsset(asset) && asset.assetId ? asset.assetId : 0
|
|
5641
|
+
}]
|
|
5642
|
+
}
|
|
5643
|
+
});
|
|
5353
5644
|
} else {
|
|
5354
5645
|
return _superPropGet(AssetHubPolkadot, "createCurrencySpec", this, 3)([amount, scenario, version, asset]);
|
|
5355
5646
|
}
|
|
@@ -5495,16 +5786,18 @@ var BifrostPolkadot$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5495
5786
|
key: "transferToAssetHub",
|
|
5496
5787
|
value: function transferToAssetHub(input) {
|
|
5497
5788
|
var _getAssetId;
|
|
5498
|
-
var
|
|
5499
|
-
asset = input.asset;
|
|
5789
|
+
var asset = input.asset;
|
|
5500
5790
|
return Promise.resolve(PolkadotXCMTransferImpl.transferPolkadotXCM(_objectSpread2(_objectSpread2({}, input), {}, {
|
|
5501
|
-
currencySelection:
|
|
5502
|
-
|
|
5503
|
-
|
|
5504
|
-
|
|
5505
|
-
|
|
5506
|
-
|
|
5507
|
-
|
|
5791
|
+
currencySelection: createVersionedMultiAssets(this.version, asset.amount, {
|
|
5792
|
+
parents: asset.symbol === 'DOT' ? Parents.ONE : Parents.TWO,
|
|
5793
|
+
interior: asset.symbol === 'WETH' ? {
|
|
5794
|
+
X2: [ETHEREUM_JUNCTION, {
|
|
5795
|
+
AccountKey20: {
|
|
5796
|
+
key: (_getAssetId = getAssetId('Ethereum', 'WETH')) !== null && _getAssetId !== void 0 ? _getAssetId : ''
|
|
5797
|
+
}
|
|
5798
|
+
}]
|
|
5799
|
+
} : 'Here'
|
|
5800
|
+
})
|
|
5508
5801
|
}), 'transfer_assets', 'Unlimited'));
|
|
5509
5802
|
}
|
|
5510
5803
|
}, {
|
|
@@ -5771,16 +6064,18 @@ var Crab$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
5771
6064
|
}
|
|
5772
6065
|
}, {
|
|
5773
6066
|
key: "createCurrencySpec",
|
|
5774
|
-
value: function createCurrencySpec
|
|
6067
|
+
value: function createCurrencySpec(amount, scenario, version, _asset) {
|
|
5775
6068
|
if (scenario === 'ParaToPara') {
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
6069
|
+
return createVersionedMultiAssets(version, amount, {
|
|
6070
|
+
parents: Parents.ZERO,
|
|
6071
|
+
interior: {
|
|
6072
|
+
X1: {
|
|
6073
|
+
PalletInstance: 5
|
|
6074
|
+
}
|
|
5779
6075
|
}
|
|
5780
|
-
};
|
|
5781
|
-
return createCurrencySpec(amount, version, Parents.ZERO, overridedMultiLocation, interior);
|
|
6076
|
+
});
|
|
5782
6077
|
} else {
|
|
5783
|
-
return _superPropGet(Crab, "createCurrencySpec", this, 3)([amount, scenario, version
|
|
6078
|
+
return _superPropGet(Crab, "createCurrencySpec", this, 3)([amount, scenario, version]);
|
|
5784
6079
|
}
|
|
5785
6080
|
}
|
|
5786
6081
|
}]);
|
|
@@ -6165,8 +6460,8 @@ var Moonbeam$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
6165
6460
|
}
|
|
6166
6461
|
_inherits(Moonbeam, _ParachainNode);
|
|
6167
6462
|
return _createClass(Moonbeam, [{
|
|
6168
|
-
key: "
|
|
6169
|
-
value: function
|
|
6463
|
+
key: "getMultiLocation",
|
|
6464
|
+
value: function getMultiLocation(asset, scenario) {
|
|
6170
6465
|
if (scenario === 'ParaToRelay') return DOT_MULTILOCATION;
|
|
6171
6466
|
if (asset.symbol === this.getNativeAssetSymbol()) return {
|
|
6172
6467
|
parents: Parents.ZERO,
|
|
@@ -6187,11 +6482,10 @@ var Moonbeam$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
6187
6482
|
var asset = input.asset,
|
|
6188
6483
|
scenario = input.scenario,
|
|
6189
6484
|
_input$version = input.version,
|
|
6190
|
-
version = _input$version === void 0 ? this.version : _input$version
|
|
6191
|
-
|
|
6192
|
-
var multiLocation = this.getJunctions(asset, scenario);
|
|
6485
|
+
version = _input$version === void 0 ? this.version : _input$version;
|
|
6486
|
+
var multiLocation = this.getMultiLocation(asset, scenario);
|
|
6193
6487
|
return Promise.resolve(PolkadotXCMTransferImpl.transferPolkadotXCM(_objectSpread2(_objectSpread2({}, input), {}, {
|
|
6194
|
-
currencySelection:
|
|
6488
|
+
currencySelection: createVersionedMultiAssets(version, asset.amount, multiLocation)
|
|
6195
6489
|
}), 'transfer_assets', 'Unlimited'));
|
|
6196
6490
|
}
|
|
6197
6491
|
}, {
|
|
@@ -6212,8 +6506,8 @@ var Moonriver$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
6212
6506
|
}
|
|
6213
6507
|
_inherits(Moonriver, _ParachainNode);
|
|
6214
6508
|
return _createClass(Moonriver, [{
|
|
6215
|
-
key: "
|
|
6216
|
-
value: function
|
|
6509
|
+
key: "getMultiLocation",
|
|
6510
|
+
value: function getMultiLocation(asset, scenario) {
|
|
6217
6511
|
if (scenario === 'ParaToRelay') return DOT_MULTILOCATION;
|
|
6218
6512
|
if (asset.symbol === this.getNativeAssetSymbol()) return {
|
|
6219
6513
|
parents: Parents.ZERO,
|
|
@@ -6234,11 +6528,10 @@ var Moonriver$1 = /*#__PURE__*/function (_ParachainNode) {
|
|
|
6234
6528
|
var asset = input.asset,
|
|
6235
6529
|
scenario = input.scenario,
|
|
6236
6530
|
_input$version = input.version,
|
|
6237
|
-
version = _input$version === void 0 ? this.version : _input$version
|
|
6238
|
-
|
|
6239
|
-
var multiLocation = this.getJunctions(asset, scenario);
|
|
6531
|
+
version = _input$version === void 0 ? this.version : _input$version;
|
|
6532
|
+
var multiLocation = this.getMultiLocation(asset, scenario);
|
|
6240
6533
|
return Promise.resolve(PolkadotXCMTransferImpl.transferPolkadotXCM(_objectSpread2(_objectSpread2({}, input), {}, {
|
|
6241
|
-
currencySelection:
|
|
6534
|
+
currencySelection: createVersionedMultiAssets(version, asset.amount, multiLocation)
|
|
6242
6535
|
}), 'transfer_assets', 'Unlimited'));
|
|
6243
6536
|
}
|
|
6244
6537
|
}, {
|
|
@@ -6529,7 +6822,12 @@ var XTransferTransferImpl = /*#__PURE__*/function () {
|
|
|
6529
6822
|
if (isMultiLocationDestination) {
|
|
6530
6823
|
throw new Error('Multilocation destinations are not supported for specific transfer you are trying to create. In special cases such as xTokens or xTransfer pallet try using address multilocation instead (for both destination and address in same multilocation set (eg. X2 - Parachain, Address). For further assistance please open issue in our repository.');
|
|
6531
6824
|
}
|
|
6532
|
-
var
|
|
6825
|
+
var version = Version.V1;
|
|
6826
|
+
var multiAssets = [createMultiAsset(version, asset.amount, {
|
|
6827
|
+
parents: Parents.ZERO,
|
|
6828
|
+
interior: 'Here'
|
|
6829
|
+
})];
|
|
6830
|
+
var resolvedMultiAssets = maybeOverrideMultiAssets(version, asset.amount, multiAssets, overriddenAsset);
|
|
6533
6831
|
var dest = getDestination(input);
|
|
6534
6832
|
var section = 'transfer';
|
|
6535
6833
|
var destWeight = determineDestWeight(destination);
|
|
@@ -6537,7 +6835,7 @@ var XTransferTransferImpl = /*#__PURE__*/function () {
|
|
|
6537
6835
|
module: pallet !== null && pallet !== void 0 ? pallet : 'XTransfer',
|
|
6538
6836
|
section: method !== null && method !== void 0 ? method : section,
|
|
6539
6837
|
parameters: {
|
|
6540
|
-
asset:
|
|
6838
|
+
asset: resolvedMultiAssets[0],
|
|
6541
6839
|
dest: dest,
|
|
6542
6840
|
dest_weight: destWeight
|
|
6543
6841
|
}
|
|
@@ -7001,14 +7299,7 @@ var Polimec = {
|
|
|
7001
7299
|
],
|
|
7002
7300
|
otherAssets: [
|
|
7003
7301
|
{
|
|
7004
|
-
|
|
7005
|
-
symbol: "DOT",
|
|
7006
|
-
decimals: 10,
|
|
7007
|
-
existentialDeposit: "100000000"
|
|
7008
|
-
},
|
|
7009
|
-
{
|
|
7010
|
-
assetId: "1984",
|
|
7011
|
-
symbol: "USDt",
|
|
7302
|
+
symbol: "USDC",
|
|
7012
7303
|
decimals: 6,
|
|
7013
7304
|
multiLocation: {
|
|
7014
7305
|
parents: 1,
|
|
@@ -7021,7 +7312,7 @@ var Polimec = {
|
|
|
7021
7312
|
PalletInstance: 50
|
|
7022
7313
|
},
|
|
7023
7314
|
{
|
|
7024
|
-
GeneralIndex:
|
|
7315
|
+
GeneralIndex: 1337
|
|
7025
7316
|
}
|
|
7026
7317
|
]
|
|
7027
7318
|
}
|
|
@@ -7029,8 +7320,7 @@ var Polimec = {
|
|
|
7029
7320
|
existentialDeposit: "70000"
|
|
7030
7321
|
},
|
|
7031
7322
|
{
|
|
7032
|
-
|
|
7033
|
-
symbol: "USDC",
|
|
7323
|
+
symbol: "USDt",
|
|
7034
7324
|
decimals: 6,
|
|
7035
7325
|
multiLocation: {
|
|
7036
7326
|
parents: 1,
|
|
@@ -7043,12 +7333,23 @@ var Polimec = {
|
|
|
7043
7333
|
PalletInstance: 50
|
|
7044
7334
|
},
|
|
7045
7335
|
{
|
|
7046
|
-
GeneralIndex:
|
|
7336
|
+
GeneralIndex: 1984
|
|
7047
7337
|
}
|
|
7048
7338
|
]
|
|
7049
7339
|
}
|
|
7050
7340
|
},
|
|
7051
7341
|
existentialDeposit: "70000"
|
|
7342
|
+
},
|
|
7343
|
+
{
|
|
7344
|
+
symbol: "DOT",
|
|
7345
|
+
decimals: 10,
|
|
7346
|
+
multiLocation: {
|
|
7347
|
+
parents: 1,
|
|
7348
|
+
interior: {
|
|
7349
|
+
Here: null
|
|
7350
|
+
}
|
|
7351
|
+
},
|
|
7352
|
+
existentialDeposit: "100000000"
|
|
7052
7353
|
}
|
|
7053
7354
|
]
|
|
7054
7355
|
};
|
|
@@ -19001,13 +19302,13 @@ var getBalanceForeignPolkadotXcm = /*#__PURE__*/function () {
|
|
|
19001
19302
|
_context.next = 12;
|
|
19002
19303
|
break;
|
|
19003
19304
|
}
|
|
19004
|
-
if (!(asset.
|
|
19305
|
+
if (!(asset.multiLocation === undefined)) {
|
|
19005
19306
|
_context.next = 11;
|
|
19006
19307
|
break;
|
|
19007
19308
|
}
|
|
19008
|
-
throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no
|
|
19309
|
+
throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(asset), " has no multi-location"));
|
|
19009
19310
|
case 11:
|
|
19010
|
-
return _context.abrupt("return", api.
|
|
19311
|
+
return _context.abrupt("return", api.getAssetHubForeignBalance(address, asset.multiLocation));
|
|
19011
19312
|
case 12:
|
|
19012
19313
|
if (!(node === 'AssetHubPolkadot')) {
|
|
19013
19314
|
_context.next = 18;
|
|
@@ -19817,59 +20118,6 @@ var createApiInstanceForNode = /*#__PURE__*/function () {
|
|
|
19817
20118
|
};
|
|
19818
20119
|
}();
|
|
19819
20120
|
|
|
19820
|
-
var isPrimitive = function isPrimitive(obj) {
|
|
19821
|
-
return obj !== Object(obj);
|
|
19822
|
-
};
|
|
19823
|
-
var _deepEqual = function deepEqual(obj1, obj2) {
|
|
19824
|
-
if (obj1 === obj2) return true;
|
|
19825
|
-
if (isPrimitive(obj1) && isPrimitive(obj2)) return obj1 === obj2;
|
|
19826
|
-
if (_typeof(obj1) !== 'object' || obj1 === null || _typeof(obj2) !== 'object' || obj2 === null) {
|
|
19827
|
-
return false;
|
|
19828
|
-
}
|
|
19829
|
-
if (Array.isArray(obj1) !== Array.isArray(obj2)) {
|
|
19830
|
-
return false;
|
|
19831
|
-
}
|
|
19832
|
-
var obj1Keys = Object.keys(obj1).map(function (key) {
|
|
19833
|
-
return key.toLowerCase();
|
|
19834
|
-
});
|
|
19835
|
-
var obj2Keys = Object.keys(obj2).map(function (key) {
|
|
19836
|
-
return key.toLowerCase();
|
|
19837
|
-
});
|
|
19838
|
-
if (obj1Keys.length !== obj2Keys.length) return false;
|
|
19839
|
-
var _iterator = _createForOfIteratorHelper(obj1Keys),
|
|
19840
|
-
_step;
|
|
19841
|
-
try {
|
|
19842
|
-
var _loop = function _loop() {
|
|
19843
|
-
var key = _step.value;
|
|
19844
|
-
var keyInObj2 = obj2Keys.find(function (k) {
|
|
19845
|
-
return k === key;
|
|
19846
|
-
});
|
|
19847
|
-
if (!keyInObj2) return {
|
|
19848
|
-
v: false
|
|
19849
|
-
};
|
|
19850
|
-
var obj1Value = obj1[Object.keys(obj1).find(function (k) {
|
|
19851
|
-
return k.toLowerCase() === key;
|
|
19852
|
-
})];
|
|
19853
|
-
var obj2Value = obj2[Object.keys(obj2).find(function (k) {
|
|
19854
|
-
return k.toLowerCase() === key;
|
|
19855
|
-
})];
|
|
19856
|
-
if (!_deepEqual(obj1Value, obj2Value)) return {
|
|
19857
|
-
v: false
|
|
19858
|
-
};
|
|
19859
|
-
},
|
|
19860
|
-
_ret;
|
|
19861
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
19862
|
-
_ret = _loop();
|
|
19863
|
-
if (_ret) return _ret.v;
|
|
19864
|
-
}
|
|
19865
|
-
} catch (err) {
|
|
19866
|
-
_iterator.e(err);
|
|
19867
|
-
} finally {
|
|
19868
|
-
_iterator.f();
|
|
19869
|
-
}
|
|
19870
|
-
return true;
|
|
19871
|
-
};
|
|
19872
|
-
|
|
19873
20121
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
19874
20122
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
19875
20123
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
@@ -20392,6 +20640,19 @@ var GeneralBuilder = /*#__PURE__*/function () {
|
|
|
20392
20640
|
method: method
|
|
20393
20641
|
}));
|
|
20394
20642
|
}
|
|
20643
|
+
/**
|
|
20644
|
+
* Optional fee asset for the transaction.
|
|
20645
|
+
*
|
|
20646
|
+
* @param currency - The currency to be used for the fee.
|
|
20647
|
+
* @returns An instance of the Builder
|
|
20648
|
+
*/
|
|
20649
|
+
}, {
|
|
20650
|
+
key: "feeAsset",
|
|
20651
|
+
value: function feeAsset(currency) {
|
|
20652
|
+
return new GeneralBuilder(this.api, this.batchManager, _objectSpread2(_objectSpread2({}, this._options), {}, {
|
|
20653
|
+
feeAsset: currency
|
|
20654
|
+
}));
|
|
20655
|
+
}
|
|
20395
20656
|
/**
|
|
20396
20657
|
* Adds the transfer transaction to the batch.
|
|
20397
20658
|
*
|
|
@@ -20534,4 +20795,4 @@ var Builder = function Builder(api) {
|
|
|
20534
20795
|
return new GeneralBuilder(api, new BatchTransactionManager());
|
|
20535
20796
|
};
|
|
20536
20797
|
|
|
20537
|
-
export { AssetClaimBuilder, BatchMode, Builder, DuplicateAssetError, DuplicateAssetIdError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, Foreign, ForeignAbstract, GeneralBuilder, IncompatibleNodesError, InvalidAddressError, InvalidCurrencyError, NODES_WITH_RELAY_CHAINS, NODES_WITH_RELAY_CHAINS_DOT_KSM, NODE_NAMES, NODE_NAMES_DOT_KSM, Native, NoXCMSupportImplementedError, NodeNotSupportedError, Override, Parents, PolkadotXcmError, SUPPORTED_PALLETS, ScenarioNotSupportedError, Version, XTokensError, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, createApiInstanceForNode, createX1Payload, _deepEqual as deepEqual, determineRelayChain, findAssetById, findAssetByMultiLocation, findAssetBySymbol, findBestMatches, generateAddressMultiLocationV4, generateAddressPayload, getAllAssetsSymbols, getAssetBalance, getAssetBalanceInternal, getAssetBySymbolOrId, getAssetDecimals, getAssetId, getAssetMultiLocation, getAssets, getAssetsObject, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getDefaultPallet, getDryRun, getExistentialDeposit, getFees, getMaxForeignTransferableAmount, getMaxNativeTransferableAmount, getNativeAssetSymbol, getNativeAssets, getNode, getNodeConfig, getNodeProviders, getOriginFeeDetails, getOriginFeeDetailsInternal, getOtherAssets, getParaEthTransferFees, getParaId, getRelayChainSymbol, getSupportedAssets, getSupportedPallets, getSupportedPalletsDetails, getTNode, getTransferInfo, getTransferableAmount, hasDryRunSupport, hasSupportForAsset, isEthersContract, isEthersSigner, isForeignAsset, isNodeEvm, isOverrideMultiLocationSpecifier, isRelayChain, isSymbolSpecifier, normalizeSymbol, resolveModuleError, resolveParaId, send, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, validateAddress, verifyEdOnDestination };
|
|
20798
|
+
export { AssetClaimBuilder, BatchMode, Builder, DuplicateAssetError, DuplicateAssetIdError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, Foreign, ForeignAbstract, GeneralBuilder, IncompatibleNodesError, InvalidAddressError, InvalidCurrencyError, NODES_WITH_RELAY_CHAINS, NODES_WITH_RELAY_CHAINS_DOT_KSM, NODE_NAMES, NODE_NAMES_DOT_KSM, Native, NoXCMSupportImplementedError, NodeNotSupportedError, Override, Parents, PolkadotXcmError, SUPPORTED_PALLETS, ScenarioNotSupportedError, Version, XTokensError, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, createApiInstanceForNode, createX1Payload, _deepEqual as deepEqual, determineRelayChain, findAssetById, findAssetByMultiLocation, findAssetBySymbol, findBestMatches, generateAddressMultiLocationV4, generateAddressPayload, getAllAssetsSymbols, getAssetBalance, getAssetBalanceInternal, getAssetBySymbolOrId, getAssetDecimals, getAssetId, getAssetMultiLocation, getAssets, getAssetsObject, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getDefaultPallet, getDryRun, getExistentialDeposit, getFees, getMaxForeignTransferableAmount, getMaxNativeTransferableAmount, getNativeAssetSymbol, getNativeAssets, getNode, getNodeConfig, getNodeProviders, getOriginFeeDetails, getOriginFeeDetailsInternal, getOtherAssets, getParaEthTransferFees, getParaId, getRelayChainSymbol, getSupportedAssets, getSupportedPallets, getSupportedPalletsDetails, getTNode, getTransferInfo, getTransferableAmount, hasDryRunSupport, hasSupportForAsset, isAssetEqual, isEthersContract, isEthersSigner, isForeignAsset, isNodeEvm, isOverrideMultiLocationSpecifier, isRelayChain, isSymbolSpecifier, normalizeSymbol, resolveModuleError, resolveParaId, send, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, transformMultiLocation, validateAddress, verifyEdOnDestination };
|