@paraspell/sdk-core 10.4.7 → 10.4.9
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 +408 -489
- package/dist/index.d.ts +71 -117
- package/dist/index.mjs +408 -491
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -68,7 +68,7 @@ function _defineProperties(e, r) {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
function _createClass(e, r, t) {
|
|
71
|
-
return r && _defineProperties(e.prototype, r),
|
|
71
|
+
return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", {
|
|
72
72
|
writable: false
|
|
73
73
|
}), e;
|
|
74
74
|
}
|
|
@@ -704,6 +704,23 @@ var MAX_WEIGHT = {
|
|
|
704
704
|
refTime: MAX_U64
|
|
705
705
|
};
|
|
706
706
|
|
|
707
|
+
var ERR_MULTILOCATION_DEST_NOT_SUPPORTED = '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.';
|
|
708
|
+
|
|
709
|
+
var addXcmVersionHeader = function addXcmVersionHeader(obj, version) {
|
|
710
|
+
return _defineProperty({}, version, obj);
|
|
711
|
+
};
|
|
712
|
+
|
|
713
|
+
var assertToIsString = function assertToIsString(to, overrideMsg) {
|
|
714
|
+
if (sdkCommon.isTMultiLocation(to)) {
|
|
715
|
+
throw new InvalidParameterError(overrideMsg !== null && overrideMsg !== void 0 ? overrideMsg : 'Multi-Location destination is not supported for XCM fee calculation.');
|
|
716
|
+
}
|
|
717
|
+
};
|
|
718
|
+
var assertAddressIsString = function assertAddressIsString(address) {
|
|
719
|
+
if (sdkCommon.isTMultiLocation(address)) {
|
|
720
|
+
throw new InvalidParameterError('Multi-Location address is not supported for XCM fee calculation.');
|
|
721
|
+
}
|
|
722
|
+
};
|
|
723
|
+
|
|
707
724
|
var AssetHubPolkadot$1 = {
|
|
708
725
|
name: "AssetHub",
|
|
709
726
|
info: "PolkadotAssetHub",
|
|
@@ -2399,10 +2416,6 @@ var getNode = function getNode(node) {
|
|
|
2399
2416
|
return nodeMap[node];
|
|
2400
2417
|
};
|
|
2401
2418
|
|
|
2402
|
-
var replaceBigInt = function replaceBigInt(_key, value) {
|
|
2403
|
-
return typeof value === 'bigint' ? value.toString() : value;
|
|
2404
|
-
};
|
|
2405
|
-
|
|
2406
2419
|
var resolveParaId = function resolveParaId(paraId, destination) {
|
|
2407
2420
|
if (sdkCommon.isTMultiLocation(destination) || sdkCommon.isRelayChain(destination) || destination === 'Ethereum') {
|
|
2408
2421
|
return undefined;
|
|
@@ -2437,66 +2450,6 @@ var determineRelayChain = function determineRelayChain(node) {
|
|
|
2437
2450
|
return assets.getRelayChainSymbol(node) === 'KSM' ? 'Kusama' : 'Polkadot';
|
|
2438
2451
|
};
|
|
2439
2452
|
|
|
2440
|
-
var findParachainJunction = function findParachainJunction(multilocation) {
|
|
2441
|
-
var interior = multilocation.interior;
|
|
2442
|
-
if (interior === 'Here') {
|
|
2443
|
-
return null;
|
|
2444
|
-
}
|
|
2445
|
-
for (var key in interior) {
|
|
2446
|
-
var junctions = interior[key];
|
|
2447
|
-
if (Array.isArray(junctions)) {
|
|
2448
|
-
var _iterator = _createForOfIteratorHelper(junctions),
|
|
2449
|
-
_step;
|
|
2450
|
-
try {
|
|
2451
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
2452
|
-
var junction = _step.value;
|
|
2453
|
-
if ('Parachain' in junction) {
|
|
2454
|
-
return Number(junction.Parachain);
|
|
2455
|
-
}
|
|
2456
|
-
}
|
|
2457
|
-
} catch (err) {
|
|
2458
|
-
_iterator.e(err);
|
|
2459
|
-
} finally {
|
|
2460
|
-
_iterator.f();
|
|
2461
|
-
}
|
|
2462
|
-
} else if (_typeof(junctions) === 'object' && junctions !== null && 'Parachain' in junctions) {
|
|
2463
|
-
return Number(junctions.Parachain);
|
|
2464
|
-
}
|
|
2465
|
-
}
|
|
2466
|
-
return null;
|
|
2467
|
-
};
|
|
2468
|
-
|
|
2469
|
-
var constructRelayToParaParameters = function constructRelayToParaParameters(_ref, version) {
|
|
2470
|
-
var api = _ref.api,
|
|
2471
|
-
destination = _ref.destination,
|
|
2472
|
-
asset = _ref.asset,
|
|
2473
|
-
address = _ref.address,
|
|
2474
|
-
paraIdTo = _ref.paraIdTo;
|
|
2475
|
-
var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
2476
|
-
includeFee: false
|
|
2477
|
-
},
|
|
2478
|
-
includeFee = _ref2.includeFee;
|
|
2479
|
-
var paraId = resolveParaId(paraIdTo, destination);
|
|
2480
|
-
return _objectSpread2({
|
|
2481
|
-
dest: createVersionedDestination('RelayToPara', version, destination, paraId),
|
|
2482
|
-
beneficiary: createVersionedBeneficiary({
|
|
2483
|
-
api: api,
|
|
2484
|
-
scenario: 'RelayToPara',
|
|
2485
|
-
pallet: null,
|
|
2486
|
-
recipientAddress: address,
|
|
2487
|
-
version: version,
|
|
2488
|
-
paraId: paraId
|
|
2489
|
-
}),
|
|
2490
|
-
assets: createVersionedMultiAssets(version, asset.amount, {
|
|
2491
|
-
parents: sdkCommon.Parents.ZERO,
|
|
2492
|
-
interior: 'Here'
|
|
2493
|
-
}),
|
|
2494
|
-
fee_asset_item: DEFAULT_FEE_ASSET
|
|
2495
|
-
}, includeFee && {
|
|
2496
|
-
weight_limit: 'Unlimited'
|
|
2497
|
-
});
|
|
2498
|
-
};
|
|
2499
|
-
|
|
2500
2453
|
var createMultiAsset = function createMultiAsset(version, amount, multiLocation) {
|
|
2501
2454
|
if (version === sdkCommon.Version.V4 || version === sdkCommon.Version.V5) {
|
|
2502
2455
|
return {
|
|
@@ -2515,83 +2468,28 @@ var createMultiAsset = function createMultiAsset(version, amount, multiLocation)
|
|
|
2515
2468
|
}
|
|
2516
2469
|
};
|
|
2517
2470
|
};
|
|
2518
|
-
var
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
var extractVersionFromHeader = function extractVersionFromHeader(versionHeader) {
|
|
2522
|
-
var keys = Object.keys(versionHeader);
|
|
2523
|
-
if (keys.length !== 1) {
|
|
2524
|
-
throw new InvalidParameterError('Invalid version header: expected exactly one key.');
|
|
2525
|
-
}
|
|
2526
|
-
var version = keys[0];
|
|
2527
|
-
var value = versionHeader[version];
|
|
2528
|
-
if (value === undefined) {
|
|
2529
|
-
throw new InvalidParameterError('Invalid version header: value is undefined.');
|
|
2530
|
-
}
|
|
2531
|
-
return [version, value];
|
|
2471
|
+
var createVersionedMultiAssets = function createVersionedMultiAssets(version, amount, multiLocation) {
|
|
2472
|
+
var multiAsset = createMultiAsset(version, amount, multiLocation);
|
|
2473
|
+
return addXcmVersionHeader([multiAsset], version);
|
|
2532
2474
|
};
|
|
2475
|
+
|
|
2533
2476
|
var maybeOverrideMultiAssets = function maybeOverrideMultiAssets(version, amount, multiAssets, overriddenCurrency) {
|
|
2534
2477
|
if (!overriddenCurrency) {
|
|
2535
2478
|
return multiAssets;
|
|
2536
2479
|
}
|
|
2537
2480
|
return sdkCommon.isTMultiLocation(overriddenCurrency) ? [createMultiAsset(version, amount, overriddenCurrency)] : overriddenCurrency;
|
|
2538
2481
|
};
|
|
2539
|
-
var
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
};
|
|
2543
|
-
var createDestination = function createDestination(scenario, version, destination, nodeId, junction, parents) {
|
|
2544
|
-
var parentsResolved = parents !== null && parents !== void 0 ? parents : scenario === 'RelayToPara' ? sdkCommon.Parents.ZERO : sdkCommon.Parents.ONE;
|
|
2545
|
-
var interior = scenario === 'ParaToRelay' ? 'Here' : createX1Payload(version, junction !== null && junction !== void 0 ? junction : {
|
|
2546
|
-
Parachain: nodeId
|
|
2547
|
-
});
|
|
2548
|
-
var isMultiLocationDestination = sdkCommon.isTMultiLocation(destination);
|
|
2549
|
-
return isMultiLocationDestination ? destination : {
|
|
2550
|
-
parents: parentsResolved,
|
|
2551
|
-
interior: interior
|
|
2552
|
-
};
|
|
2553
|
-
};
|
|
2554
|
-
var createVersionedDestination = function createVersionedDestination(scenario, version, destination, nodeId, junction, parents) {
|
|
2555
|
-
var plainDestination = createDestination(scenario, version, destination, nodeId, junction, parents);
|
|
2556
|
-
return addXcmVersionHeader(plainDestination, version);
|
|
2557
|
-
};
|
|
2558
|
-
var createBridgePolkadotXcmDest = function createBridgePolkadotXcmDest(version, ecosystem, destination, nodeId) {
|
|
2559
|
-
var multiLocation = {
|
|
2560
|
-
parents: sdkCommon.Parents.TWO,
|
|
2561
|
-
interior: {
|
|
2562
|
-
X2: [{
|
|
2563
|
-
GlobalConsensus: ecosystem
|
|
2564
|
-
}, {
|
|
2565
|
-
Parachain: nodeId
|
|
2566
|
-
}]
|
|
2567
|
-
}
|
|
2568
|
-
};
|
|
2569
|
-
var isMultiLocationDestination = sdkCommon.isTMultiLocation(destination);
|
|
2570
|
-
return addXcmVersionHeader(isMultiLocationDestination ? destination : multiLocation, version);
|
|
2571
|
-
};
|
|
2572
|
-
var resolveTNodeFromMultiLocation = function resolveTNodeFromMultiLocation(relayChain, multiLocation) {
|
|
2573
|
-
var _NODE_NAMES_DOT_KSM$f;
|
|
2574
|
-
var parachainId = findParachainJunction(multiLocation);
|
|
2575
|
-
if (parachainId === null) {
|
|
2576
|
-
throw new InvalidParameterError('Parachain ID not found in destination multi location.');
|
|
2577
|
-
}
|
|
2578
|
-
var node = (_NODE_NAMES_DOT_KSM$f = sdkCommon.NODE_NAMES_DOT_KSM.find(function (nodeName) {
|
|
2579
|
-
return getParaId(nodeName) === parachainId && determineRelayChain(nodeName) === relayChain;
|
|
2580
|
-
})) !== null && _NODE_NAMES_DOT_KSM$f !== void 0 ? _NODE_NAMES_DOT_KSM$f : null;
|
|
2581
|
-
if (node === null) {
|
|
2582
|
-
throw new InvalidParameterError('Node with specified paraId not found in destination multi location.');
|
|
2482
|
+
var maybeOverrideMultiAsset = function maybeOverrideMultiAsset(version, amount, multiAsset, overriddenCurrency) {
|
|
2483
|
+
if (!overriddenCurrency) {
|
|
2484
|
+
return multiAsset;
|
|
2583
2485
|
}
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
},
|
|
2590
|
-
isDestination = _ref2.isDestination;
|
|
2591
|
-
if ('multilocation' in currency) {
|
|
2592
|
-
throw new assets.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), ")}."));
|
|
2486
|
+
if (Array.isArray(overriddenCurrency)) {
|
|
2487
|
+
if (overriddenCurrency.length !== 1) {
|
|
2488
|
+
throw new InvalidParameterError('Expected a single TMultiAsset in overriddenCurrency array.');
|
|
2489
|
+
}
|
|
2490
|
+
return overriddenCurrency[0];
|
|
2593
2491
|
}
|
|
2594
|
-
|
|
2492
|
+
return createMultiAsset(version, amount, overriddenCurrency);
|
|
2595
2493
|
};
|
|
2596
2494
|
|
|
2597
2495
|
var resolveMultiLocationFromDest = function resolveMultiLocationFromDest(destination, asset) {
|
|
@@ -2657,12 +2555,13 @@ var getModifiedCurrencySelection = function getModifiedCurrencySelection(input)
|
|
|
2657
2555
|
return createDefaultCurrencySelection(input);
|
|
2658
2556
|
};
|
|
2659
2557
|
|
|
2660
|
-
var getXTokensParameters = function getXTokensParameters(isMultiAssetTransfer, currencySelection,
|
|
2558
|
+
var getXTokensParameters = function getXTokensParameters(isMultiAssetTransfer, currencySelection, destLocation, amount, fees, version, overriddenAsset) {
|
|
2559
|
+
var versionedDestLocation = addXcmVersionHeader(destLocation, version);
|
|
2661
2560
|
if (!isMultiAssetTransfer) {
|
|
2662
2561
|
return {
|
|
2663
2562
|
currency_id: currencySelection,
|
|
2664
2563
|
amount: BigInt(amount),
|
|
2665
|
-
dest:
|
|
2564
|
+
dest: versionedDestLocation,
|
|
2666
2565
|
dest_weight_limit: fees
|
|
2667
2566
|
};
|
|
2668
2567
|
}
|
|
@@ -2675,7 +2574,7 @@ var getXTokensParameters = function getXTokensParameters(isMultiAssetTransfer, c
|
|
|
2675
2574
|
return _objectSpread2(_objectSpread2(_defineProperty({}, assetKey, currencySelection), isOverriddenMultiAssets && {
|
|
2676
2575
|
fee_item: feeIndexWithFallback
|
|
2677
2576
|
}), {}, {
|
|
2678
|
-
dest:
|
|
2577
|
+
dest: versionedDestLocation,
|
|
2679
2578
|
dest_weight_limit: fees
|
|
2680
2579
|
});
|
|
2681
2580
|
};
|
|
@@ -2699,14 +2598,15 @@ var getXTokensMethod = function getXTokensMethod(useMultiAsset, overriddenAsset)
|
|
|
2699
2598
|
};
|
|
2700
2599
|
var buildXTokensCall = function buildXTokensCall(input, currencySelection, fees) {
|
|
2701
2600
|
var overriddenAsset = input.overriddenAsset,
|
|
2702
|
-
|
|
2601
|
+
destLocation = input.destLocation,
|
|
2703
2602
|
asset = input.asset,
|
|
2704
2603
|
pallet = input.pallet,
|
|
2604
|
+
version = input.version,
|
|
2705
2605
|
methodOverride = input.method;
|
|
2706
2606
|
var useMultiAsset = shouldUseMultiAssetTransfer(input);
|
|
2707
2607
|
var modifiedCurrencySelection = useMultiAsset ? getModifiedCurrencySelection(input) : currencySelection;
|
|
2708
2608
|
var method = getXTokensMethod(useMultiAsset, overriddenAsset);
|
|
2709
|
-
var parameters = getXTokensParameters(useMultiAsset, modifiedCurrencySelection,
|
|
2609
|
+
var parameters = getXTokensParameters(useMultiAsset, modifiedCurrencySelection, destLocation, asset.amount, fees, version, overriddenAsset);
|
|
2710
2610
|
return {
|
|
2711
2611
|
module: pallet !== null && pallet !== void 0 ? pallet : 'XTokens',
|
|
2712
2612
|
method: methodOverride !== null && methodOverride !== void 0 ? methodOverride : method,
|
|
@@ -2714,22 +2614,129 @@ var buildXTokensCall = function buildXTokensCall(input, currencySelection, fees)
|
|
|
2714
2614
|
};
|
|
2715
2615
|
};
|
|
2716
2616
|
|
|
2717
|
-
|
|
2718
|
-
var validateDestination$1 = function validateDestination(destination) {
|
|
2719
|
-
var isMultiLocationDestination = _typeof(destination) === 'object';
|
|
2720
|
-
if (isMultiLocationDestination) {
|
|
2721
|
-
throw new InvalidParameterError(ERR_MULTILOCATION_DEST_NOT_SUPPORTED);
|
|
2722
|
-
}
|
|
2723
|
-
};
|
|
2617
|
+
// Contains basic structure of xTokens call
|
|
2724
2618
|
var transferXTokens = function transferXTokens(input, currencySelection) {
|
|
2725
2619
|
var fees = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_FEE;
|
|
2726
2620
|
var api = input.api,
|
|
2727
2621
|
destination = input.destination;
|
|
2728
|
-
|
|
2622
|
+
assertToIsString(destination, ERR_MULTILOCATION_DEST_NOT_SUPPORTED);
|
|
2729
2623
|
var call = buildXTokensCall(input, currencySelection, fees);
|
|
2730
2624
|
return api.callTxMethod(call);
|
|
2731
2625
|
};
|
|
2732
2626
|
|
|
2627
|
+
var findParachainJunction = function findParachainJunction(multilocation) {
|
|
2628
|
+
var interior = multilocation.interior;
|
|
2629
|
+
if (interior === 'Here') {
|
|
2630
|
+
return null;
|
|
2631
|
+
}
|
|
2632
|
+
for (var key in interior) {
|
|
2633
|
+
var junctions = interior[key];
|
|
2634
|
+
if (Array.isArray(junctions)) {
|
|
2635
|
+
var _iterator = _createForOfIteratorHelper(junctions),
|
|
2636
|
+
_step;
|
|
2637
|
+
try {
|
|
2638
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
2639
|
+
var junction = _step.value;
|
|
2640
|
+
if ('Parachain' in junction) {
|
|
2641
|
+
return Number(junction.Parachain);
|
|
2642
|
+
}
|
|
2643
|
+
}
|
|
2644
|
+
} catch (err) {
|
|
2645
|
+
_iterator.e(err);
|
|
2646
|
+
} finally {
|
|
2647
|
+
_iterator.f();
|
|
2648
|
+
}
|
|
2649
|
+
} else if (_typeof(junctions) === 'object' && junctions !== null && 'Parachain' in junctions) {
|
|
2650
|
+
return Number(junctions.Parachain);
|
|
2651
|
+
}
|
|
2652
|
+
}
|
|
2653
|
+
return null;
|
|
2654
|
+
};
|
|
2655
|
+
|
|
2656
|
+
var constructRelayToParaParameters = function constructRelayToParaParameters(_ref, version) {
|
|
2657
|
+
var api = _ref.api,
|
|
2658
|
+
destination = _ref.destination,
|
|
2659
|
+
asset = _ref.asset,
|
|
2660
|
+
address = _ref.address,
|
|
2661
|
+
paraIdTo = _ref.paraIdTo;
|
|
2662
|
+
var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
2663
|
+
includeFee: false
|
|
2664
|
+
},
|
|
2665
|
+
includeFee = _ref2.includeFee;
|
|
2666
|
+
var paraId = resolveParaId(paraIdTo, destination);
|
|
2667
|
+
return _objectSpread2({
|
|
2668
|
+
dest: createVersionedDestination('RelayToPara', version, destination, paraId),
|
|
2669
|
+
beneficiary: createVersionedBeneficiary({
|
|
2670
|
+
api: api,
|
|
2671
|
+
scenario: 'RelayToPara',
|
|
2672
|
+
pallet: null,
|
|
2673
|
+
recipientAddress: address,
|
|
2674
|
+
version: version,
|
|
2675
|
+
paraId: paraId
|
|
2676
|
+
}),
|
|
2677
|
+
assets: createVersionedMultiAssets(version, asset.amount, {
|
|
2678
|
+
parents: sdkCommon.Parents.ZERO,
|
|
2679
|
+
interior: 'Here'
|
|
2680
|
+
}),
|
|
2681
|
+
fee_asset_item: DEFAULT_FEE_ASSET
|
|
2682
|
+
}, includeFee && {
|
|
2683
|
+
weight_limit: 'Unlimited'
|
|
2684
|
+
});
|
|
2685
|
+
};
|
|
2686
|
+
|
|
2687
|
+
var createDestination = function createDestination(scenario, version, destination, nodeId, junction, parents) {
|
|
2688
|
+
var parentsResolved = parents !== null && parents !== void 0 ? parents : scenario === 'RelayToPara' ? sdkCommon.Parents.ZERO : sdkCommon.Parents.ONE;
|
|
2689
|
+
var interior = scenario === 'ParaToRelay' ? 'Here' : createX1Payload(version, junction !== null && junction !== void 0 ? junction : {
|
|
2690
|
+
Parachain: nodeId
|
|
2691
|
+
});
|
|
2692
|
+
var isMultiLocationDestination = sdkCommon.isTMultiLocation(destination);
|
|
2693
|
+
return isMultiLocationDestination ? destination : {
|
|
2694
|
+
parents: parentsResolved,
|
|
2695
|
+
interior: interior
|
|
2696
|
+
};
|
|
2697
|
+
};
|
|
2698
|
+
var createVersionedDestination = function createVersionedDestination(scenario, version, destination, nodeId, junction, parents) {
|
|
2699
|
+
var plainDestination = createDestination(scenario, version, destination, nodeId, junction, parents);
|
|
2700
|
+
return addXcmVersionHeader(plainDestination, version);
|
|
2701
|
+
};
|
|
2702
|
+
var createBridgeDestination = function createBridgeDestination(ecosystem, destination, nodeId) {
|
|
2703
|
+
var multiLocation = {
|
|
2704
|
+
parents: sdkCommon.Parents.TWO,
|
|
2705
|
+
interior: {
|
|
2706
|
+
X2: [{
|
|
2707
|
+
GlobalConsensus: ecosystem
|
|
2708
|
+
}, {
|
|
2709
|
+
Parachain: nodeId
|
|
2710
|
+
}]
|
|
2711
|
+
}
|
|
2712
|
+
};
|
|
2713
|
+
return sdkCommon.isTMultiLocation(destination) ? destination : multiLocation;
|
|
2714
|
+
};
|
|
2715
|
+
var resolveTNodeFromMultiLocation = function resolveTNodeFromMultiLocation(relayChain, multiLocation) {
|
|
2716
|
+
var _NODE_NAMES_DOT_KSM$f;
|
|
2717
|
+
var parachainId = findParachainJunction(multiLocation);
|
|
2718
|
+
if (parachainId === null) {
|
|
2719
|
+
throw new InvalidParameterError('Parachain ID not found in destination multi location.');
|
|
2720
|
+
}
|
|
2721
|
+
var node = (_NODE_NAMES_DOT_KSM$f = sdkCommon.NODE_NAMES_DOT_KSM.find(function (nodeName) {
|
|
2722
|
+
return getParaId(nodeName) === parachainId && determineRelayChain(nodeName) === relayChain;
|
|
2723
|
+
})) !== null && _NODE_NAMES_DOT_KSM$f !== void 0 ? _NODE_NAMES_DOT_KSM$f : null;
|
|
2724
|
+
if (node === null) {
|
|
2725
|
+
throw new InvalidParameterError('Node with specified paraId not found in destination multi location.');
|
|
2726
|
+
}
|
|
2727
|
+
return node;
|
|
2728
|
+
};
|
|
2729
|
+
var throwUnsupportedCurrency = function throwUnsupportedCurrency(currency, node) {
|
|
2730
|
+
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
2731
|
+
isDestination: false
|
|
2732
|
+
},
|
|
2733
|
+
isDestination = _ref.isDestination;
|
|
2734
|
+
if ('multilocation' in currency) {
|
|
2735
|
+
throw new assets.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), ")}."));
|
|
2736
|
+
}
|
|
2737
|
+
throw new assets.InvalidCurrencyError("".concat(isDestination ? 'Destination' : 'Origin', " node ").concat(node, " does not support currency ").concat(JSON.stringify(currency, sdkCommon.replaceBigInt), "."));
|
|
2738
|
+
};
|
|
2739
|
+
|
|
2733
2740
|
/**
|
|
2734
2741
|
* Retrieves the node name corresponding to a specified parachain ID.
|
|
2735
2742
|
*
|
|
@@ -3372,29 +3379,23 @@ var transferMoonbeamEvm = /*#__PURE__*/function () {
|
|
|
3372
3379
|
wallet: signer
|
|
3373
3380
|
}
|
|
3374
3381
|
});
|
|
3375
|
-
foundAsset = assets.
|
|
3376
|
-
if (!(foundAsset === null)) {
|
|
3377
|
-
_context.n = 3;
|
|
3378
|
-
break;
|
|
3379
|
-
}
|
|
3380
|
-
throw new assets.InvalidCurrencyError("Origin node ".concat(from, " does not support currency ").concat(JSON.stringify(currency), "."));
|
|
3381
|
-
case 3:
|
|
3382
|
+
foundAsset = assets.findAssetForNodeOrThrow(from, currency, to);
|
|
3382
3383
|
if (!(foundAsset.symbol === assets.getNativeAssetSymbol(from))) {
|
|
3383
|
-
_context.n =
|
|
3384
|
+
_context.n = 3;
|
|
3384
3385
|
break;
|
|
3385
3386
|
}
|
|
3386
3387
|
asset = NATIVE_ASSET_ID;
|
|
3387
|
-
_context.n =
|
|
3388
|
+
_context.n = 5;
|
|
3388
3389
|
break;
|
|
3389
|
-
case
|
|
3390
|
+
case 3:
|
|
3390
3391
|
if (!(!assets.isForeignAsset(foundAsset) || !foundAsset.assetId)) {
|
|
3391
|
-
_context.n =
|
|
3392
|
+
_context.n = 4;
|
|
3392
3393
|
break;
|
|
3393
3394
|
}
|
|
3394
3395
|
throw new assets.InvalidCurrencyError('Currency must be a foreign asset with valid assetId');
|
|
3395
|
-
case
|
|
3396
|
+
case 4:
|
|
3396
3397
|
asset = formatAssetIdToERC20(foundAsset.assetId);
|
|
3397
|
-
case
|
|
3398
|
+
case 5:
|
|
3398
3399
|
destMultiLocation = getDestinationMultilocation(api, address, to);
|
|
3399
3400
|
weight = U_64_MAX; // Partially inspired by Moonbeam XCM-SDK
|
|
3400
3401
|
// https://github.com/moonbeam-foundation/xcm-sdk/blob/ab835c15bf41612604b1c858d956a9f07705ed65/packages/sdk/src/contract/contracts/Xtokens/Xtokens.ts#L53
|
|
@@ -3404,27 +3405,27 @@ var transferMoonbeamEvm = /*#__PURE__*/function () {
|
|
|
3404
3405
|
};
|
|
3405
3406
|
multiCurrencySymbols = ['xcPINK', 'xcDED', 'xcSTINK', 'xcWIFD', 'xcNCTR'];
|
|
3406
3407
|
useMultiAssets = from === 'Moonbeam' && to === 'AssetHubPolkadot' && multiCurrencySymbols.includes(foundAsset.symbol);
|
|
3407
|
-
usdtAsset = assets.
|
|
3408
|
+
usdtAsset = assets.findAssetForNodeOrThrow(from, {
|
|
3408
3409
|
symbol: 'xcUSDT'
|
|
3409
3410
|
}, to);
|
|
3410
3411
|
if (!useMultiAssets) {
|
|
3411
|
-
_context.n =
|
|
3412
|
+
_context.n = 7;
|
|
3412
3413
|
break;
|
|
3413
3414
|
}
|
|
3414
|
-
_context.n =
|
|
3415
|
+
_context.n = 6;
|
|
3415
3416
|
return createTx('transferMultiCurrencies', [[[asset, currency.amount], [formatAssetIdToERC20((_usdtAsset$assetId = usdtAsset.assetId) !== null && _usdtAsset$assetId !== void 0 ? _usdtAsset$assetId : ''), '200000']], 1,
|
|
3416
3417
|
// index of the fee asset
|
|
3417
3418
|
destMultiLocation, weight]);
|
|
3418
|
-
case
|
|
3419
|
+
case 6:
|
|
3419
3420
|
_t = _context.v;
|
|
3420
|
-
_context.n = 10;
|
|
3421
|
-
break;
|
|
3422
|
-
case 8:
|
|
3423
3421
|
_context.n = 9;
|
|
3422
|
+
break;
|
|
3423
|
+
case 7:
|
|
3424
|
+
_context.n = 8;
|
|
3424
3425
|
return createTx('transfer', [asset, currency.amount, destMultiLocation, weight]);
|
|
3425
|
-
case
|
|
3426
|
+
case 8:
|
|
3426
3427
|
_t = _context.v;
|
|
3427
|
-
case
|
|
3428
|
+
case 9:
|
|
3428
3429
|
tx = _t;
|
|
3429
3430
|
return _context.a(2, tx);
|
|
3430
3431
|
}
|
|
@@ -3696,26 +3697,20 @@ var transferMoonbeamToEth = /*#__PURE__*/function () {
|
|
|
3696
3697
|
}
|
|
3697
3698
|
throw new InvalidParameterError('Override multilocation is not supported for Evm transfers');
|
|
3698
3699
|
case 5:
|
|
3699
|
-
foundAsset = assets.
|
|
3700
|
-
if (!(foundAsset === null)) {
|
|
3701
|
-
_context.n = 6;
|
|
3702
|
-
break;
|
|
3703
|
-
}
|
|
3704
|
-
throw new assets.InvalidCurrencyError("Origin node ".concat(from, " does not support currency ").concat(JSON.stringify(currency), "."));
|
|
3705
|
-
case 6:
|
|
3700
|
+
foundAsset = assets.findAssetForNodeOrThrow(from, currency, to);
|
|
3706
3701
|
if (!(!assets.isForeignAsset(foundAsset) || !foundAsset.multiLocation)) {
|
|
3707
|
-
_context.n =
|
|
3702
|
+
_context.n = 6;
|
|
3708
3703
|
break;
|
|
3709
3704
|
}
|
|
3710
3705
|
throw new assets.InvalidCurrencyError('Currency must be a foreign asset with valid multi-location');
|
|
3711
|
-
case
|
|
3706
|
+
case 6:
|
|
3712
3707
|
ethAsset = assets.findAssetByMultiLocation(assets.getOtherAssets('Ethereum'), foundAsset.multiLocation);
|
|
3713
3708
|
if (!(!ethAsset || !ethAsset.assetId)) {
|
|
3714
|
-
_context.n =
|
|
3709
|
+
_context.n = 7;
|
|
3715
3710
|
break;
|
|
3716
3711
|
}
|
|
3717
3712
|
throw new assets.InvalidCurrencyError("Could not obtain Ethereum asset address for ".concat(JSON.stringify(foundAsset)));
|
|
3718
|
-
case
|
|
3713
|
+
case 7:
|
|
3719
3714
|
contract = viem.getContract({
|
|
3720
3715
|
abi: abi,
|
|
3721
3716
|
address: xcmInterfacePrecompile,
|
|
@@ -3729,17 +3724,17 @@ var transferMoonbeamToEth = /*#__PURE__*/function () {
|
|
|
3729
3724
|
});
|
|
3730
3725
|
senderAddress = (_signer$account = signer.account) === null || _signer$account === void 0 ? void 0 : _signer$account.address;
|
|
3731
3726
|
if (senderAddress) {
|
|
3732
|
-
_context.n =
|
|
3727
|
+
_context.n = 8;
|
|
3733
3728
|
break;
|
|
3734
3729
|
}
|
|
3735
3730
|
throw new InvalidParameterError('Unable to get sender address');
|
|
3731
|
+
case 8:
|
|
3732
|
+
_context.n = 9;
|
|
3733
|
+
return api.init(from, TX_CLIENT_TIMEOUT_MS);
|
|
3736
3734
|
case 9:
|
|
3737
3735
|
_context.n = 10;
|
|
3738
|
-
return api.init(from, TX_CLIENT_TIMEOUT_MS);
|
|
3739
|
-
case 10:
|
|
3740
|
-
_context.n = 11;
|
|
3741
3736
|
return generateMessageId(api, senderAddress, getParaId(from), ethAsset.assetId, address, currency.amount);
|
|
3742
|
-
case
|
|
3737
|
+
case 10:
|
|
3743
3738
|
messageId = _context.v;
|
|
3744
3739
|
customXcm = createCustomXcmOnDest({
|
|
3745
3740
|
api: api,
|
|
@@ -3752,17 +3747,17 @@ var transferMoonbeamToEth = /*#__PURE__*/function () {
|
|
|
3752
3747
|
}),
|
|
3753
3748
|
version: sdkCommon.Version.V4
|
|
3754
3749
|
}, from, messageId);
|
|
3755
|
-
_context.n =
|
|
3750
|
+
_context.n = 11;
|
|
3756
3751
|
return api.objectToHex(customXcm, 'XcmVersionedXcm');
|
|
3757
|
-
case
|
|
3752
|
+
case 11:
|
|
3758
3753
|
customXcmOnDest = _context.v;
|
|
3759
|
-
_context.n =
|
|
3754
|
+
_context.n = 12;
|
|
3760
3755
|
return api.createApiForNode('AssetHubPolkadot');
|
|
3761
|
-
case
|
|
3756
|
+
case 12:
|
|
3762
3757
|
assetHubApi = _context.v;
|
|
3763
|
-
_context.n =
|
|
3758
|
+
_context.n = 13;
|
|
3764
3759
|
return getParaEthTransferFees(assetHubApi);
|
|
3765
|
-
case
|
|
3760
|
+
case 13:
|
|
3766
3761
|
_yield$getParaEthTran = _context.v;
|
|
3767
3762
|
_yield$getParaEthTran2 = _slicedToArray(_yield$getParaEthTran, 2);
|
|
3768
3763
|
bridgeFee = _yield$getParaEthTran2[0];
|
|
@@ -3777,7 +3772,7 @@ var transferMoonbeamToEth = /*#__PURE__*/function () {
|
|
|
3777
3772
|
throw new InvalidParameterError('Input must be a valid number');
|
|
3778
3773
|
}() : "0x".concat((num >>> 0).toString(16).padStart(8, '0'));
|
|
3779
3774
|
}; // Execute the custom XCM message with the precompile
|
|
3780
|
-
_context.n =
|
|
3775
|
+
_context.n = 14;
|
|
3781
3776
|
return createTx('transferAssetsUsingTypeAndThenAddress', [
|
|
3782
3777
|
// This represents (1,X1(Parachain(1000)))
|
|
3783
3778
|
[1, ['0x00' + numberToHex32(getParaId('AssetHubPolkadot')).slice(2)]],
|
|
@@ -3789,7 +3784,7 @@ var transferMoonbeamToEth = /*#__PURE__*/function () {
|
|
|
3789
3784
|
0,
|
|
3790
3785
|
// The TransferType corresponding to fee asset
|
|
3791
3786
|
2, customXcmOnDest]);
|
|
3792
|
-
case
|
|
3787
|
+
case 14:
|
|
3793
3788
|
tx = _context.v;
|
|
3794
3789
|
return _context.a(2, tx);
|
|
3795
3790
|
}
|
|
@@ -3948,7 +3943,7 @@ var getOriginFeeDetails = /*#__PURE__*/function () {
|
|
|
3948
3943
|
|
|
3949
3944
|
var getTransferableAmountInternal = /*#__PURE__*/function () {
|
|
3950
3945
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
|
|
3951
|
-
var api, senderAddress, node, destination, currency, tx, feeAsset, resolvedFeeAsset, asset, balance, ed,
|
|
3946
|
+
var api, senderAddress, node, destination, currency, tx, feeAsset, resolvedFeeAsset, asset, balance, ed, isNativeAsset, shouldSubstractFee, feeToSubtract, _yield$getOriginXcmFe, fee, transferable;
|
|
3952
3947
|
return _regenerator().w(function (_context) {
|
|
3953
3948
|
while (1) switch (_context.n) {
|
|
3954
3949
|
case 0:
|
|
@@ -3965,22 +3960,15 @@ var getTransferableAmountInternal = /*#__PURE__*/function () {
|
|
|
3965
3960
|
});
|
|
3966
3961
|
case 1:
|
|
3967
3962
|
balance = _context.v;
|
|
3968
|
-
ed = assets.
|
|
3969
|
-
if (!(ed === null)) {
|
|
3970
|
-
_context.n = 2;
|
|
3971
|
-
break;
|
|
3972
|
-
}
|
|
3973
|
-
throw new InvalidParameterError("Cannot get existential deposit for currency ".concat(JSON.stringify(currency), "."));
|
|
3974
|
-
case 2:
|
|
3975
|
-
edBN = BigInt(ed);
|
|
3963
|
+
ed = assets.getExistentialDepositOrThrow(node, currency);
|
|
3976
3964
|
isNativeAsset = assets.getNativeAssetSymbol(node) === asset.symbol;
|
|
3977
3965
|
shouldSubstractFee = isNativeAsset || node === 'AssetHubPolkadot' && resolvedFeeAsset && assets.isAssetEqual(resolvedFeeAsset, asset);
|
|
3978
3966
|
feeToSubtract = 0n;
|
|
3979
3967
|
if (!shouldSubstractFee) {
|
|
3980
|
-
_context.n =
|
|
3968
|
+
_context.n = 4;
|
|
3981
3969
|
break;
|
|
3982
3970
|
}
|
|
3983
|
-
_context.n =
|
|
3971
|
+
_context.n = 2;
|
|
3984
3972
|
return getOriginXcmFee({
|
|
3985
3973
|
api: api,
|
|
3986
3974
|
tx: tx,
|
|
@@ -3991,18 +3979,18 @@ var getTransferableAmountInternal = /*#__PURE__*/function () {
|
|
|
3991
3979
|
currency: currency,
|
|
3992
3980
|
disableFallback: false
|
|
3993
3981
|
});
|
|
3994
|
-
case
|
|
3982
|
+
case 2:
|
|
3995
3983
|
_yield$getOriginXcmFe = _context.v;
|
|
3996
3984
|
fee = _yield$getOriginXcmFe.fee;
|
|
3997
3985
|
if (!(fee === undefined)) {
|
|
3998
|
-
_context.n =
|
|
3986
|
+
_context.n = 3;
|
|
3999
3987
|
break;
|
|
4000
3988
|
}
|
|
4001
|
-
throw new InvalidParameterError("Cannot get origin xcm fee for currency ".concat(JSON.stringify(currency), " on node ").concat(node, "."));
|
|
4002
|
-
case
|
|
3989
|
+
throw new InvalidParameterError("Cannot get origin xcm fee for currency ".concat(JSON.stringify(currency, sdkCommon.replaceBigInt), " on node ").concat(node, "."));
|
|
3990
|
+
case 3:
|
|
4003
3991
|
feeToSubtract = fee;
|
|
4004
|
-
case
|
|
4005
|
-
transferable = balance -
|
|
3992
|
+
case 4:
|
|
3993
|
+
transferable = balance - ed - feeToSubtract;
|
|
4006
3994
|
return _context.a(2, transferable > 0n ? transferable : 0n);
|
|
4007
3995
|
}
|
|
4008
3996
|
}, _callee);
|
|
@@ -4062,7 +4050,7 @@ var buildDestInfo = /*#__PURE__*/function () {
|
|
|
4062
4050
|
_context.n = 2;
|
|
4063
4051
|
break;
|
|
4064
4052
|
}
|
|
4065
|
-
throw new InvalidParameterError("Existential deposit not found for ".concat(destination, " with currency ").concat(JSON.stringify(currency)));
|
|
4053
|
+
throw new InvalidParameterError("Existential deposit not found for ".concat(destination, " with currency ").concat(JSON.stringify(currency, sdkCommon.replaceBigInt)));
|
|
4066
4054
|
case 2:
|
|
4067
4055
|
edDestBn = BigInt(edDest);
|
|
4068
4056
|
destCurrency = destAsset.multiLocation ? {
|
|
@@ -4240,7 +4228,7 @@ var buildHopInfo = /*#__PURE__*/function () {
|
|
|
4240
4228
|
|
|
4241
4229
|
var getTransferInfo = /*#__PURE__*/function () {
|
|
4242
4230
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
|
|
4243
|
-
var api, tx, origin, destination, senderAddress, ahAddress, address, currency, feeAsset, resolvedFeeAsset, originAsset, originBalanceFee, originBalance, edOrigin,
|
|
4231
|
+
var api, tx, origin, destination, senderAddress, ahAddress, address, currency, feeAsset, resolvedFeeAsset, originAsset, originBalanceFee, originBalance, edOrigin, _yield$getXcmFee, _yield$getXcmFee$orig, originFee, originFeeCurrency, assetHubFeeResult, bridgeHubFeeResult, destFeeDetail, isFeeAssetAh, originBalanceAfter, originBalanceFeeAfter, originBalanceNativeSufficient, originBalanceSufficient, assetHub, bridgeHub, bridgeHubNode, destinationInfo, _t;
|
|
4244
4232
|
return _regenerator().w(function (_context) {
|
|
4245
4233
|
while (1) switch (_context.n) {
|
|
4246
4234
|
case 0:
|
|
@@ -4293,15 +4281,8 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
4293
4281
|
});
|
|
4294
4282
|
case 8:
|
|
4295
4283
|
originBalance = _context.v;
|
|
4296
|
-
edOrigin = assets.
|
|
4297
|
-
|
|
4298
|
-
_context.n = 9;
|
|
4299
|
-
break;
|
|
4300
|
-
}
|
|
4301
|
-
throw new InvalidParameterError("Existential deposit not found for ".concat(origin, " with currency ").concat(JSON.stringify(currency)));
|
|
4302
|
-
case 9:
|
|
4303
|
-
edOriginBn = BigInt(edOrigin);
|
|
4304
|
-
_context.n = 10;
|
|
4284
|
+
edOrigin = assets.getExistentialDepositOrThrow(origin, currency);
|
|
4285
|
+
_context.n = 9;
|
|
4305
4286
|
return getXcmFee({
|
|
4306
4287
|
api: api,
|
|
4307
4288
|
tx: tx,
|
|
@@ -4313,7 +4294,7 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
4313
4294
|
feeAsset: feeAsset,
|
|
4314
4295
|
disableFallback: false
|
|
4315
4296
|
});
|
|
4316
|
-
case
|
|
4297
|
+
case 9:
|
|
4317
4298
|
_yield$getXcmFee = _context.v;
|
|
4318
4299
|
_yield$getXcmFee$orig = _yield$getXcmFee.origin;
|
|
4319
4300
|
originFee = _yield$getXcmFee$orig.fee;
|
|
@@ -4322,21 +4303,21 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
4322
4303
|
bridgeHubFeeResult = _yield$getXcmFee.bridgeHub;
|
|
4323
4304
|
destFeeDetail = _yield$getXcmFee.destination;
|
|
4324
4305
|
if (!(originFee === undefined)) {
|
|
4325
|
-
_context.n =
|
|
4306
|
+
_context.n = 10;
|
|
4326
4307
|
break;
|
|
4327
4308
|
}
|
|
4328
|
-
throw new InvalidParameterError("Cannot get origin xcm fee for currency ".concat(JSON.stringify(currency), " on node ").concat(origin, "."));
|
|
4329
|
-
case
|
|
4309
|
+
throw new InvalidParameterError("Cannot get origin xcm fee for currency ".concat(JSON.stringify(currency, sdkCommon.replaceBigInt), " on node ").concat(origin, "."));
|
|
4310
|
+
case 10:
|
|
4330
4311
|
isFeeAssetAh = origin === 'AssetHubPolkadot' && resolvedFeeAsset && assets.isAssetEqual(resolvedFeeAsset, originAsset);
|
|
4331
4312
|
originBalanceAfter = originBalance - BigInt(currency.amount);
|
|
4332
4313
|
originBalanceFeeAfter = isFeeAssetAh ? originBalanceFee - BigInt(currency.amount) : originBalanceFee - originFee;
|
|
4333
4314
|
originBalanceNativeSufficient = originBalanceFee >= originFee;
|
|
4334
|
-
originBalanceSufficient = originBalanceAfter >=
|
|
4315
|
+
originBalanceSufficient = originBalanceAfter >= edOrigin;
|
|
4335
4316
|
if (!assetHubFeeResult) {
|
|
4336
|
-
_context.n =
|
|
4317
|
+
_context.n = 12;
|
|
4337
4318
|
break;
|
|
4338
4319
|
}
|
|
4339
|
-
_context.n =
|
|
4320
|
+
_context.n = 11;
|
|
4340
4321
|
return buildHopInfo({
|
|
4341
4322
|
api: api,
|
|
4342
4323
|
node: determineRelayChain(origin) === 'Polkadot' ? 'AssetHubPolkadot' : 'AssetHubKusama',
|
|
@@ -4346,15 +4327,15 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
4346
4327
|
senderAddress: senderAddress,
|
|
4347
4328
|
ahAddress: ahAddress
|
|
4348
4329
|
});
|
|
4349
|
-
case
|
|
4330
|
+
case 11:
|
|
4350
4331
|
assetHub = _context.v;
|
|
4351
|
-
case
|
|
4332
|
+
case 12:
|
|
4352
4333
|
if (!bridgeHubFeeResult) {
|
|
4353
|
-
_context.n =
|
|
4334
|
+
_context.n = 14;
|
|
4354
4335
|
break;
|
|
4355
4336
|
}
|
|
4356
4337
|
bridgeHubNode = determineRelayChain(origin) === 'Polkadot' ? 'BridgeHubPolkadot' : 'BridgeHubKusama';
|
|
4357
|
-
_context.n =
|
|
4338
|
+
_context.n = 13;
|
|
4358
4339
|
return buildHopInfo({
|
|
4359
4340
|
api: api,
|
|
4360
4341
|
node: bridgeHubNode,
|
|
@@ -4364,10 +4345,10 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
4364
4345
|
senderAddress: senderAddress,
|
|
4365
4346
|
ahAddress: ahAddress
|
|
4366
4347
|
});
|
|
4367
|
-
case
|
|
4348
|
+
case 13:
|
|
4368
4349
|
bridgeHub = _context.v;
|
|
4369
|
-
case
|
|
4370
|
-
_context.n =
|
|
4350
|
+
case 14:
|
|
4351
|
+
_context.n = 15;
|
|
4371
4352
|
return buildDestInfo({
|
|
4372
4353
|
api: api,
|
|
4373
4354
|
origin: origin,
|
|
@@ -4380,7 +4361,7 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
4380
4361
|
assetHubFee: assetHubFeeResult === null || assetHubFeeResult === void 0 ? void 0 : assetHubFeeResult.fee,
|
|
4381
4362
|
bridgeFee: bridgeHubFeeResult === null || bridgeHubFeeResult === void 0 ? void 0 : bridgeHubFeeResult.fee
|
|
4382
4363
|
});
|
|
4383
|
-
case
|
|
4364
|
+
case 15:
|
|
4384
4365
|
destinationInfo = _context.v;
|
|
4385
4366
|
return _context.a(2, {
|
|
4386
4367
|
chain: {
|
|
@@ -4394,7 +4375,7 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
4394
4375
|
balance: originBalance,
|
|
4395
4376
|
balanceAfter: originBalanceAfter,
|
|
4396
4377
|
currencySymbol: originAsset.symbol,
|
|
4397
|
-
existentialDeposit:
|
|
4378
|
+
existentialDeposit: edOrigin
|
|
4398
4379
|
},
|
|
4399
4380
|
xcmFee: {
|
|
4400
4381
|
sufficient: originBalanceNativeSufficient,
|
|
@@ -4408,17 +4389,17 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
4408
4389
|
bridgeHub: bridgeHub,
|
|
4409
4390
|
destination: destinationInfo
|
|
4410
4391
|
});
|
|
4411
|
-
case
|
|
4412
|
-
_context.p =
|
|
4392
|
+
case 16:
|
|
4393
|
+
_context.p = 16;
|
|
4413
4394
|
api.setDisconnectAllowed(true);
|
|
4414
|
-
_context.n =
|
|
4395
|
+
_context.n = 17;
|
|
4415
4396
|
return api.disconnect();
|
|
4397
|
+
case 17:
|
|
4398
|
+
return _context.f(16);
|
|
4416
4399
|
case 18:
|
|
4417
|
-
return _context.f(17);
|
|
4418
|
-
case 19:
|
|
4419
4400
|
return _context.a(2);
|
|
4420
4401
|
}
|
|
4421
|
-
}, _callee, null, [[3,,
|
|
4402
|
+
}, _callee, null, [[3,, 16, 18]]);
|
|
4422
4403
|
}));
|
|
4423
4404
|
return function getTransferInfo(_x) {
|
|
4424
4405
|
return _ref2.apply(this, arguments);
|
|
@@ -4438,7 +4419,7 @@ var calculateTotalXcmFee = function calculateTotalXcmFee(feeResult) {
|
|
|
4438
4419
|
};
|
|
4439
4420
|
var verifyEdOnDestinationInternal = /*#__PURE__*/function () {
|
|
4440
4421
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
|
|
4441
|
-
var api, tx, origin, destination, address, senderAddress, feeAsset, currency, destApi, asset, destCurrency, ed,
|
|
4422
|
+
var api, tx, origin, destination, address, senderAddress, feeAsset, currency, destApi, asset, destCurrency, ed, balance, xcmFeeResult, dryRunError, assetHubFeeResult, bridgeHubFeeResult, _xcmFeeResult$destina, destFee, destFeeCurrency, destDryRunError, hopDryRunError, totalFee, method, feeToSubtract;
|
|
4442
4423
|
return _regenerator().w(function (_context) {
|
|
4443
4424
|
while (1) switch (_context.n) {
|
|
4444
4425
|
case 0:
|
|
@@ -4472,24 +4453,17 @@ var verifyEdOnDestinationInternal = /*#__PURE__*/function () {
|
|
|
4472
4453
|
} : {
|
|
4473
4454
|
symbol: asset.symbol
|
|
4474
4455
|
};
|
|
4475
|
-
ed = assets.
|
|
4476
|
-
|
|
4477
|
-
_context.n = 5;
|
|
4478
|
-
break;
|
|
4479
|
-
}
|
|
4480
|
-
throw new InvalidParameterError("Cannot get existential deposit for currency ".concat(JSON.stringify(currency)));
|
|
4481
|
-
case 5:
|
|
4482
|
-
edBN = BigInt(ed);
|
|
4483
|
-
_context.n = 6;
|
|
4456
|
+
ed = assets.getExistentialDepositOrThrow(destination, destCurrency);
|
|
4457
|
+
_context.n = 5;
|
|
4484
4458
|
return getAssetBalanceInternal({
|
|
4485
4459
|
address: address,
|
|
4486
4460
|
node: destination,
|
|
4487
4461
|
api: destApi,
|
|
4488
4462
|
currency: destCurrency
|
|
4489
4463
|
});
|
|
4490
|
-
case
|
|
4464
|
+
case 5:
|
|
4491
4465
|
balance = _context.v;
|
|
4492
|
-
_context.n =
|
|
4466
|
+
_context.n = 6;
|
|
4493
4467
|
return getXcmFee({
|
|
4494
4468
|
api: api,
|
|
4495
4469
|
tx: tx,
|
|
@@ -4501,40 +4475,40 @@ var verifyEdOnDestinationInternal = /*#__PURE__*/function () {
|
|
|
4501
4475
|
feeAsset: feeAsset,
|
|
4502
4476
|
disableFallback: false
|
|
4503
4477
|
});
|
|
4504
|
-
case
|
|
4478
|
+
case 6:
|
|
4505
4479
|
xcmFeeResult = _context.v;
|
|
4506
4480
|
dryRunError = xcmFeeResult.origin.dryRunError, assetHubFeeResult = xcmFeeResult.assetHub, bridgeHubFeeResult = xcmFeeResult.bridgeHub, _xcmFeeResult$destina = xcmFeeResult.destination, destFee = _xcmFeeResult$destina.fee, destFeeCurrency = _xcmFeeResult$destina.currency, destDryRunError = _xcmFeeResult$destina.dryRunError;
|
|
4507
4481
|
if (!(destFee === undefined)) {
|
|
4508
|
-
_context.n =
|
|
4482
|
+
_context.n = 7;
|
|
4509
4483
|
break;
|
|
4510
4484
|
}
|
|
4511
|
-
throw new InvalidParameterError("Cannot get destination xcm fee for currency ".concat(JSON.stringify(currency), " on node ").concat(destination, "."));
|
|
4512
|
-
case
|
|
4485
|
+
throw new InvalidParameterError("Cannot get destination xcm fee for currency ".concat(JSON.stringify(currency, sdkCommon.replaceBigInt), " on node ").concat(destination, "."));
|
|
4486
|
+
case 7:
|
|
4513
4487
|
if (!dryRunError) {
|
|
4514
|
-
_context.n =
|
|
4488
|
+
_context.n = 8;
|
|
4515
4489
|
break;
|
|
4516
4490
|
}
|
|
4517
4491
|
throw new DryRunFailedError(dryRunError, 'origin');
|
|
4518
|
-
case
|
|
4492
|
+
case 8:
|
|
4519
4493
|
hopDryRunError = (assetHubFeeResult === null || assetHubFeeResult === void 0 ? void 0 : assetHubFeeResult.dryRunError) || (bridgeHubFeeResult === null || bridgeHubFeeResult === void 0 ? void 0 : bridgeHubFeeResult.dryRunError);
|
|
4520
4494
|
if (!hopDryRunError) {
|
|
4521
|
-
_context.n =
|
|
4495
|
+
_context.n = 9;
|
|
4522
4496
|
break;
|
|
4523
4497
|
}
|
|
4524
4498
|
throw new DryRunFailedError(hopDryRunError, assetHubFeeResult !== null && assetHubFeeResult !== void 0 && assetHubFeeResult.dryRunError ? 'assetHub' : 'bridgeHub');
|
|
4525
|
-
case
|
|
4499
|
+
case 9:
|
|
4526
4500
|
if (!destDryRunError) {
|
|
4527
|
-
_context.n =
|
|
4501
|
+
_context.n = 10;
|
|
4528
4502
|
break;
|
|
4529
4503
|
}
|
|
4530
4504
|
throw new UnableToComputeError("Unable to compute fee for the destination asset. Destination dry run error: ".concat(destDryRunError));
|
|
4531
|
-
case
|
|
4505
|
+
case 10:
|
|
4532
4506
|
if (!(assets.normalizeSymbol(asset.symbol) !== assets.normalizeSymbol(destFeeCurrency))) {
|
|
4533
|
-
_context.n =
|
|
4507
|
+
_context.n = 11;
|
|
4534
4508
|
break;
|
|
4535
4509
|
}
|
|
4536
4510
|
throw new UnableToComputeError("The XCM fee could not be calculated because the origin or destination chain does not support DryRun.\n As a result, fee estimation is only available through PaymentInfo, which provides the cost in the native asset.\n This limitation restricts support to transfers involving the native asset of the Destination chain only.");
|
|
4537
|
-
case
|
|
4511
|
+
case 11:
|
|
4538
4512
|
totalFee = calculateTotalXcmFee(xcmFeeResult);
|
|
4539
4513
|
method = api.getMethod(tx);
|
|
4540
4514
|
if (method === 'transfer_assets_using_type_and_then' || method === 'transferAssetsUsingTypeAndThen') {
|
|
@@ -4542,7 +4516,7 @@ var verifyEdOnDestinationInternal = /*#__PURE__*/function () {
|
|
|
4542
4516
|
} else {
|
|
4543
4517
|
feeToSubtract = destFee;
|
|
4544
4518
|
}
|
|
4545
|
-
return _context.a(2, BigInt(currency.amount) - feeToSubtract > (balance <
|
|
4519
|
+
return _context.a(2, BigInt(currency.amount) - feeToSubtract > (balance < ed ? ed : 0));
|
|
4546
4520
|
}
|
|
4547
4521
|
}, _callee);
|
|
4548
4522
|
}));
|
|
@@ -4669,54 +4643,48 @@ var getDestXcmFee = /*#__PURE__*/function () {
|
|
|
4669
4643
|
}
|
|
4670
4644
|
return _context.a(2, 0n);
|
|
4671
4645
|
case 1:
|
|
4672
|
-
originAsset = assets.
|
|
4673
|
-
if (originAsset) {
|
|
4674
|
-
_context.n = 2;
|
|
4675
|
-
break;
|
|
4676
|
-
}
|
|
4677
|
-
throw new assets.InvalidCurrencyError("Currency ".concat(JSON.stringify(currency, replaceBigInt), " not found in ").concat(origin));
|
|
4678
|
-
case 2:
|
|
4646
|
+
originAsset = assets.findAssetForNodeOrThrow(origin, currency, destination);
|
|
4679
4647
|
if (!originAsset.multiLocation) {
|
|
4680
|
-
_context.n =
|
|
4648
|
+
_context.n = 7;
|
|
4681
4649
|
break;
|
|
4682
4650
|
}
|
|
4683
|
-
_context.p =
|
|
4684
|
-
_context.n =
|
|
4651
|
+
_context.p = 2;
|
|
4652
|
+
_context.n = 3;
|
|
4685
4653
|
return getReverseTxFee(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
4686
4654
|
destination: destination
|
|
4687
4655
|
}), {
|
|
4688
4656
|
multilocation: originAsset.multiLocation
|
|
4689
4657
|
});
|
|
4690
|
-
case
|
|
4658
|
+
case 3:
|
|
4691
4659
|
return _context.a(2, _context.v);
|
|
4692
|
-
case
|
|
4693
|
-
_context.p =
|
|
4660
|
+
case 4:
|
|
4661
|
+
_context.p = 4;
|
|
4694
4662
|
_t = _context.v;
|
|
4695
4663
|
if (!(_t instanceof assets.InvalidCurrencyError)) {
|
|
4696
|
-
_context.n =
|
|
4664
|
+
_context.n = 6;
|
|
4697
4665
|
break;
|
|
4698
4666
|
}
|
|
4699
|
-
_context.n =
|
|
4667
|
+
_context.n = 5;
|
|
4700
4668
|
return getReverseTxFee(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
4701
4669
|
destination: destination
|
|
4702
4670
|
}), {
|
|
4703
4671
|
symbol: originAsset.symbol
|
|
4704
4672
|
});
|
|
4705
|
-
case
|
|
4673
|
+
case 5:
|
|
4706
4674
|
return _context.a(2, _context.v);
|
|
4707
|
-
case
|
|
4675
|
+
case 6:
|
|
4708
4676
|
throw _t;
|
|
4709
|
-
case
|
|
4710
|
-
_context.n =
|
|
4677
|
+
case 7:
|
|
4678
|
+
_context.n = 8;
|
|
4711
4679
|
return getReverseTxFee(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
4712
4680
|
destination: destination
|
|
4713
4681
|
}), {
|
|
4714
4682
|
symbol: originAsset.symbol
|
|
4715
4683
|
});
|
|
4716
|
-
case
|
|
4684
|
+
case 8:
|
|
4717
4685
|
return _context.a(2, _context.v);
|
|
4718
4686
|
}
|
|
4719
|
-
}, _callee, null, [[
|
|
4687
|
+
}, _callee, null, [[2, 4]]);
|
|
4720
4688
|
}));
|
|
4721
4689
|
return function calcPaymentInfoFee() {
|
|
4722
4690
|
return _ref2.apply(this, arguments);
|
|
@@ -5143,7 +5111,7 @@ var validateAssetSupport = function validateAssetSupport(_ref, assetCheckEnabled
|
|
|
5143
5111
|
var isRelayDestination = !sdkCommon.isTMultiLocation(destination) && sdkCommon.isRelayChain(destination);
|
|
5144
5112
|
var isMultiLocationDestination = _typeof(destination) === 'object';
|
|
5145
5113
|
if (!isBridge && !isRelayDestination && !isMultiLocationDestination && (asset === null || asset === void 0 ? void 0 : asset.symbol) !== undefined && assetCheckEnabled && !('id' in currency) && !assets.hasSupportForAsset(destination, asset.symbol)) {
|
|
5146
|
-
throw new assets.InvalidCurrencyError("Destination node ".concat(destination, " does not support currency ").concat(JSON.stringify(currency), "."));
|
|
5114
|
+
throw new assets.InvalidCurrencyError("Destination node ".concat(destination, " does not support currency ").concat(JSON.stringify(currency, sdkCommon.replaceBigInt), "."));
|
|
5147
5115
|
}
|
|
5148
5116
|
if (!isBridge && asset === null && assetCheckEnabled) {
|
|
5149
5117
|
throwUnsupportedCurrency(currency, origin);
|
|
@@ -5185,7 +5153,7 @@ var resolveOverriddenAsset = function resolveOverriddenAsset(options, isBridge,
|
|
|
5185
5153
|
var assets$1 = currency.multiasset.map(function (currency) {
|
|
5186
5154
|
var asset = assets.findAsset(origin, currency, !sdkCommon.isTMultiLocation(destination) ? destination : null);
|
|
5187
5155
|
if (asset && !asset.multiLocation) {
|
|
5188
|
-
throw new assets.InvalidCurrencyError("Asset ".concat(JSON.stringify(currency), " does not have a multiLocation"));
|
|
5156
|
+
throw new assets.InvalidCurrencyError("Asset ".concat(JSON.stringify(currency, sdkCommon.replaceBigInt), " does not have a multiLocation"));
|
|
5189
5157
|
}
|
|
5190
5158
|
if (!asset) {
|
|
5191
5159
|
throw new assets.InvalidCurrencyError("Origin node ".concat(origin, " does not support currency ").concat(JSON.stringify(currency)));
|
|
@@ -5953,7 +5921,8 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
5953
5921
|
input = {
|
|
5954
5922
|
api: api,
|
|
5955
5923
|
asset: asset,
|
|
5956
|
-
|
|
5924
|
+
// Refactor this
|
|
5925
|
+
destLocation: createBeneficiary({
|
|
5957
5926
|
api: api,
|
|
5958
5927
|
scenario: scenario,
|
|
5959
5928
|
pallet: 'XTokens',
|
|
@@ -5987,7 +5956,8 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
5987
5956
|
api: api,
|
|
5988
5957
|
asset: asset,
|
|
5989
5958
|
recipientAddress: address,
|
|
5990
|
-
|
|
5959
|
+
paraIdTo: paraId,
|
|
5960
|
+
scenario: scenario,
|
|
5991
5961
|
origin: this.node,
|
|
5992
5962
|
destination: destination,
|
|
5993
5963
|
overriddenAsset: overriddenAsset,
|
|
@@ -6001,8 +5971,8 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
6001
5971
|
}
|
|
6002
5972
|
_options = {
|
|
6003
5973
|
api: api,
|
|
6004
|
-
|
|
6005
|
-
|
|
5974
|
+
destLocation: createDestination(scenario, version, destination, paraId),
|
|
5975
|
+
beneficiaryLocation: createBeneficiary({
|
|
6006
5976
|
api: api,
|
|
6007
5977
|
scenario: scenario,
|
|
6008
5978
|
pallet: 'PolkadotXcm',
|
|
@@ -6011,7 +5981,7 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
6011
5981
|
paraId: paraId
|
|
6012
5982
|
}),
|
|
6013
5983
|
address: address,
|
|
6014
|
-
|
|
5984
|
+
multiAsset: this.createCurrencySpec(asset.amount, scenario, version, asset, overriddenAsset !== undefined),
|
|
6015
5985
|
overriddenAsset: overriddenAsset,
|
|
6016
5986
|
asset: asset,
|
|
6017
5987
|
currency: currency,
|
|
@@ -6082,16 +6052,11 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
6082
6052
|
}, {
|
|
6083
6053
|
key: "createCurrencySpec",
|
|
6084
6054
|
value: function createCurrencySpec(amount, scenario, version, _asset, _isOverridenAsset) {
|
|
6085
|
-
return
|
|
6055
|
+
return createMultiAsset(version, amount, {
|
|
6086
6056
|
parents: scenario === 'ParaToRelay' ? sdkCommon.Parents.ONE : sdkCommon.Parents.ZERO,
|
|
6087
6057
|
interior: 'Here'
|
|
6088
6058
|
});
|
|
6089
6059
|
}
|
|
6090
|
-
}, {
|
|
6091
|
-
key: "createVersionedDestination",
|
|
6092
|
-
value: function createVersionedDestination$1(scenario, version, destination, paraId) {
|
|
6093
|
-
return createVersionedDestination(scenario, version, destination, paraId);
|
|
6094
|
-
}
|
|
6095
6060
|
}, {
|
|
6096
6061
|
key: "getNativeAssetSymbol",
|
|
6097
6062
|
value: function getNativeAssetSymbol() {
|
|
@@ -6202,13 +6167,13 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
6202
6167
|
throw new DryRunFailedError(dryRunResult.origin.failureReason);
|
|
6203
6168
|
case 5:
|
|
6204
6169
|
// Pad fee by 50%
|
|
6205
|
-
dryRunFeePadded = BigInt(dryRunResult.origin.fee) *
|
|
6170
|
+
dryRunFeePadded = BigInt(dryRunResult.origin.fee) * 3n / 2n;
|
|
6206
6171
|
dest = createDestination(scenario, version, destination, paraIdTo);
|
|
6207
6172
|
call = {
|
|
6208
6173
|
module: 'PolkadotXcm',
|
|
6209
6174
|
method: 'transfer_assets_using_type_and_then',
|
|
6210
6175
|
parameters: {
|
|
6211
|
-
dest:
|
|
6176
|
+
dest: createVersionedDestination(scenario, version, destination, getParaId('AssetHubPolkadot')),
|
|
6212
6177
|
assets: addXcmVersionHeader([].concat(_toConsumableArray(!feeAsset ? [createMultiAsset(version, PARA_TO_PARA_FEE_DOT, DOT_MULTILOCATION)] : []), [ethMultiAsset]), version),
|
|
6213
6178
|
assets_transfer_type: 'DestinationReserve',
|
|
6214
6179
|
remote_fees_id: addXcmVersionHeader((_feeAsset$multiLocati = feeAsset === null || feeAsset === void 0 ? void 0 : feeAsset.multiLocation) !== null && _feeAsset$multiLocati !== void 0 ? _feeAsset$multiLocati : DOT_MULTILOCATION, version),
|
|
@@ -6265,7 +6230,7 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
6265
6230
|
};
|
|
6266
6231
|
return _context2.a(2, api.callTxMethod(call));
|
|
6267
6232
|
}
|
|
6268
|
-
}, _callee2
|
|
6233
|
+
}, _callee2);
|
|
6269
6234
|
}));
|
|
6270
6235
|
function transferEthAssetViaAH(_x2) {
|
|
6271
6236
|
return _transferEthAssetViaAH.apply(this, arguments);
|
|
@@ -6393,7 +6358,7 @@ var ParachainNode = /*#__PURE__*/function () {
|
|
|
6393
6358
|
module: 'PolkadotXcm',
|
|
6394
6359
|
method: 'transfer_assets_using_type_and_then',
|
|
6395
6360
|
parameters: {
|
|
6396
|
-
dest:
|
|
6361
|
+
dest: createVersionedDestination(scenario, version, destination, getParaId('AssetHubPolkadot')),
|
|
6397
6362
|
assets: addXcmVersionHeader([].concat(_toConsumableArray(!feeAsset ? [createMultiAsset(version, fee, DOT_MULTILOCATION)] : []), [ethMultiAsset]), version),
|
|
6398
6363
|
assets_transfer_type: 'DestinationReserve',
|
|
6399
6364
|
remote_fees_id: addXcmVersionHeader((_feeAsset$multiLocati2 = feeAsset === null || feeAsset === void 0 ? void 0 : feeAsset.multiLocation) !== null && _feeAsset$multiLocati2 !== void 0 ? _feeAsset$multiLocati2 : DOT_MULTILOCATION, version),
|
|
@@ -6478,46 +6443,35 @@ var Acala = /*#__PURE__*/function (_ParachainNode) {
|
|
|
6478
6443
|
}]);
|
|
6479
6444
|
}(ParachainNode);
|
|
6480
6445
|
|
|
6481
|
-
var
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
|
|
6485
|
-
|
|
6486
|
-
|
|
6487
|
-
|
|
6488
|
-
|
|
6489
|
-
|
|
6490
|
-
|
|
6491
|
-
|
|
6492
|
-
|
|
6493
|
-
|
|
6494
|
-
|
|
6495
|
-
|
|
6496
|
-
|
|
6497
|
-
|
|
6498
|
-
|
|
6499
|
-
|
|
6500
|
-
|
|
6501
|
-
|
|
6502
|
-
|
|
6503
|
-
|
|
6504
|
-
|
|
6505
|
-
|
|
6506
|
-
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
beneficiary: addressSelection,
|
|
6511
|
-
assets: resolvedMultiAssets,
|
|
6512
|
-
fee_asset_item: feeAssetIndex
|
|
6513
|
-
}, fees !== undefined ? {
|
|
6514
|
-
weight_limit: fees
|
|
6515
|
-
} : {})
|
|
6516
|
-
};
|
|
6517
|
-
return api.callTxMethod(call);
|
|
6518
|
-
}
|
|
6519
|
-
}]);
|
|
6520
|
-
}();
|
|
6446
|
+
var transferPolkadotXcm = function transferPolkadotXcm(_ref, method) {
|
|
6447
|
+
var api = _ref.api,
|
|
6448
|
+
destLocation = _ref.destLocation,
|
|
6449
|
+
asset = _ref.asset,
|
|
6450
|
+
beneficiaryLocation = _ref.beneficiaryLocation,
|
|
6451
|
+
multiAsset = _ref.multiAsset,
|
|
6452
|
+
overriddenAsset = _ref.overriddenAsset,
|
|
6453
|
+
pallet = _ref.pallet,
|
|
6454
|
+
version = _ref.version,
|
|
6455
|
+
methodOverride = _ref.method;
|
|
6456
|
+
var fees = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
6457
|
+
var resolvedMultiAssets = maybeOverrideMultiAssets(version, asset.amount, [multiAsset], overriddenAsset);
|
|
6458
|
+
var feeAssetIndex = overriddenAsset === undefined || sdkCommon.isTMultiLocation(overriddenAsset) ? DEFAULT_FEE_ASSET : overriddenAsset.findIndex(function (asset) {
|
|
6459
|
+
return asset.isFeeAsset;
|
|
6460
|
+
});
|
|
6461
|
+
var call = {
|
|
6462
|
+
module: pallet !== null && pallet !== void 0 ? pallet : 'PolkadotXcm',
|
|
6463
|
+
method: methodOverride !== null && methodOverride !== void 0 ? methodOverride : method,
|
|
6464
|
+
parameters: _objectSpread2({
|
|
6465
|
+
dest: addXcmVersionHeader(destLocation, version),
|
|
6466
|
+
beneficiary: addXcmVersionHeader(beneficiaryLocation, version),
|
|
6467
|
+
assets: addXcmVersionHeader(resolvedMultiAssets, version),
|
|
6468
|
+
fee_asset_item: feeAssetIndex
|
|
6469
|
+
}, fees !== undefined ? {
|
|
6470
|
+
weight_limit: fees
|
|
6471
|
+
} : {})
|
|
6472
|
+
};
|
|
6473
|
+
return Promise.resolve(api.callTxMethod(call));
|
|
6474
|
+
};
|
|
6521
6475
|
|
|
6522
6476
|
var Ajuna = /*#__PURE__*/function (_ParachainNode) {
|
|
6523
6477
|
function Ajuna() {
|
|
@@ -6541,7 +6495,7 @@ var Ajuna = /*#__PURE__*/function (_ParachainNode) {
|
|
|
6541
6495
|
}, {
|
|
6542
6496
|
key: "transferPolkadotXCM",
|
|
6543
6497
|
value: function transferPolkadotXCM(input) {
|
|
6544
|
-
return
|
|
6498
|
+
return transferPolkadotXcm(input, 'transfer_assets', 'Unlimited');
|
|
6545
6499
|
}
|
|
6546
6500
|
}, {
|
|
6547
6501
|
key: "canUseXTokens",
|
|
@@ -6669,7 +6623,7 @@ var AssetHubKusama = /*#__PURE__*/function (_ParachainNode) {
|
|
|
6669
6623
|
// TESTED https://kusama.subscan.io/xcm_message/kusama-ddc2a48f0d8e0337832d7aae26f6c3053e1f4ffd
|
|
6670
6624
|
// TESTED https://kusama.subscan.io/xcm_message/kusama-8e423130a4d8b61679af95dbea18a55124f99672
|
|
6671
6625
|
if (destination === 'AssetHubPolkadot') {
|
|
6672
|
-
return
|
|
6626
|
+
return getNode('AssetHubPolkadot').handleBridgeTransfer(input, 'Polkadot');
|
|
6673
6627
|
}
|
|
6674
6628
|
var isSystemNode = !sdkCommon.isTMultiLocation(destination) && SYSTEM_NODES_KUSAMA.includes(destination);
|
|
6675
6629
|
if (scenario === 'ParaToPara' && asset.symbol === 'KSM' && !assets.isForeignAsset(asset) && !isSystemNode) {
|
|
@@ -6679,7 +6633,7 @@ var AssetHubKusama = /*#__PURE__*/function (_ParachainNode) {
|
|
|
6679
6633
|
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>}.');
|
|
6680
6634
|
}
|
|
6681
6635
|
var method = scenario === 'ParaToPara' && !isSystemNode ? 'limited_reserve_transfer_assets' : 'limited_teleport_assets';
|
|
6682
|
-
return
|
|
6636
|
+
return transferPolkadotXcm(input, method, 'Unlimited');
|
|
6683
6637
|
}
|
|
6684
6638
|
}, {
|
|
6685
6639
|
key: "getRelayToParaOverrides",
|
|
@@ -7038,7 +6992,7 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7038
6992
|
module: 'PolkadotXcm',
|
|
7039
6993
|
method: 'transfer_assets_using_type_and_then',
|
|
7040
6994
|
parameters: {
|
|
7041
|
-
dest:
|
|
6995
|
+
dest: createVersionedDestination(scenario, version, destination, paraIdTo),
|
|
7042
6996
|
assets: addXcmVersionHeader([].concat(_toConsumableArray(useDOTAsFeeAsset ? [createMultiAsset(version, PARA_TO_PARA_FEE_DOT, DOT_MULTILOCATION)] : []), [createMultiAsset(version, asset.amount, asset.multiLocation)]), version),
|
|
7043
6997
|
assets_transfer_type: 'LocalReserve',
|
|
7044
6998
|
remote_fees_id: addXcmVersionHeader(useDOTAsFeeAsset ? DOT_MULTILOCATION : asset.multiLocation, version),
|
|
@@ -7065,8 +7019,8 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7065
7019
|
paraIdTo = input.paraIdTo;
|
|
7066
7020
|
if (targetChain === 'Kusama' && ((_asset$symbol = asset.symbol) === null || _asset$symbol === void 0 ? void 0 : _asset$symbol.toUpperCase()) === 'KSM' || targetChain === 'Polkadot' && ((_asset$symbol2 = asset.symbol) === null || _asset$symbol2 === void 0 ? void 0 : _asset$symbol2.toUpperCase()) === 'DOT') {
|
|
7067
7021
|
var modifiedInput = _objectSpread2(_objectSpread2({}, input), {}, {
|
|
7068
|
-
|
|
7069
|
-
|
|
7022
|
+
destLocation: createBridgeDestination(targetChain, destination, paraIdTo),
|
|
7023
|
+
beneficiaryLocation: createBeneficiary({
|
|
7070
7024
|
api: api,
|
|
7071
7025
|
scenario: scenario,
|
|
7072
7026
|
pallet: 'PolkadotXcm',
|
|
@@ -7074,15 +7028,15 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7074
7028
|
version: version,
|
|
7075
7029
|
paraId: paraIdTo
|
|
7076
7030
|
}),
|
|
7077
|
-
|
|
7031
|
+
multiAsset: createMultiAsset(version, asset.amount, asset.multiLocation)
|
|
7078
7032
|
});
|
|
7079
|
-
return
|
|
7033
|
+
return transferPolkadotXcm(modifiedInput, 'transfer_assets', 'Unlimited');
|
|
7080
7034
|
} else if (targetChain === 'Polkadot' && ((_asset$symbol3 = asset.symbol) === null || _asset$symbol3 === void 0 ? void 0 : _asset$symbol3.toUpperCase()) === 'KSM' || targetChain === 'Kusama' && ((_asset$symbol4 = asset.symbol) === null || _asset$symbol4 === void 0 ? void 0 : _asset$symbol4.toUpperCase()) === 'DOT') {
|
|
7081
7035
|
var _modifiedInput = _objectSpread2(_objectSpread2({}, input), {}, {
|
|
7082
|
-
|
|
7083
|
-
|
|
7036
|
+
destLocation: createBridgeDestination(targetChain, destination, paraIdTo),
|
|
7037
|
+
multiAsset: createMultiAsset(version, asset.amount, DOT_MULTILOCATION)
|
|
7084
7038
|
});
|
|
7085
|
-
return
|
|
7039
|
+
return transferPolkadotXcm(_modifiedInput, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
7086
7040
|
}
|
|
7087
7041
|
throw new assets.InvalidCurrencyError("Polkadot <-> Kusama bridge does not support currency ".concat(asset.symbol));
|
|
7088
7042
|
}
|
|
@@ -7211,8 +7165,8 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7211
7165
|
return _context2.a(2, this.handleEthBridgeNativeTransfer(input));
|
|
7212
7166
|
case 5:
|
|
7213
7167
|
modifiedInput = _objectSpread2(_objectSpread2({}, input), {}, {
|
|
7214
|
-
|
|
7215
|
-
|
|
7168
|
+
destLocation: createDestination(scenario, this.version, destination, paraIdTo, ETHEREUM_JUNCTION, sdkCommon.Parents.TWO),
|
|
7169
|
+
beneficiaryLocation: createBeneficiary({
|
|
7216
7170
|
api: api,
|
|
7217
7171
|
scenario: scenario,
|
|
7218
7172
|
pallet: 'PolkadotXcm',
|
|
@@ -7220,9 +7174,9 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7220
7174
|
version: this.version,
|
|
7221
7175
|
paraId: paraIdTo
|
|
7222
7176
|
}),
|
|
7223
|
-
|
|
7177
|
+
multiAsset: createMultiAsset(version, asset.amount, asset.multiLocation)
|
|
7224
7178
|
});
|
|
7225
|
-
return _context2.a(2,
|
|
7179
|
+
return _context2.a(2, transferPolkadotXcm(modifiedInput, 'transfer_assets', 'Unlimited'));
|
|
7226
7180
|
}
|
|
7227
7181
|
}, _callee2, this);
|
|
7228
7182
|
}));
|
|
@@ -7251,8 +7205,8 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7251
7205
|
}
|
|
7252
7206
|
};
|
|
7253
7207
|
var modifiedInput = _objectSpread2(_objectSpread2({}, input), {}, {
|
|
7254
|
-
|
|
7255
|
-
|
|
7208
|
+
destLocation: createDestination(scenario, version, destination, paraId),
|
|
7209
|
+
beneficiaryLocation: createBeneficiary({
|
|
7256
7210
|
api: api,
|
|
7257
7211
|
scenario: scenario,
|
|
7258
7212
|
pallet: 'PolkadotXcm',
|
|
@@ -7260,9 +7214,9 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7260
7214
|
version: version,
|
|
7261
7215
|
paraId: paraId
|
|
7262
7216
|
}),
|
|
7263
|
-
|
|
7217
|
+
multiAsset: createMultiAsset(version, asset.amount, customMultiLocation)
|
|
7264
7218
|
});
|
|
7265
|
-
return
|
|
7219
|
+
return transferPolkadotXcm(modifiedInput, 'limited_teleport_assets', 'Unlimited');
|
|
7266
7220
|
}
|
|
7267
7221
|
}, {
|
|
7268
7222
|
key: "patchInput",
|
|
@@ -7273,7 +7227,7 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7273
7227
|
version = _input$version === void 0 ? this.version : _input$version;
|
|
7274
7228
|
if ((destination === 'Hydration' || destination === 'Polimec' || destination === 'Moonbeam' || destination === 'BifrostPolkadot') && asset.symbol === 'DOT') {
|
|
7275
7229
|
return _objectSpread2(_objectSpread2({}, input), {}, {
|
|
7276
|
-
|
|
7230
|
+
multiAsset: createMultiAsset(version, asset.amount, DOT_MULTILOCATION)
|
|
7277
7231
|
});
|
|
7278
7232
|
}
|
|
7279
7233
|
return input;
|
|
@@ -7289,7 +7243,7 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7289
7243
|
key: "handleExecuteTransfer",
|
|
7290
7244
|
value: function () {
|
|
7291
7245
|
var _handleExecuteTransfer = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(input) {
|
|
7292
|
-
var api, senderAddress, asset, feeAsset, version, decimals, multiplier, base, scaledMultiplier, MIN_FEE, call, dryRunResult, paddedFee, xcm, weight;
|
|
7246
|
+
var api, senderAddress, asset, feeAsset, version, decimals, multiplier, base, scaledMultiplier, MIN_FEE, checkAmount, call, dryRunResult, paddedFee, xcm, weight;
|
|
7293
7247
|
return _regenerator().w(function (_context3) {
|
|
7294
7248
|
while (1) switch (_context3.n) {
|
|
7295
7249
|
case 0:
|
|
@@ -7306,6 +7260,12 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7306
7260
|
base = BigInt(Math.pow(10, decimals));
|
|
7307
7261
|
scaledMultiplier = BigInt(Math.floor(multiplier * Math.pow(10, decimals)));
|
|
7308
7262
|
MIN_FEE = base * scaledMultiplier / BigInt(Math.pow(10, decimals));
|
|
7263
|
+
checkAmount = function checkAmount(fee) {
|
|
7264
|
+
if (feeAsset && assets.isAssetEqual(asset, feeAsset) && BigInt(asset.amount) <= fee * 2n) {
|
|
7265
|
+
throw new InvalidParameterError("Asset amount ".concat(asset.amount, " is too low, please increase the amount or use a different fee asset."));
|
|
7266
|
+
}
|
|
7267
|
+
};
|
|
7268
|
+
checkAmount(MIN_FEE);
|
|
7309
7269
|
call = createExecuteCall(createExecuteXcm(input, MIN_FEE, version), MAX_WEIGHT);
|
|
7310
7270
|
_context3.n = 2;
|
|
7311
7271
|
return api.getDryRunCall({
|
|
@@ -7323,6 +7283,7 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7323
7283
|
throw new DryRunFailedError(dryRunResult.failureReason);
|
|
7324
7284
|
case 3:
|
|
7325
7285
|
paddedFee = dryRunResult.fee * 120n / 100n;
|
|
7286
|
+
checkAmount(paddedFee);
|
|
7326
7287
|
xcm = createExecuteXcm(input, paddedFee, version);
|
|
7327
7288
|
_context3.n = 4;
|
|
7328
7289
|
return api.getXcmWeight(xcm);
|
|
@@ -7420,7 +7381,7 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7420
7381
|
case 11:
|
|
7421
7382
|
method = this.getMethod(scenario, destination);
|
|
7422
7383
|
modifiedInput = this.patchInput(input);
|
|
7423
|
-
return _context4.a(2,
|
|
7384
|
+
return _context4.a(2, transferPolkadotXcm(modifiedInput, method, 'Unlimited'));
|
|
7424
7385
|
}
|
|
7425
7386
|
}, _callee4, this);
|
|
7426
7387
|
}));
|
|
@@ -7451,7 +7412,7 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7451
7412
|
throw new assets.InvalidCurrencyError('Asset does not have a multiLocation defined');
|
|
7452
7413
|
}
|
|
7453
7414
|
var transformedMultiLocation = sdkCommon.hasJunction(multiLocation, 'Parachain', 1000) ? transformMultiLocation(multiLocation) : multiLocation;
|
|
7454
|
-
return
|
|
7415
|
+
return createMultiAsset(version, amount, transformedMultiLocation);
|
|
7455
7416
|
} else {
|
|
7456
7417
|
return _superPropGet(AssetHubPolkadot, "createCurrencySpec", this, 3)([amount, scenario, version, asset]);
|
|
7457
7418
|
}
|
|
@@ -7502,7 +7463,7 @@ var Astar = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7502
7463
|
return _createClass(Astar, [{
|
|
7503
7464
|
key: "transferPolkadotXCM",
|
|
7504
7465
|
value: function transferPolkadotXCM(input) {
|
|
7505
|
-
return
|
|
7466
|
+
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
7506
7467
|
}
|
|
7507
7468
|
}, {
|
|
7508
7469
|
key: "transferXTokens",
|
|
@@ -7642,8 +7603,8 @@ var BifrostPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7642
7603
|
value: function transferToAssetHub(input) {
|
|
7643
7604
|
var _getAssetId;
|
|
7644
7605
|
var asset = input.asset;
|
|
7645
|
-
return
|
|
7646
|
-
|
|
7606
|
+
return transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
|
|
7607
|
+
multiAsset: createMultiAsset(this.version, asset.amount, {
|
|
7647
7608
|
parents: asset.symbol === 'DOT' ? sdkCommon.Parents.ONE : sdkCommon.Parents.TWO,
|
|
7648
7609
|
interior: asset.symbol === 'WETH' ? {
|
|
7649
7610
|
X2: [ETHEREUM_JUNCTION, {
|
|
@@ -7653,7 +7614,7 @@ var BifrostPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7653
7614
|
}]
|
|
7654
7615
|
} : 'Here'
|
|
7655
7616
|
})
|
|
7656
|
-
}), 'transfer_assets', 'Unlimited')
|
|
7617
|
+
}), 'transfer_assets', 'Unlimited');
|
|
7657
7618
|
}
|
|
7658
7619
|
}, {
|
|
7659
7620
|
key: "transferPolkadotXCM",
|
|
@@ -7709,7 +7670,7 @@ var BridgeHubKusama = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7709
7670
|
throw new ScenarioNotSupportedError(this.node, scenario, 'Unable to use bridge hub for transfers to other Parachains. Please move your currency to AssetHub to transfer to other Parachains.');
|
|
7710
7671
|
}
|
|
7711
7672
|
var method = 'limited_teleport_assets';
|
|
7712
|
-
return
|
|
7673
|
+
return transferPolkadotXcm(input, method, 'Unlimited');
|
|
7713
7674
|
}
|
|
7714
7675
|
}, {
|
|
7715
7676
|
key: "getRelayToParaOverrides",
|
|
@@ -7736,7 +7697,7 @@ var BridgeHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7736
7697
|
throw new ScenarioNotSupportedError(this.node, scenario, 'Unable to use bridge hub for transfers to other Parachains. Please move your currency to AssetHub to transfer to other Parachains.');
|
|
7737
7698
|
}
|
|
7738
7699
|
var method = 'limited_teleport_assets';
|
|
7739
|
-
return
|
|
7700
|
+
return transferPolkadotXcm(input, method, 'Unlimited');
|
|
7740
7701
|
}
|
|
7741
7702
|
}, {
|
|
7742
7703
|
key: "getRelayToParaOverrides",
|
|
@@ -7813,7 +7774,7 @@ var Collectives = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7813
7774
|
if (scenario === 'ParaToPara') {
|
|
7814
7775
|
throw new ScenarioNotSupportedError(this.node, scenario);
|
|
7815
7776
|
}
|
|
7816
|
-
return
|
|
7777
|
+
return transferPolkadotXcm(input, 'limited_teleport_assets', 'Unlimited');
|
|
7817
7778
|
}
|
|
7818
7779
|
}, {
|
|
7819
7780
|
key: "getRelayToParaOverrides",
|
|
@@ -7823,11 +7784,6 @@ var Collectives = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7823
7784
|
includeFee: true
|
|
7824
7785
|
};
|
|
7825
7786
|
}
|
|
7826
|
-
}, {
|
|
7827
|
-
key: "createCurrencySpec",
|
|
7828
|
-
value: function createCurrencySpec(amount, scenario, version, asset) {
|
|
7829
|
-
return _superPropGet(Collectives, "createCurrencySpec", this, 3)([amount, scenario, version, asset]);
|
|
7830
|
-
}
|
|
7831
7787
|
}]);
|
|
7832
7788
|
}(ParachainNode);
|
|
7833
7789
|
|
|
@@ -7861,7 +7817,7 @@ var CoretimeKusama = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7861
7817
|
// TESTED block hash on Rococo: 0x78ace0f1bf7cac9a42e56143321b617d98327e2750f795efb0abb833025c9082
|
|
7862
7818
|
var scenario = input.scenario;
|
|
7863
7819
|
var method = scenario === 'ParaToPara' ? 'limited_reserve_transfer_assets' : 'limited_teleport_assets';
|
|
7864
|
-
return
|
|
7820
|
+
return transferPolkadotXcm(input, method, 'Unlimited');
|
|
7865
7821
|
}
|
|
7866
7822
|
}, {
|
|
7867
7823
|
key: "getRelayToParaOverrides",
|
|
@@ -7885,7 +7841,7 @@ var CoretimePolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7885
7841
|
value: function transferPolkadotXCM(input) {
|
|
7886
7842
|
var scenario = input.scenario;
|
|
7887
7843
|
var method = scenario === 'ParaToPara' ? 'limited_reserve_transfer_assets' : 'limited_teleport_assets';
|
|
7888
|
-
return
|
|
7844
|
+
return transferPolkadotXcm(input, method, 'Unlimited');
|
|
7889
7845
|
}
|
|
7890
7846
|
}, {
|
|
7891
7847
|
key: "getRelayToParaOverrides",
|
|
@@ -7909,7 +7865,7 @@ var Crab = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7909
7865
|
value: function transferPolkadotXCM(input) {
|
|
7910
7866
|
// TESTED https://kusama.subscan.io/xcm_message/kusama-ce7396ec470ba0c6516a50075046ee65464572dc
|
|
7911
7867
|
if (input.scenario === 'ParaToPara') {
|
|
7912
|
-
return
|
|
7868
|
+
return transferPolkadotXcm(input, 'reserve_transfer_assets');
|
|
7913
7869
|
}
|
|
7914
7870
|
throw new ScenarioNotSupportedError(this.node, input.scenario);
|
|
7915
7871
|
}
|
|
@@ -7922,7 +7878,7 @@ var Crab = /*#__PURE__*/function (_ParachainNode) {
|
|
|
7922
7878
|
key: "createCurrencySpec",
|
|
7923
7879
|
value: function createCurrencySpec(amount, scenario, version, _asset) {
|
|
7924
7880
|
if (scenario === 'ParaToPara') {
|
|
7925
|
-
return
|
|
7881
|
+
return createMultiAsset(version, amount, {
|
|
7926
7882
|
parents: sdkCommon.Parents.ZERO,
|
|
7927
7883
|
interior: {
|
|
7928
7884
|
X1: {
|
|
@@ -8063,13 +8019,13 @@ var Darwinia = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8063
8019
|
if (scenario === 'ParaToPara' && asset.symbol !== this.getNativeAssetSymbol()) {
|
|
8064
8020
|
throw new ScenarioNotSupportedError(this.node, scenario);
|
|
8065
8021
|
}
|
|
8066
|
-
return
|
|
8022
|
+
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
8067
8023
|
}
|
|
8068
8024
|
}, {
|
|
8069
8025
|
key: "createCurrencySpec",
|
|
8070
8026
|
value: function createCurrencySpec(amount, scenario, version, _asset) {
|
|
8071
8027
|
if (scenario === 'ParaToPara') {
|
|
8072
|
-
return
|
|
8028
|
+
return createMultiAsset(version, amount, {
|
|
8073
8029
|
parents: sdkCommon.Parents.ZERO,
|
|
8074
8030
|
interior: {
|
|
8075
8031
|
X1: {
|
|
@@ -8118,7 +8074,7 @@ var Encointer = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8118
8074
|
// NO PARA TO PARA SCENARIOS ON SUBSCAN
|
|
8119
8075
|
// TESTED https://encointer.subscan.io/xcm_message/kusama-418501e86e947b16c4e4e9040694017e64f9b162
|
|
8120
8076
|
if (input.scenario === 'ParaToRelay') {
|
|
8121
|
-
return
|
|
8077
|
+
return transferPolkadotXcm(input, 'limited_teleport_assets', 'Unlimited');
|
|
8122
8078
|
}
|
|
8123
8079
|
throw new ScenarioNotSupportedError(this.node, input.scenario);
|
|
8124
8080
|
}
|
|
@@ -8150,7 +8106,7 @@ var Heima = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8150
8106
|
if (asset.symbol !== this.getNativeAssetSymbol()) {
|
|
8151
8107
|
throw new assets.InvalidCurrencyError("Asset ".concat(asset.symbol, " is not supported by node ").concat(this.node, "."));
|
|
8152
8108
|
}
|
|
8153
|
-
return
|
|
8109
|
+
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
8154
8110
|
}
|
|
8155
8111
|
}]);
|
|
8156
8112
|
}(ParachainNode);
|
|
@@ -8170,9 +8126,9 @@ var getAssetMultiLocation = function getAssetMultiLocation(asset) {
|
|
|
8170
8126
|
};
|
|
8171
8127
|
var createTransferAssetsTransfer = function createTransferAssetsTransfer(options, version) {
|
|
8172
8128
|
var asset = options.asset;
|
|
8173
|
-
var
|
|
8174
|
-
return
|
|
8175
|
-
|
|
8129
|
+
var location = getAssetMultiLocation(asset);
|
|
8130
|
+
return transferPolkadotXcm(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
8131
|
+
multiAsset: createMultiAsset(version, asset.amount, location)
|
|
8176
8132
|
}), 'transfer_assets', 'Unlimited');
|
|
8177
8133
|
};
|
|
8178
8134
|
var createTypeAndThenDest = function createTypeAndThenDest(destination, scenario, version) {
|
|
@@ -8273,7 +8229,7 @@ var Polimec = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8273
8229
|
break;
|
|
8274
8230
|
}
|
|
8275
8231
|
_call = createTypeAndThenTransfer(input, version);
|
|
8276
|
-
return _context.a(2,
|
|
8232
|
+
return _context.a(2, api.callTxMethod(_call));
|
|
8277
8233
|
case 1:
|
|
8278
8234
|
if (!(scenario === 'ParaToPara' && (destination === 'AssetHubPolkadot' || destination === 'Hydration'))) {
|
|
8279
8235
|
_context.n = 2;
|
|
@@ -8373,7 +8329,7 @@ var Hydration = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8373
8329
|
module: 'PolkadotXcm',
|
|
8374
8330
|
method: 'transfer_assets_using_type_and_then',
|
|
8375
8331
|
parameters: {
|
|
8376
|
-
dest:
|
|
8332
|
+
dest: createVersionedDestination(scenario, version, destination, getParaId('AssetHubPolkadot')),
|
|
8377
8333
|
assets: _defineProperty({}, version, [createMultiAsset(version, asset.amount, DOT_MULTILOCATION)]),
|
|
8378
8334
|
assets_transfer_type: 'DestinationReserve',
|
|
8379
8335
|
remote_fees_id: _defineProperty({}, version, {
|
|
@@ -8397,7 +8353,7 @@ var Hydration = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8397
8353
|
var symbol = asset.symbol.toUpperCase();
|
|
8398
8354
|
if (symbol === 'DOT') {
|
|
8399
8355
|
var call = createTypeAndThenTransfer(options, version);
|
|
8400
|
-
return api.callTxMethod(call);
|
|
8356
|
+
return Promise.resolve(api.callTxMethod(call));
|
|
8401
8357
|
}
|
|
8402
8358
|
if ((symbol === 'USDC' || symbol === 'USDT') && !sdkCommon.hasJunction(asset.multiLocation, 'Parachain', getParaId('AssetHubPolkadot'))) {
|
|
8403
8359
|
throw new assets.InvalidCurrencyError('The selected asset is not supported for transfer to Polimec');
|
|
@@ -8579,7 +8535,7 @@ var KiltSpiritnet = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8579
8535
|
if (scenario === 'ParaToPara' && asset.symbol !== this.getNativeAssetSymbol()) {
|
|
8580
8536
|
throw new ScenarioNotSupportedError(this.node, scenario, 'KiltSpiritnet only supports native asset ParaToPara transfers');
|
|
8581
8537
|
}
|
|
8582
|
-
return
|
|
8538
|
+
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
8583
8539
|
}
|
|
8584
8540
|
}, {
|
|
8585
8541
|
key: "transferRelayToPara",
|
|
@@ -8722,9 +8678,9 @@ var Moonbeam = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8722
8678
|
return this.transferToEthereum(input);
|
|
8723
8679
|
}
|
|
8724
8680
|
var multiLocation = this.getMultiLocation(asset, scenario);
|
|
8725
|
-
return
|
|
8726
|
-
|
|
8727
|
-
}), 'transfer_assets', 'Unlimited')
|
|
8681
|
+
return transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
|
|
8682
|
+
multiAsset: createMultiAsset(version, asset.amount, multiLocation)
|
|
8683
|
+
}), 'transfer_assets', 'Unlimited');
|
|
8728
8684
|
}
|
|
8729
8685
|
}, {
|
|
8730
8686
|
key: "getRelayToParaOverrides",
|
|
@@ -8790,9 +8746,9 @@ var Moonriver = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8790
8746
|
_input$version = input.version,
|
|
8791
8747
|
version = _input$version === void 0 ? this.version : _input$version;
|
|
8792
8748
|
var multiLocation = this.getMultiLocation(asset, scenario);
|
|
8793
|
-
return
|
|
8794
|
-
|
|
8795
|
-
}), 'transfer_assets', 'Unlimited')
|
|
8749
|
+
return transferPolkadotXcm(_objectSpread2(_objectSpread2({}, input), {}, {
|
|
8750
|
+
multiAsset: createMultiAsset(version, asset.amount, multiLocation)
|
|
8751
|
+
}), 'transfer_assets', 'Unlimited');
|
|
8796
8752
|
}
|
|
8797
8753
|
}, {
|
|
8798
8754
|
key: "getRelayToParaOverrides",
|
|
@@ -8829,7 +8785,7 @@ var Mythos = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8829
8785
|
if (asset.symbol !== nativeSymbol) {
|
|
8830
8786
|
throw new assets.InvalidCurrencyError("Node ".concat(this.node, " does not support currency ").concat(asset.symbol));
|
|
8831
8787
|
}
|
|
8832
|
-
return
|
|
8788
|
+
return transferPolkadotXcm(input, destination === 'AssetHubPolkadot' ? 'limited_teleport_assets' : 'limited_reserve_transfer_assets', 'Unlimited');
|
|
8833
8789
|
}
|
|
8834
8790
|
}, {
|
|
8835
8791
|
key: "transferPolkadotXCM",
|
|
@@ -8876,7 +8832,7 @@ var NeuroWeb = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8876
8832
|
return _createClass(NeuroWeb, [{
|
|
8877
8833
|
key: "transferPolkadotXCM",
|
|
8878
8834
|
value: function transferPolkadotXCM(input) {
|
|
8879
|
-
return
|
|
8835
|
+
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
8880
8836
|
}
|
|
8881
8837
|
}]);
|
|
8882
8838
|
}(ParachainNode);
|
|
@@ -8898,7 +8854,7 @@ var Nodle = /*#__PURE__*/function (_ParachainNode) {
|
|
|
8898
8854
|
if (asset.symbol !== this.getNativeAssetSymbol()) {
|
|
8899
8855
|
throw new assets.InvalidCurrencyError("Asset ".concat(asset.symbol, " is not supported by node ").concat(this.node, "."));
|
|
8900
8856
|
}
|
|
8901
|
-
return
|
|
8857
|
+
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
8902
8858
|
}
|
|
8903
8859
|
}, {
|
|
8904
8860
|
key: "transferRelayToPara",
|
|
@@ -9006,7 +8962,7 @@ var PeopleKusama = /*#__PURE__*/function (_ParachainNode) {
|
|
|
9006
8962
|
throw new ScenarioNotSupportedError(this.node, scenario);
|
|
9007
8963
|
}
|
|
9008
8964
|
var method = 'limited_teleport_assets';
|
|
9009
|
-
return
|
|
8965
|
+
return transferPolkadotXcm(input, method, 'Unlimited');
|
|
9010
8966
|
}
|
|
9011
8967
|
}, {
|
|
9012
8968
|
key: "getRelayToParaOverrides",
|
|
@@ -9032,8 +8988,7 @@ var PeoplePolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
9032
8988
|
if (scenario === 'ParaToPara') {
|
|
9033
8989
|
throw new ScenarioNotSupportedError(this.node, scenario);
|
|
9034
8990
|
}
|
|
9035
|
-
|
|
9036
|
-
return Promise.resolve(PolkadotXCMTransferImpl.transferPolkadotXCM(input, method, 'Unlimited'));
|
|
8991
|
+
return transferPolkadotXcm(input, 'limited_teleport_assets', 'Unlimited');
|
|
9037
8992
|
}
|
|
9038
8993
|
}, {
|
|
9039
8994
|
key: "getRelayToParaOverrides",
|
|
@@ -9059,77 +9014,50 @@ var determineDestWeight = function determineDestWeight(destNode) {
|
|
|
9059
9014
|
proof_size: 0n
|
|
9060
9015
|
};
|
|
9061
9016
|
}
|
|
9062
|
-
throw new NodeNotSupportedError("
|
|
9017
|
+
throw new NodeNotSupportedError("Pallet XTransfer does not support transfering to ".concat(destNode, "."));
|
|
9063
9018
|
};
|
|
9064
9019
|
|
|
9065
|
-
var
|
|
9066
|
-
var
|
|
9067
|
-
|
|
9068
|
-
|
|
9069
|
-
|
|
9070
|
-
|
|
9071
|
-
|
|
9072
|
-
|
|
9073
|
-
|
|
9074
|
-
|
|
9075
|
-
|
|
9076
|
-
|
|
9077
|
-
|
|
9078
|
-
|
|
9079
|
-
|
|
9080
|
-
|
|
9081
|
-
|
|
9082
|
-
};
|
|
9083
|
-
|
|
9084
|
-
|
|
9085
|
-
|
|
9086
|
-
|
|
9087
|
-
|
|
9088
|
-
|
|
9020
|
+
var transferXTransfer = function transferXTransfer(input) {
|
|
9021
|
+
var api = input.api,
|
|
9022
|
+
destination = input.destination,
|
|
9023
|
+
scenario = input.scenario,
|
|
9024
|
+
asset = input.asset,
|
|
9025
|
+
overriddenAsset = input.overriddenAsset,
|
|
9026
|
+
recipientAddress = input.recipientAddress,
|
|
9027
|
+
pallet = input.pallet,
|
|
9028
|
+
methodOverride = input.method,
|
|
9029
|
+
paraIdTo = input.paraIdTo;
|
|
9030
|
+
assertToIsString(destination, ERR_MULTILOCATION_DEST_NOT_SUPPORTED);
|
|
9031
|
+
// XTransfer pallet does not require version specification
|
|
9032
|
+
// but the XCM syntax matches the V3 format
|
|
9033
|
+
var version = sdkCommon.Version.V3;
|
|
9034
|
+
var multiAsset = createMultiAsset(version, asset.amount, {
|
|
9035
|
+
parents: sdkCommon.Parents.ZERO,
|
|
9036
|
+
interior: 'Here'
|
|
9037
|
+
});
|
|
9038
|
+
var resolvedMultiAsset = maybeOverrideMultiAsset(version, asset.amount, multiAsset, overriddenAsset);
|
|
9039
|
+
var dest = createBeneficiaryMultiLocation({
|
|
9040
|
+
api: api,
|
|
9041
|
+
scenario: scenario,
|
|
9042
|
+
pallet: 'XTokens',
|
|
9043
|
+
recipientAddress: recipientAddress,
|
|
9044
|
+
version: version,
|
|
9045
|
+
paraId: paraIdTo
|
|
9046
|
+
});
|
|
9047
|
+
var destWeight = determineDestWeight(destination);
|
|
9048
|
+
var method = 'transfer';
|
|
9049
|
+
var call = {
|
|
9050
|
+
module: pallet !== null && pallet !== void 0 ? pallet : 'XTransfer',
|
|
9051
|
+
method: methodOverride !== null && methodOverride !== void 0 ? methodOverride : method,
|
|
9052
|
+
parameters: {
|
|
9053
|
+
asset: resolvedMultiAsset,
|
|
9054
|
+
dest: dest,
|
|
9055
|
+
dest_weight: destWeight
|
|
9089
9056
|
}
|
|
9090
9057
|
};
|
|
9058
|
+
return api.callTxMethod(call);
|
|
9091
9059
|
};
|
|
9092
9060
|
|
|
9093
|
-
var XTransferTransferImpl = /*#__PURE__*/function () {
|
|
9094
|
-
function XTransferTransferImpl() {
|
|
9095
|
-
_classCallCheck(this, XTransferTransferImpl);
|
|
9096
|
-
}
|
|
9097
|
-
return _createClass(XTransferTransferImpl, null, [{
|
|
9098
|
-
key: "transferXTransfer",
|
|
9099
|
-
value: function transferXTransfer(input) {
|
|
9100
|
-
var api = input.api,
|
|
9101
|
-
destination = input.destination,
|
|
9102
|
-
asset = input.asset,
|
|
9103
|
-
overriddenAsset = input.overriddenAsset,
|
|
9104
|
-
pallet = input.pallet,
|
|
9105
|
-
methodOverride = input.method;
|
|
9106
|
-
var isMultiLocationDestination = _typeof(destination) === 'object';
|
|
9107
|
-
if (isMultiLocationDestination) {
|
|
9108
|
-
throw new InvalidParameterError('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.');
|
|
9109
|
-
}
|
|
9110
|
-
var version = sdkCommon.Version.V3;
|
|
9111
|
-
var multiAssets = [createMultiAsset(version, asset.amount, {
|
|
9112
|
-
parents: sdkCommon.Parents.ZERO,
|
|
9113
|
-
interior: 'Here'
|
|
9114
|
-
})];
|
|
9115
|
-
var resolvedMultiAssets = maybeOverrideMultiAssets(version, asset.amount, multiAssets, overriddenAsset);
|
|
9116
|
-
var dest = getDestination(input);
|
|
9117
|
-
var method = 'transfer';
|
|
9118
|
-
var destWeight = determineDestWeight(destination);
|
|
9119
|
-
var call = {
|
|
9120
|
-
module: pallet !== null && pallet !== void 0 ? pallet : 'XTransfer',
|
|
9121
|
-
method: methodOverride !== null && methodOverride !== void 0 ? methodOverride : method,
|
|
9122
|
-
parameters: {
|
|
9123
|
-
asset: resolvedMultiAssets[0],
|
|
9124
|
-
dest: dest,
|
|
9125
|
-
dest_weight: destWeight
|
|
9126
|
-
}
|
|
9127
|
-
};
|
|
9128
|
-
return api.callTxMethod(call);
|
|
9129
|
-
}
|
|
9130
|
-
}]);
|
|
9131
|
-
}();
|
|
9132
|
-
|
|
9133
9061
|
var Phala = /*#__PURE__*/function (_ParachainNode) {
|
|
9134
9062
|
function Phala() {
|
|
9135
9063
|
_classCallCheck(this, Phala);
|
|
@@ -9138,12 +9066,12 @@ var Phala = /*#__PURE__*/function (_ParachainNode) {
|
|
|
9138
9066
|
_inherits(Phala, _ParachainNode);
|
|
9139
9067
|
return _createClass(Phala, [{
|
|
9140
9068
|
key: "transferXTransfer",
|
|
9141
|
-
value: function transferXTransfer(input) {
|
|
9069
|
+
value: function transferXTransfer$1(input) {
|
|
9142
9070
|
var asset = input.asset;
|
|
9143
9071
|
if (asset.symbol !== this.getNativeAssetSymbol()) {
|
|
9144
9072
|
throw new assets.InvalidCurrencyError("Node ".concat(this.node, " does not support currency ").concat(asset.symbol));
|
|
9145
9073
|
}
|
|
9146
|
-
return
|
|
9074
|
+
return transferXTransfer(input);
|
|
9147
9075
|
}
|
|
9148
9076
|
}, {
|
|
9149
9077
|
key: "transferLocalNonNativeAsset",
|
|
@@ -9203,7 +9131,7 @@ var RobonomicsKusama = /*#__PURE__*/function (_ParachainNode) {
|
|
|
9203
9131
|
return _createClass(RobonomicsKusama, [{
|
|
9204
9132
|
key: "transferPolkadotXCM",
|
|
9205
9133
|
value: function transferPolkadotXCM(input) {
|
|
9206
|
-
return
|
|
9134
|
+
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
9207
9135
|
}
|
|
9208
9136
|
}, {
|
|
9209
9137
|
key: "transferLocalNonNativeAsset",
|
|
@@ -9222,7 +9150,7 @@ var RobonomicsPolkadot = /*#__PURE__*/function (_ParachainNode) {
|
|
|
9222
9150
|
return _createClass(RobonomicsPolkadot, [{
|
|
9223
9151
|
key: "transferPolkadotXCM",
|
|
9224
9152
|
value: function transferPolkadotXCM(input) {
|
|
9225
|
-
return
|
|
9153
|
+
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
9226
9154
|
}
|
|
9227
9155
|
}, {
|
|
9228
9156
|
key: "transferLocalNonNativeAsset",
|
|
@@ -9300,7 +9228,7 @@ var Subsocial = /*#__PURE__*/function (_ParachainNode) {
|
|
|
9300
9228
|
if (asset.symbol !== this.getNativeAssetSymbol()) {
|
|
9301
9229
|
throw new assets.InvalidCurrencyError("Asset ".concat(asset.symbol, " is not supported by node ").concat(this.node, "."));
|
|
9302
9230
|
}
|
|
9303
|
-
return
|
|
9231
|
+
return transferPolkadotXcm(input, 'limited_reserve_transfer_assets', 'Unlimited');
|
|
9304
9232
|
}
|
|
9305
9233
|
}]);
|
|
9306
9234
|
}(ParachainNode);
|
|
@@ -9579,17 +9507,6 @@ var AssetClaimBuilder = /*#__PURE__*/function () {
|
|
|
9579
9507
|
}]);
|
|
9580
9508
|
}();
|
|
9581
9509
|
|
|
9582
|
-
var assertToIsString = function assertToIsString(to) {
|
|
9583
|
-
if (sdkCommon.isTMultiLocation(to)) {
|
|
9584
|
-
throw new InvalidParameterError('Multi-Location destination is not supported for XCM fee calculation.');
|
|
9585
|
-
}
|
|
9586
|
-
};
|
|
9587
|
-
var assertAddressIsString = function assertAddressIsString(address) {
|
|
9588
|
-
if (sdkCommon.isTMultiLocation(address)) {
|
|
9589
|
-
throw new InvalidParameterError('Multi-Location address is not supported for XCM fee calculation.');
|
|
9590
|
-
}
|
|
9591
|
-
};
|
|
9592
|
-
|
|
9593
9510
|
var BatchTransactionManager = /*#__PURE__*/function () {
|
|
9594
9511
|
function BatchTransactionManager() {
|
|
9595
9512
|
_classCallCheck(this, BatchTransactionManager);
|
|
@@ -10315,6 +10232,9 @@ exports.ScenarioNotSupportedError = ScenarioNotSupportedError;
|
|
|
10315
10232
|
exports.TX_CLIENT_TIMEOUT_MS = TX_CLIENT_TIMEOUT_MS;
|
|
10316
10233
|
exports.TransferToAhNotSupported = TransferToAhNotSupported;
|
|
10317
10234
|
exports.UnableToComputeError = UnableToComputeError;
|
|
10235
|
+
exports.addXcmVersionHeader = addXcmVersionHeader;
|
|
10236
|
+
exports.assertAddressIsString = assertAddressIsString;
|
|
10237
|
+
exports.assertToIsString = assertToIsString;
|
|
10318
10238
|
exports.blake2b256 = blake2b256;
|
|
10319
10239
|
exports.blake2b512 = blake2b512;
|
|
10320
10240
|
exports.claimAssets = claimAssets;
|
|
@@ -10354,7 +10274,6 @@ exports.getTransferableAmount = getTransferableAmount;
|
|
|
10354
10274
|
exports.getTransferableAmountInternal = getTransferableAmountInternal;
|
|
10355
10275
|
exports.getXcmFee = getXcmFee;
|
|
10356
10276
|
exports.getXcmFeeEstimate = getXcmFeeEstimate;
|
|
10357
|
-
exports.replaceBigInt = replaceBigInt;
|
|
10358
10277
|
exports.resolveModuleError = resolveModuleError;
|
|
10359
10278
|
exports.resolveParaId = resolveParaId;
|
|
10360
10279
|
exports.reverseTransformMultiLocation = reverseTransformMultiLocation;
|