@paraspell/sdk-core 14.5.1 → 14.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4 -4
- package/dist/index.mjs +241 -206
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -1770,7 +1770,7 @@ type TBuildOriginInfoOptions<TApi, TRes, TSigner, TCustomChain extends string =
|
|
|
1770
1770
|
amount: bigint;
|
|
1771
1771
|
originFee: bigint;
|
|
1772
1772
|
originFeeAsset: TAssetInfo;
|
|
1773
|
-
|
|
1773
|
+
isOriginFeeAsset: boolean;
|
|
1774
1774
|
};
|
|
1775
1775
|
type BuildHopInfoOptions<TApi, TRes, TSigner, TCustomChain extends string = never> = {
|
|
1776
1776
|
api: PolkadotApi<TApi, TRes, TSigner, TCustomChain>;
|
|
@@ -1789,7 +1789,7 @@ type TBuildDestInfoOptions<TApi, TRes, TSigner, TCustomChain extends string = ne
|
|
|
1789
1789
|
recipient: string;
|
|
1790
1790
|
currency: WithAmount<TSingleCurrencyInput>;
|
|
1791
1791
|
originFee: bigint;
|
|
1792
|
-
|
|
1792
|
+
isOriginFeeAsset: boolean;
|
|
1793
1793
|
paysDestFee: boolean;
|
|
1794
1794
|
destFeeDetail: TXcmFeeDetail;
|
|
1795
1795
|
totalHopFee: bigint;
|
|
@@ -2391,7 +2391,7 @@ declare const aggregateHopFees: (hops: TXcmFeeHopInfo[], matchAsset: TAssetInfo)
|
|
|
2391
2391
|
bridgeFee?: bigint;
|
|
2392
2392
|
};
|
|
2393
2393
|
|
|
2394
|
-
declare const buildDestInfo: <TApi, TRes, TSigner, TCustomChain extends string = never>({ api, origin, destination, recipient, currency, originFee,
|
|
2394
|
+
declare const buildDestInfo: <TApi, TRes, TSigner, TCustomChain extends string = never>({ api, origin, destination, recipient, currency, originFee, isOriginFeeAsset, paysDestFee, destFeeDetail, totalHopFee, bridgeFee }: TBuildDestInfoOptions<TApi, TRes, TSigner, TCustomChain>) => Promise<{
|
|
2395
2395
|
receivedCurrency: {
|
|
2396
2396
|
sufficient: boolean | UnableToComputeError;
|
|
2397
2397
|
receivedAmount: bigint | UnableToComputeError;
|
|
@@ -2415,7 +2415,7 @@ declare const buildHopInfo: <TApi, TRes, TSigner, TCustomChain extends string =
|
|
|
2415
2415
|
};
|
|
2416
2416
|
}>;
|
|
2417
2417
|
|
|
2418
|
-
declare const buildOriginInfo: <TApi, TRes, TSigner, TCustomChain extends string = never>({ api, origin, sender, assets, amount, originFee, originFeeAsset,
|
|
2418
|
+
declare const buildOriginInfo: <TApi, TRes, TSigner, TCustomChain extends string = never>({ api, origin, sender, assets, amount, originFee, originFeeAsset, isOriginFeeAsset }: TBuildOriginInfoOptions<TApi, TRes, TSigner, TCustomChain>) => Promise<{
|
|
2419
2419
|
selectedCurrency: TSelectedCurrencyInfo[];
|
|
2420
2420
|
xcmFee: TOriginXcmFeeInfo;
|
|
2421
2421
|
}>;
|
package/dist/index.mjs
CHANGED
|
@@ -3401,6 +3401,13 @@ var supportsFeeAssetPayment = function supportsFeeAssetPayment(chain) {
|
|
|
3401
3401
|
return chain === 'AssetHubPolkadot' || chain.startsWith('Hydration');
|
|
3402
3402
|
};
|
|
3403
3403
|
|
|
3404
|
+
var usesOriginFeeAsset = function usesOriginFeeAsset(api, origin, currency, assetInfo, feeAssetInfo, originFeeAsset) {
|
|
3405
|
+
return (
|
|
3406
|
+
// Hydration chain origin delivery fee is 0n so we need to handle it only for AssetHubPolkadot
|
|
3407
|
+
origin === 'AssetHubPolkadot' && !Array.isArray(currency) && !!feeAssetInfo && isAssetEqual(feeAssetInfo, assetInfo) && isAssetEqual(originFeeAsset, feeAssetInfo) && !isAssetEqual(feeAssetInfo, api.findNativeAssetInfoOrThrow(origin))
|
|
3408
|
+
);
|
|
3409
|
+
};
|
|
3410
|
+
|
|
3404
3411
|
var validateCurrency = function validateCurrency(currency, feeAsset) {
|
|
3405
3412
|
if (Array.isArray(currency)) {
|
|
3406
3413
|
if (currency.length === 0) {
|
|
@@ -6989,15 +6996,192 @@ var getOriginXcmFee = /*#__PURE__*/function () {
|
|
|
6989
6996
|
};
|
|
6990
6997
|
}();
|
|
6991
6998
|
|
|
6999
|
+
var FEE_PADDING = 30;
|
|
7000
|
+
var sumHopFees = function sumHopFees(result, _ref) {
|
|
7001
|
+
var assetInfo = _ref.assetInfo,
|
|
7002
|
+
feeAssetInfo = _ref.feeAssetInfo,
|
|
7003
|
+
isRelayAsset = _ref.isRelayAsset,
|
|
7004
|
+
systemAsset = _ref.systemAsset,
|
|
7005
|
+
overriddenAsset = _ref.options.overriddenAsset;
|
|
7006
|
+
var feeAsset = isRelayAsset || overriddenAsset ? assetInfo : feeAssetInfo !== null && feeAssetInfo !== void 0 ? feeAssetInfo : systemAsset;
|
|
7007
|
+
return result.hops.reduce(function (acc, hop) {
|
|
7008
|
+
// only add if asset is equal
|
|
7009
|
+
return isAssetEqual(hop.result.asset, feeAsset) ? acc + hop.result.fee : acc;
|
|
7010
|
+
}, 0n);
|
|
7011
|
+
};
|
|
7012
|
+
var computeAllFees = /*#__PURE__*/function () {
|
|
7013
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(context, buildTx) {
|
|
7014
|
+
var origin, dest, feeAssetInfo, edDeposit, _context$options, sender, recipient, currency, feeCurrency, version, overriddenAsset, result, hopFees, destFee;
|
|
7015
|
+
return _regenerator().w(function (_context) {
|
|
7016
|
+
while (1) switch (_context.n) {
|
|
7017
|
+
case 0:
|
|
7018
|
+
origin = context.origin, dest = context.dest, feeAssetInfo = context.feeAssetInfo, edDeposit = context.edDeposit, _context$options = context.options, sender = _context$options.sender, recipient = _context$options.recipient, currency = _context$options.currency, feeCurrency = _context$options.feeCurrency, version = _context$options.version, overriddenAsset = _context$options.overriddenAsset;
|
|
7019
|
+
assertSender(sender);
|
|
7020
|
+
assertAddressIsString(recipient);
|
|
7021
|
+
if (origin.api.hasDryRunSupport(context.origin.chain)) {
|
|
7022
|
+
_context.n = 2;
|
|
7023
|
+
break;
|
|
7024
|
+
}
|
|
7025
|
+
if (!(feeAssetInfo || overriddenAsset)) {
|
|
7026
|
+
_context.n = 1;
|
|
7027
|
+
break;
|
|
7028
|
+
}
|
|
7029
|
+
throw new ScenarioNotSupportedError("Fee asset cannot be used on ".concat(origin.chain, " because it does not support dry run."));
|
|
7030
|
+
case 1:
|
|
7031
|
+
return _context.a(2, null);
|
|
7032
|
+
case 2:
|
|
7033
|
+
_context.n = 3;
|
|
7034
|
+
return getXcmFeeInternal({
|
|
7035
|
+
api: origin.api,
|
|
7036
|
+
buildTx: buildTx,
|
|
7037
|
+
origin: origin.chain,
|
|
7038
|
+
destination: dest.chain,
|
|
7039
|
+
sender: sender,
|
|
7040
|
+
recipient: recipient,
|
|
7041
|
+
version: version,
|
|
7042
|
+
currency: currency,
|
|
7043
|
+
feeAsset: feeCurrency,
|
|
7044
|
+
disableFallback: false,
|
|
7045
|
+
skipReverseFeeCalculation: true
|
|
7046
|
+
});
|
|
7047
|
+
case 3:
|
|
7048
|
+
result = _context.v;
|
|
7049
|
+
hopFees = sumHopFees(result, context);
|
|
7050
|
+
destFee = result.destination.fee;
|
|
7051
|
+
return _context.a(2, {
|
|
7052
|
+
hopFees: padValueBy(hopFees, FEE_PADDING),
|
|
7053
|
+
destFee: padValueBy(destFee, FEE_PADDING) + (edDeposit !== null && edDeposit !== void 0 ? edDeposit : 0n)
|
|
7054
|
+
});
|
|
7055
|
+
}
|
|
7056
|
+
}, _callee);
|
|
7057
|
+
}));
|
|
7058
|
+
return function computeAllFees(_x, _x2) {
|
|
7059
|
+
return _ref2.apply(this, arguments);
|
|
7060
|
+
};
|
|
7061
|
+
}();
|
|
7062
|
+
|
|
7063
|
+
var isAssetSufficient = /*#__PURE__*/function () {
|
|
7064
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api, chain, asset) {
|
|
7065
|
+
var pallets, _state$isSufficient, state;
|
|
7066
|
+
return _regenerator().w(function (_context) {
|
|
7067
|
+
while (1) switch (_context.p = _context.n) {
|
|
7068
|
+
case 0:
|
|
7069
|
+
pallets = getOtherAssetsPallets(chain, api._customCtx);
|
|
7070
|
+
if (!(asset.isNative || pallets.length === 0)) {
|
|
7071
|
+
_context.n = 1;
|
|
7072
|
+
break;
|
|
7073
|
+
}
|
|
7074
|
+
return _context.a(2, true);
|
|
7075
|
+
case 1:
|
|
7076
|
+
_context.p = 1;
|
|
7077
|
+
_context.n = 2;
|
|
7078
|
+
return getPalletInstance(pickOtherMintPallet(asset, pallets)).getAssetState(api, asset);
|
|
7079
|
+
case 2:
|
|
7080
|
+
state = _context.v;
|
|
7081
|
+
return _context.a(2, (_state$isSufficient = state === null || state === void 0 ? void 0 : state.isSufficient) !== null && _state$isSufficient !== void 0 ? _state$isSufficient : true);
|
|
7082
|
+
case 3:
|
|
7083
|
+
_context.p = 3;
|
|
7084
|
+
_context.v;
|
|
7085
|
+
return _context.a(2, true);
|
|
7086
|
+
}
|
|
7087
|
+
}, _callee, null, [[1, 3]]);
|
|
7088
|
+
}));
|
|
7089
|
+
return function isAssetSufficient(_x, _x2, _x3) {
|
|
7090
|
+
return _ref.apply(this, arguments);
|
|
7091
|
+
};
|
|
7092
|
+
}();
|
|
7093
|
+
|
|
7094
|
+
var resolveEdDeposit = /*#__PURE__*/function () {
|
|
7095
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
|
|
7096
|
+
var _overriddenAsset$map;
|
|
7097
|
+
var origin, _ref$dest, destApi, destChain, assetInfo, overriddenAsset, feeAssetLocation, recipient, nativeAsset, nativeLocation, feeLocation, isFeeNative, _yield$destApi$queryS, providers, destAssets, sufficiency, ed, feeAmount;
|
|
7098
|
+
return _regenerator().w(function (_context) {
|
|
7099
|
+
while (1) switch (_context.n) {
|
|
7100
|
+
case 0:
|
|
7101
|
+
origin = _ref.origin, _ref$dest = _ref.dest, destApi = _ref$dest.api, destChain = _ref$dest.chain, assetInfo = _ref.assetInfo, overriddenAsset = _ref.overriddenAsset, feeAssetLocation = _ref.feeAssetLocation, recipient = _ref.recipient;
|
|
7102
|
+
if (!(isExternalChain(destChain) || typeof recipient !== 'string')) {
|
|
7103
|
+
_context.n = 1;
|
|
7104
|
+
break;
|
|
7105
|
+
}
|
|
7106
|
+
return _context.a(2, undefined);
|
|
7107
|
+
case 1:
|
|
7108
|
+
nativeAsset = destApi.findNativeAssetInfoOrThrow(destChain);
|
|
7109
|
+
nativeLocation = origin.api.localizeLocation(destChain, nativeAsset.location);
|
|
7110
|
+
feeLocation = origin.api.localizeLocation(destChain, feeAssetLocation, origin.chain);
|
|
7111
|
+
isFeeNative = deepEqual(feeLocation, nativeLocation);
|
|
7112
|
+
if (!(!isFeeNative && !destChain.startsWith('AssetHub'))) {
|
|
7113
|
+
_context.n = 2;
|
|
7114
|
+
break;
|
|
7115
|
+
}
|
|
7116
|
+
return _context.a(2, undefined);
|
|
7117
|
+
case 2:
|
|
7118
|
+
_context.n = 3;
|
|
7119
|
+
return destApi.queryState({
|
|
7120
|
+
module: 'System',
|
|
7121
|
+
method: 'Account',
|
|
7122
|
+
params: [recipient]
|
|
7123
|
+
});
|
|
7124
|
+
case 3:
|
|
7125
|
+
_yield$destApi$queryS = _context.v;
|
|
7126
|
+
providers = _yield$destApi$queryS.providers;
|
|
7127
|
+
if (!(providers > 0)) {
|
|
7128
|
+
_context.n = 4;
|
|
7129
|
+
break;
|
|
7130
|
+
}
|
|
7131
|
+
return _context.a(2, undefined);
|
|
7132
|
+
case 4:
|
|
7133
|
+
destAssets = ((_overriddenAsset$map = overriddenAsset === null || overriddenAsset === void 0 ? void 0 : overriddenAsset.map(function (asset) {
|
|
7134
|
+
return extractAssetLocation(asset);
|
|
7135
|
+
})) !== null && _overriddenAsset$map !== void 0 ? _overriddenAsset$map : [assetInfo.location]).map(function (location) {
|
|
7136
|
+
return origin.api.findAssetOnDestOrThrow(origin.chain, destChain, {
|
|
7137
|
+
location: location
|
|
7138
|
+
});
|
|
7139
|
+
});
|
|
7140
|
+
_context.n = 5;
|
|
7141
|
+
return Promise.all(destAssets.map(function (asset) {
|
|
7142
|
+
return isAssetSufficient(destApi, destChain, asset);
|
|
7143
|
+
}));
|
|
7144
|
+
case 5:
|
|
7145
|
+
sufficiency = _context.v;
|
|
7146
|
+
if (!sufficiency.every(Boolean)) {
|
|
7147
|
+
_context.n = 6;
|
|
7148
|
+
break;
|
|
7149
|
+
}
|
|
7150
|
+
return _context.a(2, undefined);
|
|
7151
|
+
case 6:
|
|
7152
|
+
ed = BigInt(nativeAsset.existentialDeposit);
|
|
7153
|
+
if (!isFeeNative) {
|
|
7154
|
+
_context.n = 7;
|
|
7155
|
+
break;
|
|
7156
|
+
}
|
|
7157
|
+
return _context.a(2, ed);
|
|
7158
|
+
case 7:
|
|
7159
|
+
_context.n = 8;
|
|
7160
|
+
return destApi.queryRuntimeApi({
|
|
7161
|
+
module: 'AssetConversionApi',
|
|
7162
|
+
method: 'quote_price_tokens_for_exact_tokens',
|
|
7163
|
+
params: [feeLocation, nativeLocation, ed, true]
|
|
7164
|
+
});
|
|
7165
|
+
case 8:
|
|
7166
|
+
feeAmount = _context.v;
|
|
7167
|
+
return _context.a(2, feeAmount == null ? undefined : padValueBy(BigInt(feeAmount), FEE_PADDING));
|
|
7168
|
+
}
|
|
7169
|
+
}, _callee);
|
|
7170
|
+
}));
|
|
7171
|
+
return function resolveEdDeposit(_x) {
|
|
7172
|
+
return _ref2.apply(this, arguments);
|
|
7173
|
+
};
|
|
7174
|
+
}();
|
|
7175
|
+
|
|
6992
7176
|
var getXcmFeeOnce = /*#__PURE__*/function () {
|
|
6993
7177
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref) {
|
|
6994
|
-
var api, tx, origin, destination, sender, recipient, currency, feeAsset, version, disableFallback, swapConfig, useRootOrigin, skipReverseFeeCalculation, resolvedFeeAsset, _resolveCurrency, asset, resolvedVersion, _yield$getOriginXcmFe, originFeeRaw, originAsset, originFeeType, originDryRunError, initialForwardedXcm, initialDestParaId, originWeight, sufficientOriginFee, isMythosToEthereum, originFee, destApi, destFeeRes, _result, _dryRunError, processHop, traversalResult, destFee, destAsset, destFeeType, destDryRunError, destSufficient, destResult, _destApi, destFallback, relayChain, bridgeHubChain, assetHubChain, bridgeHubHop, processedBridgeHub, bridgeHubHopIndex, convertToFeeDetail, result, dryRunError, _t, _t2, _t3, _t4;
|
|
7178
|
+
var api, tx, origin, destination, sender, recipient, currency, feeAsset, version, disableFallback, swapConfig, useRootOrigin, skipReverseFeeCalculation, resolvedFeeAsset, _resolveCurrency, asset, assets, resolvedVersion, _yield$getOriginXcmFe, originFeeRaw, originAsset, originFeeType, originDryRunError, initialForwardedXcm, initialDestParaId, originWeight, sufficientOriginFee, isMythosToEthereum, originFee, destApi, destFeeRes, _result, _dryRunError, processHop, traversalResult, destFee, destAsset, destFeeType, destDryRunError, destSufficient, destResult, _destApi, destFallback, relayChain, bridgeHubChain, assetHubChain, bridgeHubHop, processedBridgeHub, bridgeHubHopIndex, convertToFeeDetail, result, dryRunError, _t, _t2, _t3, _t4;
|
|
6995
7179
|
return _regenerator().w(function (_context2) {
|
|
6996
7180
|
while (1) switch (_context2.p = _context2.n) {
|
|
6997
7181
|
case 0:
|
|
6998
7182
|
api = _ref.api, tx = _ref.tx, origin = _ref.origin, destination = _ref.destination, sender = _ref.sender, recipient = _ref.recipient, currency = _ref.currency, feeAsset = _ref.feeAsset, version = _ref.version, disableFallback = _ref.disableFallback, swapConfig = _ref.swapConfig, useRootOrigin = _ref.useRootOrigin, skipReverseFeeCalculation = _ref.skipReverseFeeCalculation;
|
|
6999
7183
|
resolvedFeeAsset = feeAsset ? resolveFeeAsset(api, feeAsset, origin, destination, currency) : undefined;
|
|
7000
|
-
_resolveCurrency = resolveCurrency(api, currency, resolvedFeeAsset, origin, destination), asset = _resolveCurrency.asset;
|
|
7184
|
+
_resolveCurrency = resolveCurrency(api, currency, resolvedFeeAsset, origin, destination), asset = _resolveCurrency.asset, assets = _resolveCurrency.assets;
|
|
7001
7185
|
resolvedVersion = pickCompatibleXcmVersion(api, origin, destination, version);
|
|
7002
7186
|
_context2.n = 1;
|
|
7003
7187
|
return getOriginXcmFeeInternal({
|
|
@@ -7121,11 +7305,11 @@ var getXcmFeeOnce = /*#__PURE__*/function () {
|
|
|
7121
7305
|
case 10:
|
|
7122
7306
|
processHop = /*#__PURE__*/function () {
|
|
7123
7307
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(params) {
|
|
7124
|
-
var hopApi, currentChain, currentOrigin, currentAsset, forwardedXcms, hasPassedExchange, resolvedHopAsset, hopResult;
|
|
7308
|
+
var hopApi, currentChain, currentOrigin, currentAsset, forwardedXcms, hasPassedExchange, isDestination, resolvedHopAsset, hopResult, edDeposit;
|
|
7125
7309
|
return _regenerator().w(function (_context) {
|
|
7126
7310
|
while (1) switch (_context.n) {
|
|
7127
7311
|
case 0:
|
|
7128
|
-
hopApi = params.api, currentChain = params.currentChain, currentOrigin = params.currentOrigin, currentAsset = params.currentAsset, forwardedXcms = params.forwardedXcms, hasPassedExchange = params.hasPassedExchange;
|
|
7312
|
+
hopApi = params.api, currentChain = params.currentChain, currentOrigin = params.currentOrigin, currentAsset = params.currentAsset, forwardedXcms = params.forwardedXcms, hasPassedExchange = params.hasPassedExchange, isDestination = params.isDestination;
|
|
7129
7313
|
resolvedHopAsset = resolveHopAsset({
|
|
7130
7314
|
api: api,
|
|
7131
7315
|
tx: tx,
|
|
@@ -7164,7 +7348,36 @@ var getXcmFeeOnce = /*#__PURE__*/function () {
|
|
|
7164
7348
|
});
|
|
7165
7349
|
case 1:
|
|
7166
7350
|
hopResult = _context.v;
|
|
7351
|
+
if (!(!isDestination || hopResult.fee === undefined || hopResult.dryRunError || isAssetEqual(hopResult.asset, hopApi.findNativeAssetInfoOrThrow(currentChain)))) {
|
|
7352
|
+
_context.n = 2;
|
|
7353
|
+
break;
|
|
7354
|
+
}
|
|
7167
7355
|
return _context.a(2, hopResult);
|
|
7356
|
+
case 2:
|
|
7357
|
+
_context.n = 3;
|
|
7358
|
+
return resolveEdDeposit({
|
|
7359
|
+
origin: {
|
|
7360
|
+
api: api,
|
|
7361
|
+
chain: origin
|
|
7362
|
+
},
|
|
7363
|
+
dest: {
|
|
7364
|
+
api: hopApi,
|
|
7365
|
+
chain: currentChain
|
|
7366
|
+
},
|
|
7367
|
+
assetInfo: asset,
|
|
7368
|
+
overriddenAsset: assets.map(function (_ref4) {
|
|
7369
|
+
var amount = _ref4.amount,
|
|
7370
|
+
location = _ref4.location;
|
|
7371
|
+
return createAsset(resolvedVersion, amount, location);
|
|
7372
|
+
}),
|
|
7373
|
+
feeAssetLocation: hopResult.asset.location,
|
|
7374
|
+
recipient: recipient
|
|
7375
|
+
});
|
|
7376
|
+
case 3:
|
|
7377
|
+
edDeposit = _context.v;
|
|
7378
|
+
return _context.a(2, _objectSpread2(_objectSpread2({}, hopResult), {}, {
|
|
7379
|
+
fee: hopResult.fee + (edDeposit !== null && edDeposit !== void 0 ? edDeposit : 0n)
|
|
7380
|
+
}));
|
|
7168
7381
|
}
|
|
7169
7382
|
}, _callee);
|
|
7170
7383
|
}));
|
|
@@ -7490,11 +7703,11 @@ var aggregateHopFees = function aggregateHopFees(hops, matchAsset) {
|
|
|
7490
7703
|
|
|
7491
7704
|
var buildDestInfo = /*#__PURE__*/function () {
|
|
7492
7705
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
|
|
7493
|
-
var api, origin, destination, recipient, currency, originFee,
|
|
7706
|
+
var api, origin, destination, recipient, currency, originFee, isOriginFeeAsset, paysDestFee, destFeeDetail, totalHopFee, bridgeFee, destApi, destAsset, edDest, destBalance, destAmount, destFeeAssetEqual, effectiveDestFee, effectiveAmountForBalance, destBalanceSufficient, destBalanceAfter, createUnableToComputeError, isUnableToCompute, destbalanceAfterResult, destBalanceSufficientResult, receivedAmount, isSubBridge, nativeAssetOfOriginSymbol, isOriginAssetNative, destXcmFeeBalance, isDestFeeInNativeCurrency, destRecipientNativeBalance, destXcmFeeBalanceAfter;
|
|
7494
7707
|
return _regenerator().w(function (_context) {
|
|
7495
7708
|
while (1) switch (_context.n) {
|
|
7496
7709
|
case 0:
|
|
7497
|
-
api = _ref.api, origin = _ref.origin, destination = _ref.destination, recipient = _ref.recipient, currency = _ref.currency, originFee = _ref.originFee,
|
|
7710
|
+
api = _ref.api, origin = _ref.origin, destination = _ref.destination, recipient = _ref.recipient, currency = _ref.currency, originFee = _ref.originFee, isOriginFeeAsset = _ref.isOriginFeeAsset, paysDestFee = _ref.paysDestFee, destFeeDetail = _ref.destFeeDetail, totalHopFee = _ref.totalHopFee, bridgeFee = _ref.bridgeFee;
|
|
7498
7711
|
destApi = api.clone();
|
|
7499
7712
|
_context.n = 1;
|
|
7500
7713
|
return destApi.init(destination);
|
|
@@ -7510,7 +7723,7 @@ var buildDestInfo = /*#__PURE__*/function () {
|
|
|
7510
7723
|
});
|
|
7511
7724
|
case 2:
|
|
7512
7725
|
destBalance = _context.v;
|
|
7513
|
-
destAmount =
|
|
7726
|
+
destAmount = isOriginFeeAsset ? currency.amount - originFee : currency.amount;
|
|
7514
7727
|
destFeeAssetEqual = isSymbolMatch(destFeeDetail.asset.symbol, destAsset.symbol);
|
|
7515
7728
|
effectiveDestFee = paysDestFee && destFeeAssetEqual ? destFeeDetail.fee : 0n;
|
|
7516
7729
|
effectiveAmountForBalance = destAmount - totalHopFee;
|
|
@@ -7564,7 +7777,7 @@ var buildDestInfo = /*#__PURE__*/function () {
|
|
|
7564
7777
|
case 4:
|
|
7565
7778
|
destXcmFeeBalance = destBalance;
|
|
7566
7779
|
case 5:
|
|
7567
|
-
destXcmFeeBalanceAfter =
|
|
7780
|
+
destXcmFeeBalanceAfter = isOriginFeeAsset ? destBalanceAfter : destXcmFeeBalance - destFeeDetail.fee + (destFeeAssetEqual ? effectiveAmountForBalance : 0n);
|
|
7568
7781
|
return _context.a(2, {
|
|
7569
7782
|
receivedCurrency: {
|
|
7570
7783
|
sufficient: destBalanceSufficientResult,
|
|
@@ -7641,11 +7854,11 @@ var buildHopInfo = /*#__PURE__*/function () {
|
|
|
7641
7854
|
var _excluded$1 = ["amount"];
|
|
7642
7855
|
var buildOriginInfo = /*#__PURE__*/function () {
|
|
7643
7856
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref) {
|
|
7644
|
-
var api, origin, sender, assets, amount, originFee, originFeeAsset,
|
|
7857
|
+
var api, origin, sender, assets, amount, originFee, originFeeAsset, isOriginFeeAsset, buildSelectedCurrency, selectedCurrency, originBalanceFee, originBalanceFeeAfter;
|
|
7645
7858
|
return _regenerator().w(function (_context2) {
|
|
7646
7859
|
while (1) switch (_context2.n) {
|
|
7647
7860
|
case 0:
|
|
7648
|
-
api = _ref.api, origin = _ref.origin, sender = _ref.sender, assets = _ref.assets, amount = _ref.amount, originFee = _ref.originFee, originFeeAsset = _ref.originFeeAsset,
|
|
7861
|
+
api = _ref.api, origin = _ref.origin, sender = _ref.sender, assets = _ref.assets, amount = _ref.amount, originFee = _ref.originFee, originFeeAsset = _ref.originFeeAsset, isOriginFeeAsset = _ref.isOriginFeeAsset;
|
|
7649
7862
|
buildSelectedCurrency = /*#__PURE__*/function () {
|
|
7650
7863
|
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref3) {
|
|
7651
7864
|
var assetAmount, asset, balance, balanceAfter;
|
|
@@ -7689,7 +7902,7 @@ var buildOriginInfo = /*#__PURE__*/function () {
|
|
|
7689
7902
|
});
|
|
7690
7903
|
case 2:
|
|
7691
7904
|
originBalanceFee = _context2.v;
|
|
7692
|
-
originBalanceFeeAfter =
|
|
7905
|
+
originBalanceFeeAfter = isOriginFeeAsset ? originBalanceFee - amount : originBalanceFee - originFee;
|
|
7693
7906
|
return _context2.a(2, {
|
|
7694
7907
|
selectedCurrency: selectedCurrency,
|
|
7695
7908
|
xcmFee: {
|
|
@@ -7710,7 +7923,7 @@ var buildOriginInfo = /*#__PURE__*/function () {
|
|
|
7710
7923
|
|
|
7711
7924
|
var getTransferInfo = /*#__PURE__*/function () {
|
|
7712
7925
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref) {
|
|
7713
|
-
var api, buildTx, origin, destination, sender, ahAddress, recipient, currency, feeAsset, version, resolvedFeeAsset, _resolveCurrency, assets, originAsset, amount, _yield$getXcmFeeInter, _yield$getXcmFeeInter2, originFee, originFeeAsset, destFeeDetail, hops,
|
|
7926
|
+
var api, buildTx, origin, destination, sender, ahAddress, recipient, currency, feeAsset, version, resolvedFeeAsset, _resolveCurrency, assets, originAsset, amount, _yield$getXcmFeeInter, _yield$getXcmFeeInter2, originFee, originFeeAsset, destFeeDetail, hops, isOriginFeeAsset, feeAssetIndex, feeCurrency, _yield$buildOriginInf, selectedCurrency, originXcmFee, builtHops, _aggregateHopFees, totalHopFee, bridgeFee, buildDestInfoForAsset, destResults, feeResult, result, _t, _t2;
|
|
7714
7927
|
return _regenerator().w(function (_context2) {
|
|
7715
7928
|
while (1) switch (_context2.p = _context2.n) {
|
|
7716
7929
|
case 0:
|
|
@@ -7749,7 +7962,7 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
7749
7962
|
originFeeAsset = _yield$getXcmFeeInter2.asset;
|
|
7750
7963
|
destFeeDetail = _yield$getXcmFeeInter.destination;
|
|
7751
7964
|
hops = _yield$getXcmFeeInter.hops;
|
|
7752
|
-
|
|
7965
|
+
isOriginFeeAsset = usesOriginFeeAsset(api, origin, currency, originAsset, resolvedFeeAsset, originFeeAsset);
|
|
7753
7966
|
feeAssetIndex = assets.findIndex(function (asset) {
|
|
7754
7967
|
return isAssetEqual(asset, originAsset);
|
|
7755
7968
|
});
|
|
@@ -7763,7 +7976,7 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
7763
7976
|
amount: amount,
|
|
7764
7977
|
originFee: originFee,
|
|
7765
7978
|
originFeeAsset: originFeeAsset,
|
|
7766
|
-
|
|
7979
|
+
isOriginFeeAsset: isOriginFeeAsset
|
|
7767
7980
|
});
|
|
7768
7981
|
case 5:
|
|
7769
7982
|
_yield$buildOriginInf = _context2.v;
|
|
@@ -7817,7 +8030,7 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
7817
8030
|
recipient: recipient,
|
|
7818
8031
|
currency: item,
|
|
7819
8032
|
originFee: originFee,
|
|
7820
|
-
|
|
8033
|
+
isOriginFeeAsset: isOriginFeeAsset && isFeeElement,
|
|
7821
8034
|
paysDestFee: isFeeElement,
|
|
7822
8035
|
destFeeDetail: destFeeDetail,
|
|
7823
8036
|
totalHopFee: isFeeElement ? totalHopFee : 0n,
|
|
@@ -7885,76 +8098,12 @@ var getTransferInfo = /*#__PURE__*/function () {
|
|
|
7885
8098
|
};
|
|
7886
8099
|
}();
|
|
7887
8100
|
|
|
7888
|
-
var FEE_PADDING = 30;
|
|
7889
|
-
var sumHopFees = function sumHopFees(result, _ref) {
|
|
7890
|
-
var assetInfo = _ref.assetInfo,
|
|
7891
|
-
feeAssetInfo = _ref.feeAssetInfo,
|
|
7892
|
-
isRelayAsset = _ref.isRelayAsset,
|
|
7893
|
-
systemAsset = _ref.systemAsset,
|
|
7894
|
-
overriddenAsset = _ref.options.overriddenAsset;
|
|
7895
|
-
var feeAsset = isRelayAsset || overriddenAsset ? assetInfo : feeAssetInfo !== null && feeAssetInfo !== void 0 ? feeAssetInfo : systemAsset;
|
|
7896
|
-
return result.hops.reduce(function (acc, hop) {
|
|
7897
|
-
// only add if asset is equal
|
|
7898
|
-
return isAssetEqual(hop.result.asset, feeAsset) ? acc + hop.result.fee : acc;
|
|
7899
|
-
}, 0n);
|
|
7900
|
-
};
|
|
7901
|
-
var computeAllFees = /*#__PURE__*/function () {
|
|
7902
|
-
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(context, buildTx) {
|
|
7903
|
-
var origin, dest, feeAssetInfo, edDeposit, _context$options, sender, recipient, currency, feeCurrency, version, overriddenAsset, result, hopFees, destFee;
|
|
7904
|
-
return _regenerator().w(function (_context) {
|
|
7905
|
-
while (1) switch (_context.n) {
|
|
7906
|
-
case 0:
|
|
7907
|
-
origin = context.origin, dest = context.dest, feeAssetInfo = context.feeAssetInfo, edDeposit = context.edDeposit, _context$options = context.options, sender = _context$options.sender, recipient = _context$options.recipient, currency = _context$options.currency, feeCurrency = _context$options.feeCurrency, version = _context$options.version, overriddenAsset = _context$options.overriddenAsset;
|
|
7908
|
-
assertSender(sender);
|
|
7909
|
-
assertAddressIsString(recipient);
|
|
7910
|
-
if (origin.api.hasDryRunSupport(context.origin.chain)) {
|
|
7911
|
-
_context.n = 2;
|
|
7912
|
-
break;
|
|
7913
|
-
}
|
|
7914
|
-
if (!(feeAssetInfo || overriddenAsset)) {
|
|
7915
|
-
_context.n = 1;
|
|
7916
|
-
break;
|
|
7917
|
-
}
|
|
7918
|
-
throw new ScenarioNotSupportedError("Fee asset cannot be used on ".concat(origin.chain, " because it does not support dry run."));
|
|
7919
|
-
case 1:
|
|
7920
|
-
return _context.a(2, null);
|
|
7921
|
-
case 2:
|
|
7922
|
-
_context.n = 3;
|
|
7923
|
-
return getXcmFeeInternal({
|
|
7924
|
-
api: origin.api,
|
|
7925
|
-
buildTx: buildTx,
|
|
7926
|
-
origin: origin.chain,
|
|
7927
|
-
destination: dest.chain,
|
|
7928
|
-
sender: sender,
|
|
7929
|
-
recipient: recipient,
|
|
7930
|
-
version: version,
|
|
7931
|
-
currency: currency,
|
|
7932
|
-
feeAsset: feeCurrency,
|
|
7933
|
-
disableFallback: false,
|
|
7934
|
-
skipReverseFeeCalculation: true
|
|
7935
|
-
});
|
|
7936
|
-
case 3:
|
|
7937
|
-
result = _context.v;
|
|
7938
|
-
hopFees = sumHopFees(result, context);
|
|
7939
|
-
destFee = result.destination.fee;
|
|
7940
|
-
return _context.a(2, {
|
|
7941
|
-
hopFees: padValueBy(hopFees, FEE_PADDING),
|
|
7942
|
-
destFee: padValueBy(destFee, FEE_PADDING) + (edDeposit !== null && edDeposit !== void 0 ? edDeposit : 0n)
|
|
7943
|
-
});
|
|
7944
|
-
}
|
|
7945
|
-
}, _callee);
|
|
7946
|
-
}));
|
|
7947
|
-
return function computeAllFees(_x, _x2) {
|
|
7948
|
-
return _ref2.apply(this, arguments);
|
|
7949
|
-
};
|
|
7950
|
-
}();
|
|
7951
|
-
|
|
7952
8101
|
var toSelectors = function toSelectors(currency) {
|
|
7953
8102
|
return Array.isArray(currency) ? currency : [currency];
|
|
7954
8103
|
};
|
|
7955
8104
|
var getMinTransferableAmountInternal = /*#__PURE__*/function () {
|
|
7956
8105
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(_ref) {
|
|
7957
|
-
var api, origin, sender, recipient, destination, currency, feeAsset, buildTx, builder, version, resolvedFeeAsset, _resolveCurrency, assets, isMulti, selectors, toResult, destApi,
|
|
8106
|
+
var api, origin, sender, recipient, destination, currency, feeAsset, buildTx, builder, version, resolvedFeeAsset, _resolveCurrency, assets, isMulti, selectors, toResult, destApi, result, minAmounts, buildMinCurrency, createTx, amounts, tx, dryRunResult, _t;
|
|
7958
8107
|
return _regenerator().w(function (_context3) {
|
|
7959
8108
|
while (1) switch (_context3.p = _context3.n) {
|
|
7960
8109
|
case 0:
|
|
@@ -7971,7 +8120,6 @@ var getMinTransferableAmountInternal = /*#__PURE__*/function () {
|
|
|
7971
8120
|
_context3.n = 1;
|
|
7972
8121
|
return destApi.init(destination);
|
|
7973
8122
|
case 1:
|
|
7974
|
-
nativeAssetInfo = api.findNativeAssetInfoOrThrow(origin);
|
|
7975
8123
|
_context3.n = 2;
|
|
7976
8124
|
return getXcmFee({
|
|
7977
8125
|
api: api,
|
|
@@ -7992,7 +8140,7 @@ var getMinTransferableAmountInternal = /*#__PURE__*/function () {
|
|
|
7992
8140
|
_context3.n = 3;
|
|
7993
8141
|
return Promise.all(assets.map(/*#__PURE__*/function () {
|
|
7994
8142
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(asset, index) {
|
|
7995
|
-
var destAsset, destBalance, destEd,
|
|
8143
|
+
var destAsset, destBalance, destEd, isOriginFeeAsset, originFee, originChainAsset, hopFeeTotal, destinationFee, edComponent;
|
|
7996
8144
|
return _regenerator().w(function (_context) {
|
|
7997
8145
|
while (1) switch (_context.n) {
|
|
7998
8146
|
case 0:
|
|
@@ -8007,8 +8155,8 @@ var getMinTransferableAmountInternal = /*#__PURE__*/function () {
|
|
|
8007
8155
|
case 1:
|
|
8008
8156
|
destBalance = _context.v;
|
|
8009
8157
|
destEd = BigInt(destAsset.existentialDeposit);
|
|
8010
|
-
|
|
8011
|
-
originFee =
|
|
8158
|
+
isOriginFeeAsset = usesOriginFeeAsset(api, origin, currency, asset, resolvedFeeAsset, result.origin.asset);
|
|
8159
|
+
originFee = isOriginFeeAsset ? result.origin.fee : 0n;
|
|
8012
8160
|
originChainAsset = {
|
|
8013
8161
|
chain: origin,
|
|
8014
8162
|
asset: asset
|
|
@@ -8326,119 +8474,6 @@ var getTransferableAmount = /*#__PURE__*/function () {
|
|
|
8326
8474
|
};
|
|
8327
8475
|
}();
|
|
8328
8476
|
|
|
8329
|
-
var isAssetSufficient = /*#__PURE__*/function () {
|
|
8330
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api, chain, asset) {
|
|
8331
|
-
var pallets, _state$isSufficient, state;
|
|
8332
|
-
return _regenerator().w(function (_context) {
|
|
8333
|
-
while (1) switch (_context.p = _context.n) {
|
|
8334
|
-
case 0:
|
|
8335
|
-
pallets = getOtherAssetsPallets(chain, api._customCtx);
|
|
8336
|
-
if (!(asset.isNative || pallets.length === 0)) {
|
|
8337
|
-
_context.n = 1;
|
|
8338
|
-
break;
|
|
8339
|
-
}
|
|
8340
|
-
return _context.a(2, true);
|
|
8341
|
-
case 1:
|
|
8342
|
-
_context.p = 1;
|
|
8343
|
-
_context.n = 2;
|
|
8344
|
-
return getPalletInstance(pickOtherMintPallet(asset, pallets)).getAssetState(api, asset);
|
|
8345
|
-
case 2:
|
|
8346
|
-
state = _context.v;
|
|
8347
|
-
return _context.a(2, (_state$isSufficient = state === null || state === void 0 ? void 0 : state.isSufficient) !== null && _state$isSufficient !== void 0 ? _state$isSufficient : true);
|
|
8348
|
-
case 3:
|
|
8349
|
-
_context.p = 3;
|
|
8350
|
-
_context.v;
|
|
8351
|
-
return _context.a(2, true);
|
|
8352
|
-
}
|
|
8353
|
-
}, _callee, null, [[1, 3]]);
|
|
8354
|
-
}));
|
|
8355
|
-
return function isAssetSufficient(_x, _x2, _x3) {
|
|
8356
|
-
return _ref.apply(this, arguments);
|
|
8357
|
-
};
|
|
8358
|
-
}();
|
|
8359
|
-
|
|
8360
|
-
var resolveEdDeposit = /*#__PURE__*/function () {
|
|
8361
|
-
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
|
|
8362
|
-
var _overriddenAsset$map;
|
|
8363
|
-
var origin, _ref$dest, destApi, destChain, assetInfo, overriddenAsset, feeAssetLocation, recipient, nativeAsset, nativeLocation, feeLocation, isFeeNative, _yield$destApi$queryS, providers, destAssets, sufficiency, ed, feeAmount;
|
|
8364
|
-
return _regenerator().w(function (_context) {
|
|
8365
|
-
while (1) switch (_context.n) {
|
|
8366
|
-
case 0:
|
|
8367
|
-
origin = _ref.origin, _ref$dest = _ref.dest, destApi = _ref$dest.api, destChain = _ref$dest.chain, assetInfo = _ref.assetInfo, overriddenAsset = _ref.overriddenAsset, feeAssetLocation = _ref.feeAssetLocation, recipient = _ref.recipient;
|
|
8368
|
-
if (!(isExternalChain(destChain) || typeof recipient !== 'string')) {
|
|
8369
|
-
_context.n = 1;
|
|
8370
|
-
break;
|
|
8371
|
-
}
|
|
8372
|
-
return _context.a(2, undefined);
|
|
8373
|
-
case 1:
|
|
8374
|
-
nativeAsset = destApi.findNativeAssetInfoOrThrow(destChain);
|
|
8375
|
-
nativeLocation = origin.api.localizeLocation(destChain, nativeAsset.location);
|
|
8376
|
-
feeLocation = origin.api.localizeLocation(destChain, feeAssetLocation, origin.chain);
|
|
8377
|
-
isFeeNative = deepEqual(feeLocation, nativeLocation);
|
|
8378
|
-
if (!(!isFeeNative && !destChain.startsWith('AssetHub'))) {
|
|
8379
|
-
_context.n = 2;
|
|
8380
|
-
break;
|
|
8381
|
-
}
|
|
8382
|
-
return _context.a(2, undefined);
|
|
8383
|
-
case 2:
|
|
8384
|
-
_context.n = 3;
|
|
8385
|
-
return destApi.queryState({
|
|
8386
|
-
module: 'System',
|
|
8387
|
-
method: 'Account',
|
|
8388
|
-
params: [recipient]
|
|
8389
|
-
});
|
|
8390
|
-
case 3:
|
|
8391
|
-
_yield$destApi$queryS = _context.v;
|
|
8392
|
-
providers = _yield$destApi$queryS.providers;
|
|
8393
|
-
if (!(providers > 0)) {
|
|
8394
|
-
_context.n = 4;
|
|
8395
|
-
break;
|
|
8396
|
-
}
|
|
8397
|
-
return _context.a(2, undefined);
|
|
8398
|
-
case 4:
|
|
8399
|
-
destAssets = ((_overriddenAsset$map = overriddenAsset === null || overriddenAsset === void 0 ? void 0 : overriddenAsset.map(function (asset) {
|
|
8400
|
-
return extractAssetLocation(asset);
|
|
8401
|
-
})) !== null && _overriddenAsset$map !== void 0 ? _overriddenAsset$map : [assetInfo.location]).map(function (location) {
|
|
8402
|
-
return origin.api.findAssetOnDestOrThrow(origin.chain, destChain, {
|
|
8403
|
-
location: location
|
|
8404
|
-
});
|
|
8405
|
-
});
|
|
8406
|
-
_context.n = 5;
|
|
8407
|
-
return Promise.all(destAssets.map(function (asset) {
|
|
8408
|
-
return isAssetSufficient(destApi, destChain, asset);
|
|
8409
|
-
}));
|
|
8410
|
-
case 5:
|
|
8411
|
-
sufficiency = _context.v;
|
|
8412
|
-
if (!sufficiency.every(Boolean)) {
|
|
8413
|
-
_context.n = 6;
|
|
8414
|
-
break;
|
|
8415
|
-
}
|
|
8416
|
-
return _context.a(2, undefined);
|
|
8417
|
-
case 6:
|
|
8418
|
-
ed = BigInt(nativeAsset.existentialDeposit);
|
|
8419
|
-
if (!isFeeNative) {
|
|
8420
|
-
_context.n = 7;
|
|
8421
|
-
break;
|
|
8422
|
-
}
|
|
8423
|
-
return _context.a(2, ed);
|
|
8424
|
-
case 7:
|
|
8425
|
-
_context.n = 8;
|
|
8426
|
-
return destApi.queryRuntimeApi({
|
|
8427
|
-
module: 'AssetConversionApi',
|
|
8428
|
-
method: 'quote_price_tokens_for_exact_tokens',
|
|
8429
|
-
params: [feeLocation, nativeLocation, ed, true]
|
|
8430
|
-
});
|
|
8431
|
-
case 8:
|
|
8432
|
-
feeAmount = _context.v;
|
|
8433
|
-
return _context.a(2, feeAmount == null ? undefined : padValueBy(BigInt(feeAmount), FEE_PADDING));
|
|
8434
|
-
}
|
|
8435
|
-
}, _callee);
|
|
8436
|
-
}));
|
|
8437
|
-
return function resolveEdDeposit(_x) {
|
|
8438
|
-
return _ref2.apply(this, arguments);
|
|
8439
|
-
};
|
|
8440
|
-
}();
|
|
8441
|
-
|
|
8442
8477
|
var PINK_LOCATION = {
|
|
8443
8478
|
parents: 1,
|
|
8444
8479
|
interior: {
|
|
@@ -9609,7 +9644,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
|
|
|
9609
9644
|
var hopFeeAssetToReserve = isReserveDest ? feeAssetLocalizedToDest : feeAssetLocalizedToReserve;
|
|
9610
9645
|
// When fees are paid in a separate asset, originFee is denominated in that asset's
|
|
9611
9646
|
// currency and must not be subtracted from the transfer amount.
|
|
9612
|
-
var originFeeDeduction = feeAsset ?
|
|
9647
|
+
var originFeeDeduction = feeAssetInfo && !feeAsset ? originFee : 0n;
|
|
9613
9648
|
var destLocation = createDestination(api, version, chain, destChain, paraIdTo);
|
|
9614
9649
|
if (chain !== 'AssetHubPolkadot' && reserveChain === undefined) {
|
|
9615
9650
|
throw new UnsupportedOperationError('Sending local reserve assets with custom fee asset is not yet supported for this chain.');
|
|
@@ -9688,7 +9723,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
|
|
|
9688
9723
|
reserve: getChainLocation(chain, reserveChain, api._customCtx),
|
|
9689
9724
|
xcm: [].concat(_toConsumableArray(createBuyExecution(// Decrease amount by 2 units because for some reason polkadot withdraws 2 units less
|
|
9690
9725
|
// than requested, so we need to account for that
|
|
9691
|
-
hopFeeAssetToReserve !== null && hopFeeAssetToReserve !== void 0 ? hopFeeAssetToReserve : updateAsset(assetLocalizedToReserve, amount - 2n))), _toConsumableArray(createReserveToDestXcm()))
|
|
9726
|
+
hopFeeAssetToReserve !== null && hopFeeAssetToReserve !== void 0 ? hopFeeAssetToReserve : updateAsset(assetLocalizedToReserve, amount - originFeeDeduction - 2n))), _toConsumableArray(createReserveToDestXcm()))
|
|
9692
9727
|
}
|
|
9693
9728
|
}];
|
|
9694
9729
|
break;
|
|
@@ -9717,6 +9752,7 @@ xcm, maxWeight) {
|
|
|
9717
9752
|
var prepareCommonExecuteXcm = function prepareCommonExecuteXcm(options, assetToDeposit) {
|
|
9718
9753
|
var depositFeeAsset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
9719
9754
|
var api = options.api,
|
|
9755
|
+
feeAssetInfo = options.feeAssetInfo,
|
|
9720
9756
|
useJitWithdraw = options.useJitWithdraw,
|
|
9721
9757
|
recipient = options.recipient,
|
|
9722
9758
|
version = options.version,
|
|
@@ -9730,8 +9766,8 @@ var prepareCommonExecuteXcm = function prepareCommonExecuteXcm(options, assetToD
|
|
|
9730
9766
|
prefix.push({
|
|
9731
9767
|
WithdrawAsset: withdrawAssets
|
|
9732
9768
|
});
|
|
9733
|
-
if (
|
|
9734
|
-
prefix.push.apply(prefix, _toConsumableArray(createBuyExecution(feeAssetLocalized, MIN_WEIGHT)));
|
|
9769
|
+
if (feeAssetInfo && !useJitWithdraw) {
|
|
9770
|
+
prefix.push.apply(prefix, _toConsumableArray(createBuyExecution(feeAssetLocalized !== null && feeAssetLocalized !== void 0 ? feeAssetLocalized : assetLocalized, MIN_WEIGHT)));
|
|
9735
9771
|
} else {
|
|
9736
9772
|
prefix.push({
|
|
9737
9773
|
SetFeesMode: {
|
|
@@ -9800,7 +9836,7 @@ var FEE_PADDING_PERCENTAGE$1 = 40;
|
|
|
9800
9836
|
var handleExecuteTransfer = /*#__PURE__*/function () {
|
|
9801
9837
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
|
|
9802
9838
|
var _dryRunResult$hops$at;
|
|
9803
|
-
var api, chain, sender, paraIdTo, destChain, assetInfo, currency, feeCurrency, recipient, feeAssetInfo, version, transactOptions, checkAmount, resolvedFeeAssetInfo, destApi, edDeposit, internalOptions, FEE_ASSET_AMOUNT, feeAssetAmount,
|
|
9839
|
+
var api, chain, sender, paraIdTo, destChain, assetInfo, currency, feeCurrency, recipient, feeAssetInfo, version, transactOptions, checkAmount, resolvedFeeAssetInfo, destApi, edDeposit, internalOptions, FEE_ASSET_AMOUNT, feeAssetAmount, call, dryRunResult, originFee, reserveFee, destFee, xcm, weight, _t, _t2;
|
|
9804
9840
|
return _regenerator().w(function (_context) {
|
|
9805
9841
|
while (1) switch (_context.n) {
|
|
9806
9842
|
case 0:
|
|
@@ -9863,16 +9899,15 @@ var handleExecuteTransfer = /*#__PURE__*/function () {
|
|
|
9863
9899
|
edDeposit: edDeposit
|
|
9864
9900
|
}; // We mint 1000 units of feeAsset and use 100
|
|
9865
9901
|
FEE_ASSET_AMOUNT = 100;
|
|
9866
|
-
feeAssetAmount =
|
|
9867
|
-
hopFeeAmount = resolvedFeeAssetInfo ? feeAssetAmount : MIN_FEE;
|
|
9902
|
+
feeAssetAmount = resolvedFeeAssetInfo ? parseUnits(FEE_ASSET_AMOUNT.toString(), resolvedFeeAssetInfo.decimals) : MIN_FEE;
|
|
9868
9903
|
_t = createExecuteCall;
|
|
9869
9904
|
_t2 = chain;
|
|
9870
9905
|
_context.n = 6;
|
|
9871
9906
|
return createDirectExecuteXcm(_objectSpread2(_objectSpread2({}, internalOptions), {}, {
|
|
9872
9907
|
fees: {
|
|
9873
9908
|
originFee: feeAssetAmount,
|
|
9874
|
-
reserveFee:
|
|
9875
|
-
destFee:
|
|
9909
|
+
reserveFee: feeAssetAmount,
|
|
9910
|
+
destFee: feeAssetAmount
|
|
9876
9911
|
}
|
|
9877
9912
|
}));
|
|
9878
9913
|
case 6:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paraspell/sdk-core",
|
|
3
|
-
"version": "14.5.
|
|
3
|
+
"version": "14.5.2",
|
|
4
4
|
"description": "SDK core for ParaSpell XCM/XCMP tool for developers",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@noble/hashes": "^2.4.0",
|
|
26
|
-
"@paraspell/assets": "14.5.
|
|
27
|
-
"@paraspell/pallets": "14.5.
|
|
28
|
-
"@paraspell/sdk-common": "14.5.
|
|
26
|
+
"@paraspell/assets": "14.5.2",
|
|
27
|
+
"@paraspell/pallets": "14.5.2",
|
|
28
|
+
"@paraspell/sdk-common": "14.5.2",
|
|
29
29
|
"@scure/base": "^2.4.0",
|
|
30
30
|
"viem": "^2.57.13"
|
|
31
31
|
},
|