@paraspell/sdk-core 10.4.10 → 10.5.1

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 CHANGED
@@ -3830,6 +3830,9 @@ var padFee = function padFee(raw, origin, dest, side) {
3830
3830
  var paraToPara = !relayOrigin && !sysParaOrigin;
3831
3831
  if (sysParaToPara) return raw * 40n;
3832
3832
  if (relayToPara) return side === 'origin' ? mul(raw, 320n, 100n) : mul(raw, 3000n, 100n);
3833
+ if (paraToPara && side == 'origin' && origin === 'Mythos' && dest !== 'Ethereum') {
3834
+ return 150000000000000000n;
3835
+ }
3833
3836
  if (paraToPara) return mul(raw, 130n, 100n);
3834
3837
  // apply default 30% padding
3835
3838
  return mul(raw, 130n, 100n);
@@ -3838,28 +3841,30 @@ var padFeeBy = function padFeeBy(amount, percent) {
3838
3841
  return mul(amount, BigInt(100 + percent), 100n);
3839
3842
  };
3840
3843
 
3844
+ var determineAddress = function determineAddress(chain, address, senderAddress) {
3845
+ if (assets.isNodeEvm(chain)) {
3846
+ return viem.isAddress(address) ? address : senderAddress;
3847
+ }
3848
+ return viem.isAddress(address) ? senderAddress : address;
3849
+ };
3841
3850
  var getReverseTxFee = /*#__PURE__*/function () {
3842
3851
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref, currencyInput) {
3843
- var api, origin, destination, senderAddress, address, currency, tx, rawFee;
3852
+ var api, origin, destination, senderAddress, address, currency, toAddress, fromAddress, tx, rawFee;
3844
3853
  return _regenerator().w(function (_context) {
3845
3854
  while (1) switch (_context.n) {
3846
3855
  case 0:
3847
3856
  api = _ref.api, origin = _ref.origin, destination = _ref.destination, senderAddress = _ref.senderAddress, address = _ref.address, currency = _ref.currency;
3848
- if (!('multiasset' in currency)) {
3849
- _context.n = 1;
3850
- break;
3851
- }
3852
- throw new assets.InvalidCurrencyError('Multi-assets are not yet supported for XCM fee calculation.');
3853
- case 1:
3854
- _context.n = 2;
3855
- return Builder(api).from(destination).to(origin).address(senderAddress).senderAddress(address).currency(_objectSpread2(_objectSpread2({}, currencyInput), {}, {
3857
+ toAddress = determineAddress(origin, address, senderAddress);
3858
+ fromAddress = determineAddress(destination, address, senderAddress);
3859
+ _context.n = 1;
3860
+ return Builder(api).from(destination).to(origin).address(toAddress).senderAddress(fromAddress).currency(_objectSpread2(_objectSpread2({}, currencyInput), {}, {
3856
3861
  amount: currency.amount
3857
3862
  })).build();
3858
- case 2:
3863
+ case 1:
3859
3864
  tx = _context.v;
3860
- _context.n = 3;
3861
- return api.calculateTransactionFee(tx, address);
3862
- case 3:
3865
+ _context.n = 2;
3866
+ return api.calculateTransactionFee(tx, fromAddress);
3867
+ case 2:
3863
3868
  rawFee = _context.v;
3864
3869
  return _context.a(2, padFee(rawFee, origin, destination, 'destination'));
3865
3870
  }
@@ -4789,13 +4794,14 @@ var dryRunInternal = /*#__PURE__*/function () {
4789
4794
  case 0:
4790
4795
  origin = options.origin, destination = options.destination, currency = options.currency, api = options.api, tx = options.tx, senderAddress = options.senderAddress, feeAsset = options.feeAsset;
4791
4796
  resolvedFeeAsset = feeAsset && origin === 'AssetHubPolkadot' ? resolveFeeAsset(feeAsset, origin, destination, currency) : undefined;
4792
- asset = 'multiasset' in currency ? null : assets.findAssetForNodeOrThrow(origin, currency, destination);
4797
+ asset = assets.findAssetForNodeOrThrow(origin, currency, destination);
4793
4798
  _context.n = 1;
4794
4799
  return api.getDryRunCall({
4795
4800
  tx: tx,
4796
4801
  node: origin,
4797
4802
  address: senderAddress,
4798
- isFeeAsset: !!resolvedFeeAsset
4803
+ asset: asset,
4804
+ feeAsset: resolvedFeeAsset
4799
4805
  });
4800
4806
  case 1:
4801
4807
  originDryRun = _context.v;
@@ -5008,7 +5014,7 @@ var dryRunOrigin = /*#__PURE__*/function () {
5008
5014
 
5009
5015
  var getOriginXcmFee = /*#__PURE__*/function () {
5010
5016
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
5011
- var api, tx, origin, destination, senderAddress, disableFallback, feeAsset, currency, resolvedFeeAsset, nativeAssetSymbol, rawFee, paddedFee, sufficient, dryRunResult, _rawFee, _paddedFee, _sufficient, fee, forwardedXcms, destParaId, weight, currencySymbol;
5017
+ var api, tx, origin, destination, senderAddress, disableFallback, feeAsset, currency, resolvedFeeAsset, nativeAssetSymbol, rawFee, paddedFee, sufficient, asset, dryRunResult, _rawFee, _paddedFee, _sufficient, fee, forwardedXcms, destParaId, weight, currencySymbol;
5012
5018
  return _regenerator().w(function (_context) {
5013
5019
  while (1) switch (_context.n) {
5014
5020
  case 0:
@@ -5038,12 +5044,14 @@ var getOriginXcmFee = /*#__PURE__*/function () {
5038
5044
  sufficient: sufficient
5039
5045
  });
5040
5046
  case 4:
5047
+ asset = assets.findAssetForNodeOrThrow(origin, currency, destination);
5041
5048
  _context.n = 5;
5042
5049
  return api.getDryRunCall({
5043
5050
  tx: tx,
5044
5051
  node: origin,
5045
5052
  address: senderAddress,
5046
- isFeeAsset: !!resolvedFeeAsset
5053
+ asset: asset,
5054
+ feeAsset: resolvedFeeAsset
5047
5055
  });
5048
5056
  case 5:
5049
5057
  dryRunResult = _context.v;
@@ -7272,7 +7280,8 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
7272
7280
  node: this.node,
7273
7281
  tx: api.callTxMethod(call),
7274
7282
  address: senderAddress,
7275
- isFeeAsset: !!feeAsset
7283
+ asset: asset,
7284
+ feeAsset: feeAsset
7276
7285
  });
7277
7286
  case 2:
7278
7287
  dryRunResult = _context3.v;
package/dist/index.d.ts CHANGED
@@ -539,7 +539,8 @@ type TDryRunCallBaseOptions<TRes> = {
539
539
  * The address to dry-run with
540
540
  */
541
541
  address: string;
542
- isFeeAsset: boolean;
542
+ asset: TAsset;
543
+ feeAsset?: TAsset;
543
544
  };
544
545
  type TDryRunCallOptions<TApi, TRes> = WithApi<TDryRunCallBaseOptions<TRes>, TApi, TRes>;
545
546
  type TDryRunXcmBaseOptions = {
package/dist/index.mjs CHANGED
@@ -3831,6 +3831,9 @@ var padFee = function padFee(raw, origin, dest, side) {
3831
3831
  var paraToPara = !relayOrigin && !sysParaOrigin;
3832
3832
  if (sysParaToPara) return raw * 40n;
3833
3833
  if (relayToPara) return side === 'origin' ? mul(raw, 320n, 100n) : mul(raw, 3000n, 100n);
3834
+ if (paraToPara && side == 'origin' && origin === 'Mythos' && dest !== 'Ethereum') {
3835
+ return 150000000000000000n;
3836
+ }
3834
3837
  if (paraToPara) return mul(raw, 130n, 100n);
3835
3838
  // apply default 30% padding
3836
3839
  return mul(raw, 130n, 100n);
@@ -3839,28 +3842,30 @@ var padFeeBy = function padFeeBy(amount, percent) {
3839
3842
  return mul(amount, BigInt(100 + percent), 100n);
3840
3843
  };
3841
3844
 
3845
+ var determineAddress = function determineAddress(chain, address, senderAddress) {
3846
+ if (isNodeEvm(chain)) {
3847
+ return isAddress(address) ? address : senderAddress;
3848
+ }
3849
+ return isAddress(address) ? senderAddress : address;
3850
+ };
3842
3851
  var getReverseTxFee = /*#__PURE__*/function () {
3843
3852
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref, currencyInput) {
3844
- var api, origin, destination, senderAddress, address, currency, tx, rawFee;
3853
+ var api, origin, destination, senderAddress, address, currency, toAddress, fromAddress, tx, rawFee;
3845
3854
  return _regenerator().w(function (_context) {
3846
3855
  while (1) switch (_context.n) {
3847
3856
  case 0:
3848
3857
  api = _ref.api, origin = _ref.origin, destination = _ref.destination, senderAddress = _ref.senderAddress, address = _ref.address, currency = _ref.currency;
3849
- if (!('multiasset' in currency)) {
3850
- _context.n = 1;
3851
- break;
3852
- }
3853
- throw new InvalidCurrencyError('Multi-assets are not yet supported for XCM fee calculation.');
3854
- case 1:
3855
- _context.n = 2;
3856
- return Builder(api).from(destination).to(origin).address(senderAddress).senderAddress(address).currency(_objectSpread2(_objectSpread2({}, currencyInput), {}, {
3858
+ toAddress = determineAddress(origin, address, senderAddress);
3859
+ fromAddress = determineAddress(destination, address, senderAddress);
3860
+ _context.n = 1;
3861
+ return Builder(api).from(destination).to(origin).address(toAddress).senderAddress(fromAddress).currency(_objectSpread2(_objectSpread2({}, currencyInput), {}, {
3857
3862
  amount: currency.amount
3858
3863
  })).build();
3859
- case 2:
3864
+ case 1:
3860
3865
  tx = _context.v;
3861
- _context.n = 3;
3862
- return api.calculateTransactionFee(tx, address);
3863
- case 3:
3866
+ _context.n = 2;
3867
+ return api.calculateTransactionFee(tx, fromAddress);
3868
+ case 2:
3864
3869
  rawFee = _context.v;
3865
3870
  return _context.a(2, padFee(rawFee, origin, destination, 'destination'));
3866
3871
  }
@@ -4790,13 +4795,14 @@ var dryRunInternal = /*#__PURE__*/function () {
4790
4795
  case 0:
4791
4796
  origin = options.origin, destination = options.destination, currency = options.currency, api = options.api, tx = options.tx, senderAddress = options.senderAddress, feeAsset = options.feeAsset;
4792
4797
  resolvedFeeAsset = feeAsset && origin === 'AssetHubPolkadot' ? resolveFeeAsset(feeAsset, origin, destination, currency) : undefined;
4793
- asset = 'multiasset' in currency ? null : findAssetForNodeOrThrow(origin, currency, destination);
4798
+ asset = findAssetForNodeOrThrow(origin, currency, destination);
4794
4799
  _context.n = 1;
4795
4800
  return api.getDryRunCall({
4796
4801
  tx: tx,
4797
4802
  node: origin,
4798
4803
  address: senderAddress,
4799
- isFeeAsset: !!resolvedFeeAsset
4804
+ asset: asset,
4805
+ feeAsset: resolvedFeeAsset
4800
4806
  });
4801
4807
  case 1:
4802
4808
  originDryRun = _context.v;
@@ -5009,7 +5015,7 @@ var dryRunOrigin = /*#__PURE__*/function () {
5009
5015
 
5010
5016
  var getOriginXcmFee = /*#__PURE__*/function () {
5011
5017
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
5012
- var api, tx, origin, destination, senderAddress, disableFallback, feeAsset, currency, resolvedFeeAsset, nativeAssetSymbol, rawFee, paddedFee, sufficient, dryRunResult, _rawFee, _paddedFee, _sufficient, fee, forwardedXcms, destParaId, weight, currencySymbol;
5018
+ var api, tx, origin, destination, senderAddress, disableFallback, feeAsset, currency, resolvedFeeAsset, nativeAssetSymbol, rawFee, paddedFee, sufficient, asset, dryRunResult, _rawFee, _paddedFee, _sufficient, fee, forwardedXcms, destParaId, weight, currencySymbol;
5013
5019
  return _regenerator().w(function (_context) {
5014
5020
  while (1) switch (_context.n) {
5015
5021
  case 0:
@@ -5039,12 +5045,14 @@ var getOriginXcmFee = /*#__PURE__*/function () {
5039
5045
  sufficient: sufficient
5040
5046
  });
5041
5047
  case 4:
5048
+ asset = findAssetForNodeOrThrow(origin, currency, destination);
5042
5049
  _context.n = 5;
5043
5050
  return api.getDryRunCall({
5044
5051
  tx: tx,
5045
5052
  node: origin,
5046
5053
  address: senderAddress,
5047
- isFeeAsset: !!resolvedFeeAsset
5054
+ asset: asset,
5055
+ feeAsset: resolvedFeeAsset
5048
5056
  });
5049
5057
  case 5:
5050
5058
  dryRunResult = _context.v;
@@ -7273,7 +7281,8 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
7273
7281
  node: this.node,
7274
7282
  tx: api.callTxMethod(call),
7275
7283
  address: senderAddress,
7276
- isFeeAsset: !!feeAsset
7284
+ asset: asset,
7285
+ feeAsset: feeAsset
7277
7286
  });
7278
7287
  case 2:
7279
7288
  dryRunResult = _context3.v;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraspell/sdk-core",
3
- "version": "10.4.10",
3
+ "version": "10.5.1",
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.30.5",
29
- "@paraspell/assets": "10.4.10",
30
- "@paraspell/sdk-common": "10.4.10",
31
- "@paraspell/pallets": "10.4.10"
29
+ "@paraspell/assets": "10.5.1",
30
+ "@paraspell/sdk-common": "10.5.1",
31
+ "@paraspell/pallets": "10.5.1"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@babel/plugin-syntax-import-attributes": "^7.27.1",