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