@paraspell/sdk-core 10.10.6 → 10.10.8
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 +28 -23
- package/dist/index.d.ts +5 -2
- package/dist/index.mjs +27 -24
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -695,7 +695,7 @@ var DOT_MULTILOCATION = {
|
|
|
695
695
|
parents: sdkCommon.Parents.ONE,
|
|
696
696
|
interior: 'Here'
|
|
697
697
|
};
|
|
698
|
-
var CHAINS_DOT_RESERVE_AH = new Set(['Polimec', 'Moonbeam', 'BifrostPolkadot', 'PeoplePolkadot', 'Ajuna']);
|
|
698
|
+
var CHAINS_DOT_RESERVE_AH = new Set(['Polimec', 'Moonbeam', 'AssetHubPolkadot', 'AssetHubKusama', 'AssetHubWestend', 'AssetHubPaseo', 'BifrostPolkadot', 'BifrostKusama', 'PeoplePolkadot', 'PeopleKusama', 'Ajuna']);
|
|
699
699
|
var ASSET_HUB_EXECUTION_FEE = 2200000000n; // 0.22 DOT
|
|
700
700
|
var TX_CLIENT_TIMEOUT_MS = 20 * 60 * 1000; // 20 minutes
|
|
701
701
|
var DRY_RUN_CLIENT_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
|
|
@@ -2826,14 +2826,17 @@ var createBeneficiaryLocation = function createBeneficiaryLocation(_ref2) {
|
|
|
2826
2826
|
};
|
|
2827
2827
|
};
|
|
2828
2828
|
|
|
2829
|
-
var getChainLocation = function getChainLocation(chain) {
|
|
2830
|
-
var
|
|
2829
|
+
var getChainLocation = function getChainLocation(chain, destChain) {
|
|
2830
|
+
var fromRelay = sdkCommon.isRelayChain(chain);
|
|
2831
|
+
var toRelay = sdkCommon.isRelayChain(destChain);
|
|
2832
|
+
var parents = fromRelay ? sdkCommon.Parents.ZERO : sdkCommon.Parents.ONE;
|
|
2833
|
+
var interior = toRelay ? 'Here' : {
|
|
2831
2834
|
X1: [{
|
|
2832
|
-
Parachain: getParaId(
|
|
2835
|
+
Parachain: getParaId(destChain)
|
|
2833
2836
|
}]
|
|
2834
2837
|
};
|
|
2835
2838
|
return {
|
|
2836
|
-
parents:
|
|
2839
|
+
parents: parents,
|
|
2837
2840
|
interior: interior
|
|
2838
2841
|
};
|
|
2839
2842
|
};
|
|
@@ -3106,15 +3109,15 @@ var getTNode = function getTNode(paraId, ecosystem) {
|
|
|
3106
3109
|
})) !== null && _NODE_NAMES_DOT_KSM$f !== void 0 ? _NODE_NAMES_DOT_KSM$f : null;
|
|
3107
3110
|
};
|
|
3108
3111
|
|
|
3109
|
-
var getAssetReserveChain = function getAssetReserveChain(
|
|
3112
|
+
var getAssetReserveChain = function getAssetReserveChain(chain, destChain, assetLocation) {
|
|
3110
3113
|
var hasGlobalConsensusJunction = sdkCommon.hasJunction(assetLocation, 'GlobalConsensus');
|
|
3111
3114
|
var paraId = sdkCommon.getJunctionValue(assetLocation, 'Parachain');
|
|
3112
3115
|
if (paraId) {
|
|
3113
|
-
var
|
|
3114
|
-
if (!
|
|
3116
|
+
var resolvedChain = getTNode(paraId, getRelayChainOf(chain).toLowerCase());
|
|
3117
|
+
if (!resolvedChain) {
|
|
3115
3118
|
throw new InvalidParameterError("Chain with paraId ".concat(paraId, " not found"));
|
|
3116
3119
|
}
|
|
3117
|
-
return
|
|
3120
|
+
return resolvedChain;
|
|
3118
3121
|
}
|
|
3119
3122
|
if (hasGlobalConsensusJunction) {
|
|
3120
3123
|
return 'AssetHubPolkadot';
|
|
@@ -3125,9 +3128,9 @@ var getAssetReserveChain = function getAssetReserveChain(origin, assetLocation)
|
|
|
3125
3128
|
Here: null
|
|
3126
3129
|
}
|
|
3127
3130
|
})) {
|
|
3128
|
-
return CHAINS_DOT_RESERVE_AH.has(
|
|
3131
|
+
return CHAINS_DOT_RESERVE_AH.has(destChain) ? 'AssetHubPolkadot' : 'Polkadot';
|
|
3129
3132
|
}
|
|
3130
|
-
return
|
|
3133
|
+
return chain;
|
|
3131
3134
|
};
|
|
3132
3135
|
|
|
3133
3136
|
var prepareExecuteContext = function prepareExecuteContext(_ref) {
|
|
@@ -3140,7 +3143,7 @@ var prepareExecuteContext = function prepareExecuteContext(_ref) {
|
|
|
3140
3143
|
assertHasLocation(asset);
|
|
3141
3144
|
if (feeAsset) assertHasLocation(feeAsset);
|
|
3142
3145
|
var amount = BigInt(asset.amount);
|
|
3143
|
-
var reserveChain = getAssetReserveChain(chain, asset.multiLocation);
|
|
3146
|
+
var reserveChain = getAssetReserveChain(chain, destChain, asset.multiLocation);
|
|
3144
3147
|
var multiAsset = createMultiAsset(version, amount, asset.multiLocation);
|
|
3145
3148
|
var multiAssetLocalized = createMultiAsset(version, amount, localizeLocation(chain, asset.multiLocation));
|
|
3146
3149
|
var multiAssetLocalizedToDest = createMultiAsset(version, amount, localizeLocation(destChain, asset.multiLocation));
|
|
@@ -3238,7 +3241,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
|
|
|
3238
3241
|
mainInstructions = [{
|
|
3239
3242
|
InitiateTeleport: {
|
|
3240
3243
|
assets: createAssetsFilter(multiAssetLocalized),
|
|
3241
|
-
dest: getChainLocation(reserveChain),
|
|
3244
|
+
dest: getChainLocation(chain, reserveChain),
|
|
3242
3245
|
xcm: [{
|
|
3243
3246
|
BuyExecution: {
|
|
3244
3247
|
fees: updateAsset(multiAssetLocalizedToReserve, feeMultiAsset ? amount : amount - originFee),
|
|
@@ -3253,7 +3256,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
|
|
|
3253
3256
|
mainInstructions = [{
|
|
3254
3257
|
InitiateReserveWithdraw: {
|
|
3255
3258
|
assets: createAssetsFilter(multiAssetLocalized),
|
|
3256
|
-
reserve: getChainLocation(reserveChain),
|
|
3259
|
+
reserve: getChainLocation(chain, reserveChain),
|
|
3257
3260
|
xcm: [{
|
|
3258
3261
|
BuyExecution: {
|
|
3259
3262
|
fees:
|
|
@@ -4899,7 +4902,7 @@ function _traverseXcmHops() {
|
|
|
4899
4902
|
_context2.n = 4;
|
|
4900
4903
|
return hopApi.init(nextChain, DRY_RUN_CLIENT_TIMEOUT_MS);
|
|
4901
4904
|
case 4:
|
|
4902
|
-
isDestination = nextChain === destination
|
|
4905
|
+
isDestination = nextChain === destination;
|
|
4903
4906
|
isAssetHub = nextChain === assetHubNode;
|
|
4904
4907
|
isBridgeHub = nextChain === bridgeHubNode;
|
|
4905
4908
|
_context2.n = 5;
|
|
@@ -7001,18 +7004,18 @@ var createExchangeInstructions = /*#__PURE__*/function () {
|
|
|
7001
7004
|
}();
|
|
7002
7005
|
var createSwapExecuteXcm = /*#__PURE__*/function () {
|
|
7003
7006
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options) {
|
|
7004
|
-
var api, chain, exchangeChain, destChain, assetFrom, assetTo, _options$fees2, originReserveFee, exchangeFee, destReserveFee, recipientAddress, version, paraIdTo, multiAssetFrom, multiAssetTo, _prepareCommonExecute, prefix, depositInstruction, exchangeInstructions, exchangeToDestXcm, finalXcm, fullXcm;
|
|
7007
|
+
var api, chain, exchangeChain, destChain, assetFrom, assetTo, _options$fees2, originReserveFee, exchangeFee, destReserveFee, recipientAddress, version, paraIdTo, multiAssetFrom, amountOut, multiAssetTo, multiAssetToLocalizedToDest, _prepareCommonExecute, prefix, depositInstruction, exchangeInstructions, exchangeToDestXcm, finalXcm, fullXcm;
|
|
7005
7008
|
return _regenerator().w(function (_context2) {
|
|
7006
7009
|
while (1) switch (_context2.n) {
|
|
7007
7010
|
case 0:
|
|
7008
7011
|
api = options.api, chain = options.chain, exchangeChain = options.exchangeChain, destChain = options.destChain, assetFrom = options.assetFrom, assetTo = options.assetTo, _options$fees2 = options.fees, originReserveFee = _options$fees2.originReserveFee, exchangeFee = _options$fees2.exchangeFee, destReserveFee = _options$fees2.destReserveFee, recipientAddress = options.recipientAddress, version = options.version, paraIdTo = options.paraIdTo;
|
|
7009
7012
|
assertHasLocation(assetFrom);
|
|
7010
7013
|
assertHasLocation(assetTo);
|
|
7011
|
-
multiAssetFrom = createMultiAsset(version, BigInt(assetFrom.amount), localizeLocation(exchangeChain, assetFrom.multiLocation));
|
|
7012
|
-
multiAssetTo = createMultiAsset(version,
|
|
7013
|
-
// Exchange fee 0n means we are creating a dummy tx
|
|
7014
|
+
multiAssetFrom = createMultiAsset(version, BigInt(assetFrom.amount), localizeLocation(exchangeChain, assetFrom.multiLocation)); // Exchange fee 0n means we are creating a dummy tx
|
|
7014
7015
|
// Set want to 1000n to prevent NoDeal
|
|
7015
|
-
exchangeFee === 0n ? 1000n : BigInt(assetTo.amount)
|
|
7016
|
+
amountOut = chain && exchangeFee === 0n ? 1000n : BigInt(assetTo.amount);
|
|
7017
|
+
multiAssetTo = createMultiAsset(version, amountOut, localizeLocation(exchangeChain, assetTo.multiLocation));
|
|
7018
|
+
multiAssetToLocalizedToDest = createMultiAsset(version, amountOut, localizeLocation(destChain !== null && destChain !== void 0 ? destChain : exchangeChain, assetTo.multiLocation));
|
|
7016
7019
|
_prepareCommonExecute = prepareCommonExecuteXcm({
|
|
7017
7020
|
api: api,
|
|
7018
7021
|
chain: chain !== null && chain !== void 0 ? chain : exchangeChain,
|
|
@@ -7025,7 +7028,7 @@ var createSwapExecuteXcm = /*#__PURE__*/function () {
|
|
|
7025
7028
|
reserveFee: originReserveFee
|
|
7026
7029
|
},
|
|
7027
7030
|
version: version
|
|
7028
|
-
},
|
|
7031
|
+
}, multiAssetToLocalizedToDest), prefix = _prepareCommonExecute.prefix, depositInstruction = _prepareCommonExecute.depositInstruction;
|
|
7029
7032
|
_context2.n = 1;
|
|
7030
7033
|
return createExchangeInstructions(options, multiAssetFrom, multiAssetTo);
|
|
7031
7034
|
case 1:
|
|
@@ -7042,7 +7045,7 @@ var createSwapExecuteXcm = /*#__PURE__*/function () {
|
|
|
7042
7045
|
reserveFee: destReserveFee
|
|
7043
7046
|
},
|
|
7044
7047
|
suffixXcm: [depositInstruction]
|
|
7045
|
-
}) : [];
|
|
7048
|
+
}) : [depositInstruction];
|
|
7046
7049
|
finalXcm = chain ? createBaseExecuteXcm({
|
|
7047
7050
|
chain: chain,
|
|
7048
7051
|
destChain: exchangeChain,
|
|
@@ -7067,7 +7070,7 @@ var createSwapExecuteXcm = /*#__PURE__*/function () {
|
|
|
7067
7070
|
}();
|
|
7068
7071
|
|
|
7069
7072
|
var MIN_FEE = 1000n;
|
|
7070
|
-
var FEE_PADDING_PERCENTAGE =
|
|
7073
|
+
var FEE_PADDING_PERCENTAGE = 20;
|
|
7071
7074
|
var validateAmount = function validateAmount(amount, requiredFee) {
|
|
7072
7075
|
if (amount <= requiredFee) {
|
|
7073
7076
|
throw new InvalidParameterError("Asset amount is too low, please increase the amount or use a different fee asset.");
|
|
@@ -12069,6 +12072,8 @@ exports.handleToAhTeleport = handleToAhTeleport;
|
|
|
12069
12072
|
exports.localizeLocation = localizeLocation;
|
|
12070
12073
|
exports.maybeOverrideMultiAsset = maybeOverrideMultiAsset;
|
|
12071
12074
|
exports.maybeOverrideMultiAssets = maybeOverrideMultiAssets;
|
|
12075
|
+
exports.padFee = padFee;
|
|
12076
|
+
exports.padFeeBy = padFeeBy;
|
|
12072
12077
|
exports.resolveModuleError = resolveModuleError;
|
|
12073
12078
|
exports.resolveParaId = resolveParaId;
|
|
12074
12079
|
exports.reverseTransformMultiLocation = reverseTransformMultiLocation;
|
package/dist/index.d.ts
CHANGED
|
@@ -1982,6 +1982,9 @@ declare const getXcmFee: <TApi, TRes, TDisableFallback extends boolean>({ api, t
|
|
|
1982
1982
|
|
|
1983
1983
|
declare const getXcmFeeEstimate: <TApi, TRes>(options: TGetXcmFeeEstimateOptions<TApi, TRes>) => Promise<TGetXcmFeeEstimateResult>;
|
|
1984
1984
|
|
|
1985
|
+
declare const padFee: (raw: bigint, origin: TNodeDotKsmWithRelayChains, dest: TNodeWithRelayChains, side: "origin" | "destination") => bigint;
|
|
1986
|
+
declare const padFeeBy: (amount: bigint, percent: number) => bigint;
|
|
1987
|
+
|
|
1985
1988
|
declare const getBridgeStatus: <TApi, TRes>(api: IPolkadotApi<TApi, TRes>) => Promise<TBridgeStatus>;
|
|
1986
1989
|
|
|
1987
1990
|
declare const send: <TApi, TRes>(options: TSendOptions<TApi, TRes>) => Promise<TRes>;
|
|
@@ -2025,7 +2028,7 @@ declare const createBeneficiaryLocation: <TApi, TRes>({ api, address: recipientA
|
|
|
2025
2028
|
|
|
2026
2029
|
declare const createX1Payload: (version: Version, junction: TJunction) => TJunctions;
|
|
2027
2030
|
|
|
2028
|
-
declare const getChainLocation: (chain: TNodeWithRelayChains) => TMultiLocation;
|
|
2031
|
+
declare const getChainLocation: (chain: TNodeWithRelayChains, destChain: TNodeWithRelayChains) => TMultiLocation;
|
|
2029
2032
|
|
|
2030
2033
|
/**
|
|
2031
2034
|
* This function localizes a multiLocation by removing the `Parachain` junction
|
|
@@ -2077,5 +2080,5 @@ declare const handleToAhTeleport: <TApi, TRes>(origin: TNodePolkadotKusama, inpu
|
|
|
2077
2080
|
|
|
2078
2081
|
declare const validateAddress: (address: TAddress, node: TNodeWithRelayChains, isDestination?: boolean) => void;
|
|
2079
2082
|
|
|
2080
|
-
export { AssetClaimBuilder, BatchMode, BridgeHaltedError, Builder, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, GeneralBuilder, IncompatibleNodesError, InvalidAddressError, InvalidParameterError, NoXCMSupportImplementedError, NodeNotSupportedError, PolkadotXcmError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, UnableToComputeError, XTokensError, addEthereumBridgeFees, addXcmVersionHeader, assertAddressIsString, assertHasLocation, assertToIsString, blake2b256, blake2b512, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, convertSs58, createApiInstanceForNode, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createMultiAsset, createVersionedMultiAssets, createX1Payload, deriveAccountId, dryRun, dryRunOrigin, encodeSs58, getAssetBalance, getAssetBalanceInternal, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChainLocation, getChainVersion, getNode, getNodeConfig, getNodeProviders, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getParaEthTransferFees, getParaId, getRelayChainOf, getTNode, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, localizeLocation, maybeOverrideMultiAsset, maybeOverrideMultiAssets, resolveModuleError, resolveParaId, reverseTransformMultiLocation, send, sortMultiAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, verifyEdOnDestination };
|
|
2083
|
+
export { AssetClaimBuilder, BatchMode, BridgeHaltedError, Builder, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, GeneralBuilder, IncompatibleNodesError, InvalidAddressError, InvalidParameterError, NoXCMSupportImplementedError, NodeNotSupportedError, PolkadotXcmError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, UnableToComputeError, XTokensError, addEthereumBridgeFees, addXcmVersionHeader, assertAddressIsString, assertHasLocation, assertToIsString, blake2b256, blake2b512, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, convertSs58, createApiInstanceForNode, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createMultiAsset, createVersionedMultiAssets, createX1Payload, deriveAccountId, dryRun, dryRunOrigin, encodeSs58, getAssetBalance, getAssetBalanceInternal, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChainLocation, getChainVersion, getNode, getNodeConfig, getNodeProviders, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getParaEthTransferFees, getParaId, getRelayChainOf, getTNode, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, localizeLocation, maybeOverrideMultiAsset, maybeOverrideMultiAssets, padFee, padFeeBy, resolveModuleError, resolveParaId, reverseTransformMultiLocation, send, sortMultiAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, verifyEdOnDestination };
|
|
2081
2084
|
export type { HopProcessParams, HopTraversalConfig, HopTraversalResult, IPolkadotApi, IPolkadotXCMTransfer, IXTokensTransfer, IXTransferTransfer, OneKey, TAddress, TApiOrUrl, TAssetClaimOptions, TAssetClaimOptionsBase, TBalanceResponse, TBatchOptions, TBifrostToken, TBridgeStatus, TConditionalXcmFeeDetail, TConditionalXcmFeeHopInfo, TCreateBaseSwapXcmOptions, TCreateBaseTransferXcmOptions, TCreateBeneficiaryOptions, TCreateBeneficiaryXTokensOptions, TCreateSwapXcmInternalOptions, TCreateSwapXcmOptions, TCreateTransferXcmOptions, TDestWeight, TDestXcmFeeDetail, TDestination, TDryRunBaseOptions, TDryRunCallBaseOptions, TDryRunCallOptions, TDryRunChain, TDryRunNodeFailure, TDryRunNodeResult, TDryRunNodeResultInternal, TDryRunNodeSuccess, TDryRunOptions, TDryRunResult, TDryRunXcmBaseOptions, TDryRunXcmOptions, TEdJsonMap, TEvmBuilderOptions, TEvmBuilderOptionsBase, TEvmNodeFrom, TFeeType, TForeignAssetId, TForeignOrNativeAsset, TForeignOrTokenAsset, TGetAssetBalanceOptions, TGetAssetBalanceOptionsBase, TGetBalanceForeignOptions, TGetBalanceForeignOptionsBase, TGetBalanceNativeOptions, TGetBalanceNativeOptionsBase, TGetFeeForDestNodeBaseOptions, TGetFeeForDestNodeOptions, TGetMaxForeignTransferableAmountOptions, TGetMaxForeignTransferableAmountOptionsBase, TGetMaxNativeTransferableAmountOptions, TGetMaxNativeTransferableAmountOptionsBase, TGetOriginFeeDetailsOptions, TGetOriginFeeDetailsOptionsBase, TGetOriginXcmFeeBaseOptions, TGetOriginXcmFeeEstimateOptions, TGetOriginXcmFeeOptions, TGetReverseTxFeeOptions, TGetTransferInfoOptions, TGetTransferInfoOptionsBase, TGetTransferableAmountOptions, TGetTransferableAmountOptionsBase, TGetXcmFeeBaseOptions, TGetXcmFeeBuilderOptions, TGetXcmFeeEstimateDetail, TGetXcmFeeEstimateOptions, TGetXcmFeeEstimateResult, TGetXcmFeeOptions, TGetXcmFeeResult, THopInfo, THopTransferInfo, THubKey, TMantaAsset, TModuleError, TNativeTokenAsset, TNodeConfig, TNodeConfigMap, TNodleAsset, TOriginFeeDetails, TOtherReserveAsset, TPolkadotXCMTransferOptions, TPolkadotXcmMethod, TProviderEntry, TRelayToParaDestination, TRelayToParaOptions, TRelayToParaOverrides, TReserveAsset, TScenario, TSelfReserveAsset, TSendBaseOptions, TSendBaseOptionsWithSenderAddress, TSendInternalOptions, TSendOptions, TSerializeEthTransferOptions, TSerializedApiCall, TSerializedEthTransfer, TSwapFeeEstimates, TTransferFeeEstimates, TTransferInfo, TTransferLocalOptions, TVerifyEdOnDestinationOptions, TVerifyEdOnDestinationOptionsBase, TWeight, TXTokensCurrencySelection, TXTokensMethod, TXTokensTransferOptions, TXTransferMethod, TXTransferTransferOptions, TXcmAsset, TXcmFeeBase, TXcmFeeChain, TXcmFeeDetail, TXcmFeeDetailWithFallback, TXcmFeeHopInfo, TXcmForeignAsset, TXcmPalletMethod, TXcmVersioned, TZeitgeistAsset, WithApi, WithRequiredSenderAddress, XcmFeeHopResult };
|
package/dist/index.mjs
CHANGED
|
@@ -696,7 +696,7 @@ var DOT_MULTILOCATION = {
|
|
|
696
696
|
parents: Parents.ONE,
|
|
697
697
|
interior: 'Here'
|
|
698
698
|
};
|
|
699
|
-
var CHAINS_DOT_RESERVE_AH = new Set(['Polimec', 'Moonbeam', 'BifrostPolkadot', 'PeoplePolkadot', 'Ajuna']);
|
|
699
|
+
var CHAINS_DOT_RESERVE_AH = new Set(['Polimec', 'Moonbeam', 'AssetHubPolkadot', 'AssetHubKusama', 'AssetHubWestend', 'AssetHubPaseo', 'BifrostPolkadot', 'BifrostKusama', 'PeoplePolkadot', 'PeopleKusama', 'Ajuna']);
|
|
700
700
|
var ASSET_HUB_EXECUTION_FEE = 2200000000n; // 0.22 DOT
|
|
701
701
|
var TX_CLIENT_TIMEOUT_MS = 20 * 60 * 1000; // 20 minutes
|
|
702
702
|
var DRY_RUN_CLIENT_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
|
|
@@ -2827,14 +2827,17 @@ var createBeneficiaryLocation = function createBeneficiaryLocation(_ref2) {
|
|
|
2827
2827
|
};
|
|
2828
2828
|
};
|
|
2829
2829
|
|
|
2830
|
-
var getChainLocation = function getChainLocation(chain) {
|
|
2831
|
-
var
|
|
2830
|
+
var getChainLocation = function getChainLocation(chain, destChain) {
|
|
2831
|
+
var fromRelay = isRelayChain(chain);
|
|
2832
|
+
var toRelay = isRelayChain(destChain);
|
|
2833
|
+
var parents = fromRelay ? Parents.ZERO : Parents.ONE;
|
|
2834
|
+
var interior = toRelay ? 'Here' : {
|
|
2832
2835
|
X1: [{
|
|
2833
|
-
Parachain: getParaId(
|
|
2836
|
+
Parachain: getParaId(destChain)
|
|
2834
2837
|
}]
|
|
2835
2838
|
};
|
|
2836
2839
|
return {
|
|
2837
|
-
parents:
|
|
2840
|
+
parents: parents,
|
|
2838
2841
|
interior: interior
|
|
2839
2842
|
};
|
|
2840
2843
|
};
|
|
@@ -3107,15 +3110,15 @@ var getTNode = function getTNode(paraId, ecosystem) {
|
|
|
3107
3110
|
})) !== null && _NODE_NAMES_DOT_KSM$f !== void 0 ? _NODE_NAMES_DOT_KSM$f : null;
|
|
3108
3111
|
};
|
|
3109
3112
|
|
|
3110
|
-
var getAssetReserveChain = function getAssetReserveChain(
|
|
3113
|
+
var getAssetReserveChain = function getAssetReserveChain(chain, destChain, assetLocation) {
|
|
3111
3114
|
var hasGlobalConsensusJunction = hasJunction(assetLocation, 'GlobalConsensus');
|
|
3112
3115
|
var paraId = getJunctionValue(assetLocation, 'Parachain');
|
|
3113
3116
|
if (paraId) {
|
|
3114
|
-
var
|
|
3115
|
-
if (!
|
|
3117
|
+
var resolvedChain = getTNode(paraId, getRelayChainOf(chain).toLowerCase());
|
|
3118
|
+
if (!resolvedChain) {
|
|
3116
3119
|
throw new InvalidParameterError("Chain with paraId ".concat(paraId, " not found"));
|
|
3117
3120
|
}
|
|
3118
|
-
return
|
|
3121
|
+
return resolvedChain;
|
|
3119
3122
|
}
|
|
3120
3123
|
if (hasGlobalConsensusJunction) {
|
|
3121
3124
|
return 'AssetHubPolkadot';
|
|
@@ -3126,9 +3129,9 @@ var getAssetReserveChain = function getAssetReserveChain(origin, assetLocation)
|
|
|
3126
3129
|
Here: null
|
|
3127
3130
|
}
|
|
3128
3131
|
})) {
|
|
3129
|
-
return CHAINS_DOT_RESERVE_AH.has(
|
|
3132
|
+
return CHAINS_DOT_RESERVE_AH.has(destChain) ? 'AssetHubPolkadot' : 'Polkadot';
|
|
3130
3133
|
}
|
|
3131
|
-
return
|
|
3134
|
+
return chain;
|
|
3132
3135
|
};
|
|
3133
3136
|
|
|
3134
3137
|
var prepareExecuteContext = function prepareExecuteContext(_ref) {
|
|
@@ -3141,7 +3144,7 @@ var prepareExecuteContext = function prepareExecuteContext(_ref) {
|
|
|
3141
3144
|
assertHasLocation(asset);
|
|
3142
3145
|
if (feeAsset) assertHasLocation(feeAsset);
|
|
3143
3146
|
var amount = BigInt(asset.amount);
|
|
3144
|
-
var reserveChain = getAssetReserveChain(chain, asset.multiLocation);
|
|
3147
|
+
var reserveChain = getAssetReserveChain(chain, destChain, asset.multiLocation);
|
|
3145
3148
|
var multiAsset = createMultiAsset(version, amount, asset.multiLocation);
|
|
3146
3149
|
var multiAssetLocalized = createMultiAsset(version, amount, localizeLocation(chain, asset.multiLocation));
|
|
3147
3150
|
var multiAssetLocalizedToDest = createMultiAsset(version, amount, localizeLocation(destChain, asset.multiLocation));
|
|
@@ -3239,7 +3242,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
|
|
|
3239
3242
|
mainInstructions = [{
|
|
3240
3243
|
InitiateTeleport: {
|
|
3241
3244
|
assets: createAssetsFilter(multiAssetLocalized),
|
|
3242
|
-
dest: getChainLocation(reserveChain),
|
|
3245
|
+
dest: getChainLocation(chain, reserveChain),
|
|
3243
3246
|
xcm: [{
|
|
3244
3247
|
BuyExecution: {
|
|
3245
3248
|
fees: updateAsset(multiAssetLocalizedToReserve, feeMultiAsset ? amount : amount - originFee),
|
|
@@ -3254,7 +3257,7 @@ var createBaseExecuteXcm = function createBaseExecuteXcm(options) {
|
|
|
3254
3257
|
mainInstructions = [{
|
|
3255
3258
|
InitiateReserveWithdraw: {
|
|
3256
3259
|
assets: createAssetsFilter(multiAssetLocalized),
|
|
3257
|
-
reserve: getChainLocation(reserveChain),
|
|
3260
|
+
reserve: getChainLocation(chain, reserveChain),
|
|
3258
3261
|
xcm: [{
|
|
3259
3262
|
BuyExecution: {
|
|
3260
3263
|
fees:
|
|
@@ -4900,7 +4903,7 @@ function _traverseXcmHops() {
|
|
|
4900
4903
|
_context2.n = 4;
|
|
4901
4904
|
return hopApi.init(nextChain, DRY_RUN_CLIENT_TIMEOUT_MS);
|
|
4902
4905
|
case 4:
|
|
4903
|
-
isDestination = nextChain === destination
|
|
4906
|
+
isDestination = nextChain === destination;
|
|
4904
4907
|
isAssetHub = nextChain === assetHubNode;
|
|
4905
4908
|
isBridgeHub = nextChain === bridgeHubNode;
|
|
4906
4909
|
_context2.n = 5;
|
|
@@ -7002,18 +7005,18 @@ var createExchangeInstructions = /*#__PURE__*/function () {
|
|
|
7002
7005
|
}();
|
|
7003
7006
|
var createSwapExecuteXcm = /*#__PURE__*/function () {
|
|
7004
7007
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options) {
|
|
7005
|
-
var api, chain, exchangeChain, destChain, assetFrom, assetTo, _options$fees2, originReserveFee, exchangeFee, destReserveFee, recipientAddress, version, paraIdTo, multiAssetFrom, multiAssetTo, _prepareCommonExecute, prefix, depositInstruction, exchangeInstructions, exchangeToDestXcm, finalXcm, fullXcm;
|
|
7008
|
+
var api, chain, exchangeChain, destChain, assetFrom, assetTo, _options$fees2, originReserveFee, exchangeFee, destReserveFee, recipientAddress, version, paraIdTo, multiAssetFrom, amountOut, multiAssetTo, multiAssetToLocalizedToDest, _prepareCommonExecute, prefix, depositInstruction, exchangeInstructions, exchangeToDestXcm, finalXcm, fullXcm;
|
|
7006
7009
|
return _regenerator().w(function (_context2) {
|
|
7007
7010
|
while (1) switch (_context2.n) {
|
|
7008
7011
|
case 0:
|
|
7009
7012
|
api = options.api, chain = options.chain, exchangeChain = options.exchangeChain, destChain = options.destChain, assetFrom = options.assetFrom, assetTo = options.assetTo, _options$fees2 = options.fees, originReserveFee = _options$fees2.originReserveFee, exchangeFee = _options$fees2.exchangeFee, destReserveFee = _options$fees2.destReserveFee, recipientAddress = options.recipientAddress, version = options.version, paraIdTo = options.paraIdTo;
|
|
7010
7013
|
assertHasLocation(assetFrom);
|
|
7011
7014
|
assertHasLocation(assetTo);
|
|
7012
|
-
multiAssetFrom = createMultiAsset(version, BigInt(assetFrom.amount), localizeLocation(exchangeChain, assetFrom.multiLocation));
|
|
7013
|
-
multiAssetTo = createMultiAsset(version,
|
|
7014
|
-
// Exchange fee 0n means we are creating a dummy tx
|
|
7015
|
+
multiAssetFrom = createMultiAsset(version, BigInt(assetFrom.amount), localizeLocation(exchangeChain, assetFrom.multiLocation)); // Exchange fee 0n means we are creating a dummy tx
|
|
7015
7016
|
// Set want to 1000n to prevent NoDeal
|
|
7016
|
-
exchangeFee === 0n ? 1000n : BigInt(assetTo.amount)
|
|
7017
|
+
amountOut = chain && exchangeFee === 0n ? 1000n : BigInt(assetTo.amount);
|
|
7018
|
+
multiAssetTo = createMultiAsset(version, amountOut, localizeLocation(exchangeChain, assetTo.multiLocation));
|
|
7019
|
+
multiAssetToLocalizedToDest = createMultiAsset(version, amountOut, localizeLocation(destChain !== null && destChain !== void 0 ? destChain : exchangeChain, assetTo.multiLocation));
|
|
7017
7020
|
_prepareCommonExecute = prepareCommonExecuteXcm({
|
|
7018
7021
|
api: api,
|
|
7019
7022
|
chain: chain !== null && chain !== void 0 ? chain : exchangeChain,
|
|
@@ -7026,7 +7029,7 @@ var createSwapExecuteXcm = /*#__PURE__*/function () {
|
|
|
7026
7029
|
reserveFee: originReserveFee
|
|
7027
7030
|
},
|
|
7028
7031
|
version: version
|
|
7029
|
-
},
|
|
7032
|
+
}, multiAssetToLocalizedToDest), prefix = _prepareCommonExecute.prefix, depositInstruction = _prepareCommonExecute.depositInstruction;
|
|
7030
7033
|
_context2.n = 1;
|
|
7031
7034
|
return createExchangeInstructions(options, multiAssetFrom, multiAssetTo);
|
|
7032
7035
|
case 1:
|
|
@@ -7043,7 +7046,7 @@ var createSwapExecuteXcm = /*#__PURE__*/function () {
|
|
|
7043
7046
|
reserveFee: destReserveFee
|
|
7044
7047
|
},
|
|
7045
7048
|
suffixXcm: [depositInstruction]
|
|
7046
|
-
}) : [];
|
|
7049
|
+
}) : [depositInstruction];
|
|
7047
7050
|
finalXcm = chain ? createBaseExecuteXcm({
|
|
7048
7051
|
chain: chain,
|
|
7049
7052
|
destChain: exchangeChain,
|
|
@@ -7068,7 +7071,7 @@ var createSwapExecuteXcm = /*#__PURE__*/function () {
|
|
|
7068
7071
|
}();
|
|
7069
7072
|
|
|
7070
7073
|
var MIN_FEE = 1000n;
|
|
7071
|
-
var FEE_PADDING_PERCENTAGE =
|
|
7074
|
+
var FEE_PADDING_PERCENTAGE = 20;
|
|
7072
7075
|
var validateAmount = function validateAmount(amount, requiredFee) {
|
|
7073
7076
|
if (amount <= requiredFee) {
|
|
7074
7077
|
throw new InvalidParameterError("Asset amount is too low, please increase the amount or use a different fee asset.");
|
|
@@ -11996,4 +11999,4 @@ var Builder = function Builder(api) {
|
|
|
11996
11999
|
return new GeneralBuilder(api, new BatchTransactionManager());
|
|
11997
12000
|
};
|
|
11998
12001
|
|
|
11999
|
-
export { AssetClaimBuilder, BatchMode, BridgeHaltedError, Builder, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, GeneralBuilder, IncompatibleNodesError, InvalidAddressError, InvalidParameterError, NoXCMSupportImplementedError, NodeNotSupportedError, PolkadotXcmError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, UnableToComputeError, XTokensError, addEthereumBridgeFees, addXcmVersionHeader, assertAddressIsString, assertHasLocation, assertToIsString, blake2b256, blake2b512, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, convertSs58, createApiInstanceForNode, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createMultiAsset, createVersionedMultiAssets, createX1Payload, deriveAccountId, dryRun, dryRunOrigin, encodeSs58, getAssetBalance, getAssetBalanceInternal, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChainLocation, getChainVersion, getNode, getNodeConfig, getNodeProviders, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getParaEthTransferFees, getParaId, getRelayChainOf, getTNode, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, localizeLocation, maybeOverrideMultiAsset, maybeOverrideMultiAssets, resolveModuleError, resolveParaId, reverseTransformMultiLocation, send, sortMultiAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, verifyEdOnDestination };
|
|
12002
|
+
export { AssetClaimBuilder, BatchMode, BridgeHaltedError, Builder, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, GeneralBuilder, IncompatibleNodesError, InvalidAddressError, InvalidParameterError, NoXCMSupportImplementedError, NodeNotSupportedError, PolkadotXcmError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, UnableToComputeError, XTokensError, addEthereumBridgeFees, addXcmVersionHeader, assertAddressIsString, assertHasLocation, assertToIsString, blake2b256, blake2b512, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, convertSs58, createApiInstanceForNode, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createMultiAsset, createVersionedMultiAssets, createX1Payload, deriveAccountId, dryRun, dryRunOrigin, encodeSs58, getAssetBalance, getAssetBalanceInternal, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChainLocation, getChainVersion, getNode, getNodeConfig, getNodeProviders, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getParaEthTransferFees, getParaId, getRelayChainOf, getTNode, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, localizeLocation, maybeOverrideMultiAsset, maybeOverrideMultiAssets, padFee, padFeeBy, resolveModuleError, resolveParaId, reverseTransformMultiLocation, send, sortMultiAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, verifyEdOnDestination };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paraspell/sdk-core",
|
|
3
|
-
"version": "10.10.
|
|
3
|
+
"version": "10.10.8",
|
|
4
4
|
"description": "SDK core for ParaSpell XCM/XCMP tool for developers",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"@noble/hashes": "^1.8.0",
|
|
27
27
|
"@scure/base": "^1.2.6",
|
|
28
28
|
"viem": "^2.31.6",
|
|
29
|
-
"@paraspell/assets": "10.10.
|
|
30
|
-
"@paraspell/
|
|
31
|
-
"@paraspell/
|
|
29
|
+
"@paraspell/assets": "10.10.8",
|
|
30
|
+
"@paraspell/sdk-common": "10.10.8",
|
|
31
|
+
"@paraspell/pallets": "10.10.8"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@babel/plugin-syntax-import-attributes": "^7.27.1",
|