@paraspell/sdk-core 10.5.0 → 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
@@ -3841,28 +3841,30 @@ var padFeeBy = function padFeeBy(amount, percent) {
3841
3841
  return mul(amount, BigInt(100 + percent), 100n);
3842
3842
  };
3843
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
+ };
3844
3850
  var getReverseTxFee = /*#__PURE__*/function () {
3845
3851
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref, currencyInput) {
3846
- var api, origin, destination, senderAddress, address, currency, tx, rawFee;
3852
+ var api, origin, destination, senderAddress, address, currency, toAddress, fromAddress, tx, rawFee;
3847
3853
  return _regenerator().w(function (_context) {
3848
3854
  while (1) switch (_context.n) {
3849
3855
  case 0:
3850
3856
  api = _ref.api, origin = _ref.origin, destination = _ref.destination, senderAddress = _ref.senderAddress, address = _ref.address, currency = _ref.currency;
3851
- if (!('multiasset' in currency)) {
3852
- _context.n = 1;
3853
- break;
3854
- }
3855
- throw new assets.InvalidCurrencyError('Multi-assets are not yet supported for XCM fee calculation.');
3856
- case 1:
3857
- _context.n = 2;
3858
- 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), {}, {
3859
3861
  amount: currency.amount
3860
3862
  })).build();
3861
- case 2:
3863
+ case 1:
3862
3864
  tx = _context.v;
3863
- _context.n = 3;
3864
- return api.calculateTransactionFee(tx, address);
3865
- case 3:
3865
+ _context.n = 2;
3866
+ return api.calculateTransactionFee(tx, fromAddress);
3867
+ case 2:
3866
3868
  rawFee = _context.v;
3867
3869
  return _context.a(2, padFee(rawFee, origin, destination, 'destination'));
3868
3870
  }
@@ -4792,13 +4794,14 @@ var dryRunInternal = /*#__PURE__*/function () {
4792
4794
  case 0:
4793
4795
  origin = options.origin, destination = options.destination, currency = options.currency, api = options.api, tx = options.tx, senderAddress = options.senderAddress, feeAsset = options.feeAsset;
4794
4796
  resolvedFeeAsset = feeAsset && origin === 'AssetHubPolkadot' ? resolveFeeAsset(feeAsset, origin, destination, currency) : undefined;
4795
- asset = 'multiasset' in currency ? null : assets.findAssetForNodeOrThrow(origin, currency, destination);
4797
+ asset = assets.findAssetForNodeOrThrow(origin, currency, destination);
4796
4798
  _context.n = 1;
4797
4799
  return api.getDryRunCall({
4798
4800
  tx: tx,
4799
4801
  node: origin,
4800
4802
  address: senderAddress,
4801
- isFeeAsset: !!resolvedFeeAsset
4803
+ asset: asset,
4804
+ feeAsset: resolvedFeeAsset
4802
4805
  });
4803
4806
  case 1:
4804
4807
  originDryRun = _context.v;
@@ -5011,7 +5014,7 @@ var dryRunOrigin = /*#__PURE__*/function () {
5011
5014
 
5012
5015
  var getOriginXcmFee = /*#__PURE__*/function () {
5013
5016
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
5014
- 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;
5015
5018
  return _regenerator().w(function (_context) {
5016
5019
  while (1) switch (_context.n) {
5017
5020
  case 0:
@@ -5041,12 +5044,14 @@ var getOriginXcmFee = /*#__PURE__*/function () {
5041
5044
  sufficient: sufficient
5042
5045
  });
5043
5046
  case 4:
5047
+ asset = assets.findAssetForNodeOrThrow(origin, currency, destination);
5044
5048
  _context.n = 5;
5045
5049
  return api.getDryRunCall({
5046
5050
  tx: tx,
5047
5051
  node: origin,
5048
5052
  address: senderAddress,
5049
- isFeeAsset: !!resolvedFeeAsset
5053
+ asset: asset,
5054
+ feeAsset: resolvedFeeAsset
5050
5055
  });
5051
5056
  case 5:
5052
5057
  dryRunResult = _context.v;
@@ -7275,7 +7280,8 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
7275
7280
  node: this.node,
7276
7281
  tx: api.callTxMethod(call),
7277
7282
  address: senderAddress,
7278
- isFeeAsset: !!feeAsset
7283
+ asset: asset,
7284
+ feeAsset: feeAsset
7279
7285
  });
7280
7286
  case 2:
7281
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
@@ -3842,28 +3842,30 @@ var padFeeBy = function padFeeBy(amount, percent) {
3842
3842
  return mul(amount, BigInt(100 + percent), 100n);
3843
3843
  };
3844
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
+ };
3845
3851
  var getReverseTxFee = /*#__PURE__*/function () {
3846
3852
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref, currencyInput) {
3847
- var api, origin, destination, senderAddress, address, currency, tx, rawFee;
3853
+ var api, origin, destination, senderAddress, address, currency, toAddress, fromAddress, tx, rawFee;
3848
3854
  return _regenerator().w(function (_context) {
3849
3855
  while (1) switch (_context.n) {
3850
3856
  case 0:
3851
3857
  api = _ref.api, origin = _ref.origin, destination = _ref.destination, senderAddress = _ref.senderAddress, address = _ref.address, currency = _ref.currency;
3852
- if (!('multiasset' in currency)) {
3853
- _context.n = 1;
3854
- break;
3855
- }
3856
- throw new InvalidCurrencyError('Multi-assets are not yet supported for XCM fee calculation.');
3857
- case 1:
3858
- _context.n = 2;
3859
- 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), {}, {
3860
3862
  amount: currency.amount
3861
3863
  })).build();
3862
- case 2:
3864
+ case 1:
3863
3865
  tx = _context.v;
3864
- _context.n = 3;
3865
- return api.calculateTransactionFee(tx, address);
3866
- case 3:
3866
+ _context.n = 2;
3867
+ return api.calculateTransactionFee(tx, fromAddress);
3868
+ case 2:
3867
3869
  rawFee = _context.v;
3868
3870
  return _context.a(2, padFee(rawFee, origin, destination, 'destination'));
3869
3871
  }
@@ -4793,13 +4795,14 @@ var dryRunInternal = /*#__PURE__*/function () {
4793
4795
  case 0:
4794
4796
  origin = options.origin, destination = options.destination, currency = options.currency, api = options.api, tx = options.tx, senderAddress = options.senderAddress, feeAsset = options.feeAsset;
4795
4797
  resolvedFeeAsset = feeAsset && origin === 'AssetHubPolkadot' ? resolveFeeAsset(feeAsset, origin, destination, currency) : undefined;
4796
- asset = 'multiasset' in currency ? null : findAssetForNodeOrThrow(origin, currency, destination);
4798
+ asset = findAssetForNodeOrThrow(origin, currency, destination);
4797
4799
  _context.n = 1;
4798
4800
  return api.getDryRunCall({
4799
4801
  tx: tx,
4800
4802
  node: origin,
4801
4803
  address: senderAddress,
4802
- isFeeAsset: !!resolvedFeeAsset
4804
+ asset: asset,
4805
+ feeAsset: resolvedFeeAsset
4803
4806
  });
4804
4807
  case 1:
4805
4808
  originDryRun = _context.v;
@@ -5012,7 +5015,7 @@ var dryRunOrigin = /*#__PURE__*/function () {
5012
5015
 
5013
5016
  var getOriginXcmFee = /*#__PURE__*/function () {
5014
5017
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
5015
- 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;
5016
5019
  return _regenerator().w(function (_context) {
5017
5020
  while (1) switch (_context.n) {
5018
5021
  case 0:
@@ -5042,12 +5045,14 @@ var getOriginXcmFee = /*#__PURE__*/function () {
5042
5045
  sufficient: sufficient
5043
5046
  });
5044
5047
  case 4:
5048
+ asset = findAssetForNodeOrThrow(origin, currency, destination);
5045
5049
  _context.n = 5;
5046
5050
  return api.getDryRunCall({
5047
5051
  tx: tx,
5048
5052
  node: origin,
5049
5053
  address: senderAddress,
5050
- isFeeAsset: !!resolvedFeeAsset
5054
+ asset: asset,
5055
+ feeAsset: resolvedFeeAsset
5051
5056
  });
5052
5057
  case 5:
5053
5058
  dryRunResult = _context.v;
@@ -7276,7 +7281,8 @@ var AssetHubPolkadot = /*#__PURE__*/function (_ParachainNode) {
7276
7281
  node: this.node,
7277
7282
  tx: api.callTxMethod(call),
7278
7283
  address: senderAddress,
7279
- isFeeAsset: !!feeAsset
7284
+ asset: asset,
7285
+ feeAsset: feeAsset
7280
7286
  });
7281
7287
  case 2:
7282
7288
  dryRunResult = _context3.v;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraspell/sdk-core",
3
- "version": "10.5.0",
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.5.0",
30
- "@paraspell/sdk-common": "10.5.0",
31
- "@paraspell/pallets": "10.5.0"
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",