@paraspell/sdk-pjs 12.1.2 → 12.2.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.
Files changed (3) hide show
  1. package/README.md +5 -2
  2. package/dist/index.mjs +213 -178
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -298,7 +298,7 @@ const result = await Builder(/*chain api/builder_config/ws_url_string/ws_url_arr
298
298
  ```ts
299
299
  const builder = await Builder({
300
300
  development: true, // Optional: Enforces overrides for all chains used
301
- decimalAbstraction: true //Abstracts decimals, so 1 as input amount equals 10_000_000_000 if selected asset is DOT.
301
+ decimalAbstraction: true // Abstracts decimals, so 1 as input amount equals 10_000_000_000 if selected asset is DOT.
302
302
  apiOverrides: {
303
303
  Hydration: // "wsEndpointString" | papiClient
304
304
  BridgeHubPolkadot: // "wsEndpointString" | papiClient
@@ -308,9 +308,12 @@ const builder = await Builder({
308
308
  .from(TSubstrateChain)
309
309
  .to(TChain)
310
310
  .currency({id: currencyID, amount: amount /*Use "ALL" to transfer everything*/} | {symbol: currencySymbol, amount: amount /*Use "ALL" to transfer everything*/} | {symbol: Native('currencySymbol'), amount: amount /*Use "ALL" to transfer everything*/} | {symbol: Foreign('currencySymbol'), amount: amount /*Use "ALL" to transfer everything*/} | {symbol: ForeignAbstract('currencySymbol'), amount: amount /*Use "ALL" to transfer everything*/} | {location: AssetLocationString, amount: amount /*Use "ALL" to transfer everything*/ | AssetLocationJson, amount: amount /*Use "ALL" to transfer everything*/} | {location: Override('Custom Location'), amount: amount /*Use "ALL" to transfer everything*/} | [{currencySelection, isFeeAsset?: true /* for example symbol: symbol or id: id, or Location: Location*/, amount: amount /*Use "ALL" to transfer everything*/}])
311
- .address(address)
311
+ .address(address) //You can also use prederived accounts - //Alice, //Bob... //Alith, //Balthathar...
312
+ .senderAddress(address) //You can also use prederived accounts //Alice, //Bob... //Alith, //Balthathar...
312
313
 
313
314
  const tx = await builder.build()
315
+ //Or if you use prederived account as senderAddress:
316
+ //await builder.signAndSubmit()
314
317
 
315
318
  //Disconnect API after TX
316
319
  await builder.disconnect()
package/dist/index.mjs CHANGED
@@ -1,11 +1,28 @@
1
- import { isConfig, BatchMode, findNativeAssetInfoOrThrow, MissingChainApiError, getChainProviders, UnsupportedOperationError, findAssetInfoOrThrow, computeFeeFromDryRunPjs, hasXcmPaymentApiSupport, resolveModuleError, getAssetsObject, RuntimeApiUnavailableError, wrapTxBypass, assertHasLocation, localizeLocation, isAssetXcEqual, addXcmVersionHeader, Version, RELAY_LOCATION, getRelayChainOf, createChainClient as createChainClient$1, getBalance as getBalance$1, claimAssets as claimAssets$1, Foreign, ForeignAbstract, Native, Override, findAssetInfo, getAllAssetsSymbols, getAssetDecimals, getAssetId, getAssets, getExistentialDeposit, getNativeAssetSymbol, getNativeAssets, getOtherAssets, getRelayChainSymbol, getSupportedAssets, getTChain, hasSupportForAsset, isChainEvm, convertSs58 as convertSs58$1, getParaId, ETH_CHAIN_ID, RoutingResolutionError, abstractDecimals, assertHasId, MissingParameterError, isOverrideLocationSpecifier, transferMoonbeamEvm, transferMoonbeamToEth, validateAddress as validateAddress$1, Builder as Builder$1, getParaEthTransferFees as getParaEthTransferFees$1, DRY_RUN_CLIENT_TIMEOUT_MS, getBridgeStatus as getBridgeStatus$1, send as send$1, dryRun as dryRun$1, dryRunOrigin as dryRunOrigin$1 } from '@paraspell/sdk-core';
1
+ import { getEvmPrivateKeyHex, createClientCache, createClientPoolHelpers, isConfig, getChainProviders, BatchMode, findNativeAssetInfoOrThrow, MissingChainApiError, UnsupportedOperationError, findAssetInfoOrThrow, computeFeeFromDryRunPjs, hasXcmPaymentApiSupport, resolveModuleError, getAssetsObject, RuntimeApiUnavailableError, wrapTxBypass, assertHasLocation, localizeLocation, isAssetXcEqual, addXcmVersionHeader, Version, RELAY_LOCATION, getRelayChainOf, createChainClient as createChainClient$1, getBalance as getBalance$1, claimAssets as claimAssets$1, Foreign, ForeignAbstract, Native, Override, findAssetInfo, getAllAssetsSymbols, getAssetDecimals, getAssetId, getAssets, getExistentialDeposit, getNativeAssetSymbol, getNativeAssets, getOtherAssets, getRelayChainSymbol, getSupportedAssets, getTChain, hasSupportForAsset, isChainEvm, convertSs58 as convertSs58$1, getParaId, ETH_CHAIN_ID, RoutingResolutionError, abstractDecimals, assertHasId, MissingParameterError, isOverrideLocationSpecifier, transferMoonbeamEvm, transferMoonbeamToEth, validateAddress as validateAddress$1, Builder as Builder$1, getParaEthTransferFees as getParaEthTransferFees$1, DRY_RUN_CLIENT_TIMEOUT_MS, getBridgeStatus as getBridgeStatus$1, send as send$1, dryRun as dryRun$1, dryRunOrigin as dryRunOrigin$1 } from '@paraspell/sdk-core';
2
2
  export * from '@paraspell/sdk-core';
3
- import { WsProvider, ApiPromise } from '@polkadot/api';
3
+ import { Keyring, WsProvider, ApiPromise } from '@polkadot/api';
4
4
  import { isHex, u8aToHex, hexToU8a, stringToU8a } from '@polkadot/util';
5
5
  import { decodeAddress, blake2AsHex, validateAddress } from '@polkadot/util-crypto';
6
6
  import { environment, Context, toPolkadotV2, assetsV2 } from '@snowbridge/api';
7
7
  import { WETH9__factory } from '@snowbridge/contract-types';
8
8
 
9
+ var createKeyringPair = function createKeyringPair(path) {
10
+ var evmPrivateKey = getEvmPrivateKeyHex(path);
11
+ var keyring = evmPrivateKey ? new Keyring() : new Keyring({
12
+ type: 'sr25519'
13
+ });
14
+ return evmPrivateKey ? keyring.createFromUri(evmPrivateKey, undefined, 'ethereum') : keyring.addFromUri(path);
15
+ };
16
+
17
+ var lowercaseFirstLetter = function lowercaseFirstLetter(value) {
18
+ return value.charAt(0).toLowerCase() + value.slice(1);
19
+ };
20
+ var snakeToCamel = function snakeToCamel(str) {
21
+ return str.toLowerCase().replace(/([-_][a-z])/g, function (group) {
22
+ return group.toUpperCase().replace('-', '').replace('_', '');
23
+ });
24
+ };
25
+
9
26
  function _arrayLikeToArray(r, a) {
10
27
  (null == a || a > r.length) && (a = r.length);
11
28
  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
@@ -230,17 +247,53 @@ function _unsupportedIterableToArray(r, a) {
230
247
  }
231
248
  }
232
249
 
233
- var lowercaseFirstLetter = function lowercaseFirstLetter(value) {
234
- return value.charAt(0).toLowerCase() + value.slice(1);
235
- };
236
- var snakeToCamel = function snakeToCamel(str) {
237
- return str.toLowerCase().replace(/([-_][a-z])/g, function (group) {
238
- return group.toUpperCase().replace('-', '').replace('_', '');
239
- });
240
- };
250
+ // Cache settings
251
+ var DEFAULT_TTL_MS = 60000; // 1 minute
252
+ var MAX_CLIENTS = 100;
253
+ var EXTENSION_MS = 5 * 60000; // 5 minutes
254
+
255
+ var clientPool = createClientCache(MAX_CLIENTS, /*#__PURE__*/function () {
256
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(client) {
257
+ return _regenerator().w(function (_context) {
258
+ while (1) switch (_context.n) {
259
+ case 0:
260
+ _context.n = 1;
261
+ return client.rpc.system.properties();
262
+ case 1:
263
+ return _context.a(2);
264
+ }
265
+ }, _callee);
266
+ }));
267
+ return function (_x) {
268
+ return _ref.apply(this, arguments);
269
+ };
270
+ }(), function (_key, entry) {
271
+ void entry.client.disconnect();
272
+ }, EXTENSION_MS);
273
+ var createPolkadotJsClient = /*#__PURE__*/function () {
274
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(ws) {
275
+ var wsProvider;
276
+ return _regenerator().w(function (_context2) {
277
+ while (1) switch (_context2.n) {
278
+ case 0:
279
+ wsProvider = new WsProvider(ws);
280
+ return _context2.a(2, ApiPromise.create({
281
+ provider: wsProvider
282
+ }));
283
+ }
284
+ }, _callee2);
285
+ }));
286
+ return function createPolkadotJsClient(_x2) {
287
+ return _ref2.apply(this, arguments);
288
+ };
289
+ }();
290
+ var _createClientPoolHelp = createClientPoolHelpers(clientPool, createPolkadotJsClient),
291
+ leaseClient = _createClientPoolHelp.leaseClient,
292
+ releaseClient = _createClientPoolHelp.releaseClient;
241
293
  var PolkadotJsApi = /*#__PURE__*/function () {
242
294
  function PolkadotJsApi(config) {
243
295
  _classCallCheck(this, PolkadotJsApi);
296
+ this._ttlMs = DEFAULT_TTL_MS;
244
297
  this.initialized = false;
245
298
  this.disconnectAllowed = true;
246
299
  this._config = config;
@@ -258,36 +311,40 @@ var PolkadotJsApi = /*#__PURE__*/function () {
258
311
  }, {
259
312
  key: "init",
260
313
  value: function () {
261
- var _init = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(chain, _clientTtlMs) {
262
- var apiConfig;
263
- return _regenerator().w(function (_context) {
264
- while (1) switch (_context.n) {
314
+ var _init = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(chain) {
315
+ var clientTtlMs,
316
+ apiConfig,
317
+ _args = arguments;
318
+ return _regenerator().w(function (_context3) {
319
+ while (1) switch (_context3.n) {
265
320
  case 0:
321
+ clientTtlMs = _args.length > 1 && _args[1] !== undefined ? _args[1] : DEFAULT_TTL_MS;
266
322
  if (!(this.initialized || chain === 'Ethereum')) {
267
- _context.n = 1;
323
+ _context3.n = 1;
268
324
  break;
269
325
  }
270
- return _context.a(2);
326
+ return _context3.a(2);
271
327
  case 1:
328
+ this._ttlMs = clientTtlMs;
272
329
  this._chain = chain;
273
330
  apiConfig = this.getApiConfigForChain(chain);
274
331
  if (!(isConfig(this._config) && this._config.development && !apiConfig)) {
275
- _context.n = 2;
332
+ _context3.n = 2;
276
333
  break;
277
334
  }
278
335
  throw new MissingChainApiError(chain);
279
336
  case 2:
280
- _context.n = 3;
337
+ _context3.n = 3;
281
338
  return this.resolveApi(apiConfig, chain);
282
339
  case 3:
283
- this.api = _context.v;
340
+ this.api = _context3.v;
284
341
  this.initialized = true;
285
342
  case 4:
286
- return _context.a(2);
343
+ return _context3.a(2);
287
344
  }
288
- }, _callee, this);
345
+ }, _callee3, this);
289
346
  }));
290
- function init(_x, _x2) {
347
+ function init(_x3) {
291
348
  return _init.apply(this, arguments);
292
349
  }
293
350
  return init;
@@ -303,54 +360,21 @@ var PolkadotJsApi = /*#__PURE__*/function () {
303
360
  }
304
361
  }, {
305
362
  key: "resolveApi",
306
- value: function () {
307
- var _resolveApi = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(apiConfig, chain) {
308
- var wsUrl;
309
- return _regenerator().w(function (_context2) {
310
- while (1) switch (_context2.n) {
311
- case 0:
312
- if (apiConfig) {
313
- _context2.n = 1;
314
- break;
315
- }
316
- wsUrl = getChainProviders(chain);
317
- return _context2.a(2, this.createApiInstance(wsUrl, chain));
318
- case 1:
319
- if (!(typeof apiConfig === 'string' || apiConfig instanceof Array)) {
320
- _context2.n = 2;
321
- break;
322
- }
323
- return _context2.a(2, this.createApiInstance(apiConfig, chain));
324
- case 2:
325
- return _context2.a(2, apiConfig);
326
- }
327
- }, _callee2, this);
328
- }));
329
- function resolveApi(_x3, _x4) {
330
- return _resolveApi.apply(this, arguments);
363
+ value: function resolveApi(apiConfig, chain) {
364
+ if (!apiConfig) {
365
+ var wsUrl = getChainProviders(chain);
366
+ return this.createApiInstance(wsUrl, chain);
331
367
  }
332
- return resolveApi;
333
- }()
368
+ if (typeof apiConfig === 'string' || apiConfig instanceof Array) {
369
+ return this.createApiInstance(apiConfig, chain);
370
+ }
371
+ return Promise.resolve(apiConfig);
372
+ }
334
373
  }, {
335
374
  key: "createApiInstance",
336
- value: function () {
337
- var _createApiInstance = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(wsUrl, _chain) {
338
- var wsProvider;
339
- return _regenerator().w(function (_context3) {
340
- while (1) switch (_context3.n) {
341
- case 0:
342
- wsProvider = new WsProvider(wsUrl);
343
- return _context3.a(2, ApiPromise.create({
344
- provider: wsProvider
345
- }));
346
- }
347
- }, _callee3);
348
- }));
349
- function createApiInstance(_x5, _x6) {
350
- return _createApiInstance.apply(this, arguments);
351
- }
352
- return createApiInstance;
353
- }()
375
+ value: function createApiInstance(wsUrl, _chain) {
376
+ return leaseClient(wsUrl, this._ttlMs, false);
377
+ }
354
378
  }, {
355
379
  key: "accountToHex",
356
380
  value: function accountToHex(address) {
@@ -366,9 +390,9 @@ var PolkadotJsApi = /*#__PURE__*/function () {
366
390
  }
367
391
  }, {
368
392
  key: "convertToPjsCall",
369
- value: function convertToPjsCall(_ref) {
370
- var module = _ref.module,
371
- method = _ref.method;
393
+ value: function convertToPjsCall(_ref3) {
394
+ var module = _ref3.module,
395
+ method = _ref3.method;
372
396
  return {
373
397
  module: lowercaseFirstLetter(module),
374
398
  method: snakeToCamel(method)
@@ -404,7 +428,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
404
428
  }
405
429
  }, _callee4, this);
406
430
  }));
407
- function queryState(_x7) {
431
+ function queryState(_x4) {
408
432
  return _queryState.apply(this, arguments);
409
433
  }
410
434
  return queryState;
@@ -467,7 +491,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
467
491
  }
468
492
  }, _callee5);
469
493
  }));
470
- function calculateTransactionFee(_x8, _x9) {
494
+ function calculateTransactionFee(_x5, _x6) {
471
495
  return _calculateTransactionFee.apply(this, arguments);
472
496
  }
473
497
  return calculateTransactionFee;
@@ -478,11 +502,11 @@ var PolkadotJsApi = /*#__PURE__*/function () {
478
502
  var _quoteAhPrice = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(fromMl, toMl, amountIn) {
479
503
  var includeFee,
480
504
  quoted,
481
- _args6 = arguments;
505
+ _args4 = arguments;
482
506
  return _regenerator().w(function (_context6) {
483
507
  while (1) switch (_context6.n) {
484
508
  case 0:
485
- includeFee = _args6.length > 3 && _args6[3] !== undefined ? _args6[3] : true;
509
+ includeFee = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : true;
486
510
  _context6.n = 1;
487
511
  return this.api.call.assetConversionApi.quotePriceExactTokensForTokens(fromMl, toMl, amountIn.toString(), includeFee);
488
512
  case 1:
@@ -491,7 +515,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
491
515
  }
492
516
  }, _callee6, this);
493
517
  }));
494
- function quoteAhPrice(_x0, _x1, _x10) {
518
+ function quoteAhPrice(_x7, _x8, _x9) {
495
519
  return _quoteAhPrice.apply(this, arguments);
496
520
  }
497
521
  return quoteAhPrice;
@@ -544,7 +568,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
544
568
  }
545
569
  }, _callee7, this);
546
570
  }));
547
- function getFromRpc(_x11, _x12, _x13) {
571
+ function getFromRpc(_x0, _x1, _x10) {
548
572
  return _getFromRpc.apply(this, arguments);
549
573
  }
550
574
  return getFromRpc;
@@ -575,16 +599,16 @@ var PolkadotJsApi = /*#__PURE__*/function () {
575
599
  }
576
600
  }, _callee8);
577
601
  }));
578
- function createApiForChain(_x14) {
602
+ function createApiForChain(_x11) {
579
603
  return _createApiForChain.apply(this, arguments);
580
604
  }
581
605
  return createApiForChain;
582
606
  }()
583
607
  }, {
584
608
  key: "resolveDefaultFeeAsset",
585
- value: function resolveDefaultFeeAsset(_ref2) {
586
- var chain = _ref2.chain,
587
- feeAsset = _ref2.feeAsset;
609
+ value: function resolveDefaultFeeAsset(_ref4) {
610
+ var chain = _ref4.chain,
611
+ feeAsset = _ref4.feeAsset;
588
612
  return feeAsset !== null && feeAsset !== void 0 ? feeAsset : findNativeAssetInfoOrThrow(chain);
589
613
  }
590
614
  }, {
@@ -628,7 +652,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
628
652
  }
629
653
  }, _callee9, this);
630
654
  }));
631
- function resolveFeeAsset(_x15) {
655
+ function resolveFeeAsset(_x12) {
632
656
  return _resolveFeeAsset.apply(this, arguments);
633
657
  }
634
658
  return resolveFeeAsset;
@@ -681,7 +705,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
681
705
  case 5:
682
706
  resolvedFeeAsset = _context10.v;
683
707
  performDryRunCall = /*#__PURE__*/function () {
684
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0(includeVersion) {
708
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0(includeVersion) {
685
709
  var _this$api$call$dryRun;
686
710
  return _regenerator().w(function (_context0) {
687
711
  while (1) switch (_context0.n) {
@@ -690,8 +714,8 @@ var PolkadotJsApi = /*#__PURE__*/function () {
690
714
  }
691
715
  }, _callee0);
692
716
  }));
693
- return function performDryRunCall(_x17) {
694
- return _ref3.apply(this, arguments);
717
+ return function performDryRunCall(_x14) {
718
+ return _ref5.apply(this, arguments);
695
719
  };
696
720
  }();
697
721
  getExecutionSuccessFromResult = function getExecutionSuccessFromResult(resultHuman) {
@@ -699,7 +723,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
699
723
  return Boolean((resultHuman === null || resultHuman === void 0 ? void 0 : resultHuman.Ok) && ((_resultHuman$Ok$execu = resultHuman.Ok.executionResult) === null || _resultHuman$Ok$execu === void 0 ? void 0 : _resultHuman$Ok$execu.Ok));
700
724
  };
701
725
  extractFailureReasonFromResult = function extractFailureReasonFromResult(resultHuman, resultJson) {
702
- var _resultHuman$Ok, _resultHuman$Ok2, _resultJson$ok, _ref4;
726
+ var _resultHuman$Ok, _resultHuman$Ok2, _resultJson$ok, _ref6;
703
727
  var modErrHuman = resultHuman === null || resultHuman === void 0 || (_resultHuman$Ok = resultHuman.Ok) === null || _resultHuman$Ok === void 0 || (_resultHuman$Ok = _resultHuman$Ok.executionResult) === null || _resultHuman$Ok === void 0 || (_resultHuman$Ok = _resultHuman$Ok.Err) === null || _resultHuman$Ok === void 0 || (_resultHuman$Ok = _resultHuman$Ok.error) === null || _resultHuman$Ok === void 0 ? void 0 : _resultHuman$Ok.Module;
704
728
  if (modErrHuman) {
705
729
  return resolveModuleError(chain, modErrHuman);
@@ -720,7 +744,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
720
744
  };
721
745
  }
722
746
  return {
723
- failureReason: JSON.stringify((_ref4 = resultJson !== null && resultJson !== void 0 ? resultJson : resultHuman) !== null && _ref4 !== void 0 ? _ref4 : 'Unknown error')
747
+ failureReason: JSON.stringify((_ref6 = resultJson !== null && resultJson !== void 0 ? resultJson : resultHuman) !== null && _ref6 !== void 0 ? _ref6 : 'Unknown error')
724
748
  };
725
749
  }; // Attempt 1: WITHOUT version
726
750
  isSuccess = false;
@@ -810,15 +834,15 @@ var PolkadotJsApi = /*#__PURE__*/function () {
810
834
  } : undefined;
811
835
  nativeAsset = findNativeAssetInfoOrThrow(chain);
812
836
  hasLocation = feeAsset ? Boolean(feeAsset.location) : Boolean(nativeAsset === null || nativeAsset === void 0 ? void 0 : nativeAsset.location);
813
- destParaId = forwardedXcms.length === 0 ? undefined : function (i, _ref5) {
814
- return i.here === null ? 0 : (_ref5 = Array.isArray(i.x1) ? i.x1[0] : i.x1) === null || _ref5 === void 0 ? void 0 : _ref5.parachain;
837
+ destParaId = forwardedXcms.length === 0 ? undefined : function (i, _ref7) {
838
+ return i.here === null ? 0 : (_ref7 = Array.isArray(i.x1) ? i.x1[0] : i.x1) === null || _ref7 === void 0 ? void 0 : _ref7.parachain;
815
839
  }(Object.values(forwardedXcms[0])[0].interior);
816
840
  if (!(hasXcmPaymentApiSupport(chain) && resultJson.ok.local_xcm && hasLocation && (feeAsset || chain.startsWith('AssetHub') && destination === 'Ethereum') || resolvedFeeAsset.isCustomAsset)) {
817
841
  _context10.n = 21;
818
842
  break;
819
843
  }
820
844
  getPaymentInfoWeight = /*#__PURE__*/function () {
821
- var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1() {
845
+ var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1() {
822
846
  var _yield$tx$paymentInfo2, weight;
823
847
  return _regenerator().w(function (_context1) {
824
848
  while (1) switch (_context1.n) {
@@ -833,7 +857,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
833
857
  }, _callee1);
834
858
  }));
835
859
  return function getPaymentInfoWeight() {
836
- return _ref6.apply(this, arguments);
860
+ return _ref8.apply(this, arguments);
837
861
  };
838
862
  }();
839
863
  if (resultJson.ok.local_xcm) {
@@ -888,7 +912,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
888
912
  }
889
913
  }, _callee10, this, [[11, 13], [6, 8]]);
890
914
  }));
891
- function getDryRunCall(_x16) {
915
+ function getDryRunCall(_x13) {
892
916
  return _getDryRunCall.apply(this, arguments);
893
917
  }
894
918
  return getDryRunCall;
@@ -897,7 +921,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
897
921
  key: "getXcmPaymentApiFee",
898
922
  value: function () {
899
923
  var _getXcmPaymentApiFee = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee11(chain, localXcm, forwardedXcm, asset) {
900
- var _ref7, _deliveryFeeResJson$o, _deliveryFeeResJson$o2, _deliveryFeeResJson$o3, _ref8, _deliveryFeeResJson$o4, _deliveryFeeResJson$o5, _deliveryFeeResJson$o6;
924
+ var _ref9, _deliveryFeeResJson$o, _deliveryFeeResJson$o2, _deliveryFeeResJson$o3, _ref0, _deliveryFeeResJson$o4, _deliveryFeeResJson$o5, _deliveryFeeResJson$o6;
901
925
  var overridenWeight,
902
926
  weight,
903
927
  assetLocalizedLoc,
@@ -913,13 +937,13 @@ var PolkadotJsApi = /*#__PURE__*/function () {
913
937
  nativeAsset,
914
938
  deliveryFee,
915
939
  res,
916
- _args11 = arguments,
940
+ _args1 = arguments,
917
941
  _t5,
918
942
  _t6;
919
943
  return _regenerator().w(function (_context11) {
920
944
  while (1) switch (_context11.p = _context11.n) {
921
945
  case 0:
922
- overridenWeight = _args11.length > 5 ? _args11[5] : undefined;
946
+ overridenWeight = _args1.length > 5 ? _args1[5] : undefined;
923
947
  if (!(overridenWeight !== null && overridenWeight !== void 0)) {
924
948
  _context11.n = 1;
925
949
  break;
@@ -971,7 +995,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
971
995
  case 9:
972
996
  deliveryFeeRes = _t6;
973
997
  deliveryFeeResJson = deliveryFeeRes === null || deliveryFeeRes === void 0 ? void 0 : deliveryFeeRes.toJSON();
974
- deliveryFeeResolved = deliveryFeeRes && ((_ref7 = (_deliveryFeeResJson$o = (_deliveryFeeResJson$o2 = deliveryFeeResJson.ok) === null || _deliveryFeeResJson$o2 === void 0 ? void 0 : _deliveryFeeResJson$o2.v4) !== null && _deliveryFeeResJson$o !== void 0 ? _deliveryFeeResJson$o : (_deliveryFeeResJson$o3 = deliveryFeeResJson.ok) === null || _deliveryFeeResJson$o3 === void 0 ? void 0 : _deliveryFeeResJson$o3.v3) === null || _ref7 === void 0 ? void 0 : _ref7.length) > 0 ? BigInt((_ref8 = (_deliveryFeeResJson$o4 = deliveryFeeResJson === null || deliveryFeeResJson === void 0 || (_deliveryFeeResJson$o5 = deliveryFeeResJson.ok) === null || _deliveryFeeResJson$o5 === void 0 ? void 0 : _deliveryFeeResJson$o5.v4) !== null && _deliveryFeeResJson$o4 !== void 0 ? _deliveryFeeResJson$o4 : deliveryFeeResJson === null || deliveryFeeResJson === void 0 || (_deliveryFeeResJson$o6 = deliveryFeeResJson.ok) === null || _deliveryFeeResJson$o6 === void 0 ? void 0 : _deliveryFeeResJson$o6.v3) === null || _ref8 === void 0 || (_ref8 = _ref8[0]) === null || _ref8 === void 0 || (_ref8 = _ref8.fun) === null || _ref8 === void 0 ? void 0 : _ref8.fungible) : 0n;
998
+ deliveryFeeResolved = deliveryFeeRes && ((_ref9 = (_deliveryFeeResJson$o = (_deliveryFeeResJson$o2 = deliveryFeeResJson.ok) === null || _deliveryFeeResJson$o2 === void 0 ? void 0 : _deliveryFeeResJson$o2.v4) !== null && _deliveryFeeResJson$o !== void 0 ? _deliveryFeeResJson$o : (_deliveryFeeResJson$o3 = deliveryFeeResJson.ok) === null || _deliveryFeeResJson$o3 === void 0 ? void 0 : _deliveryFeeResJson$o3.v3) === null || _ref9 === void 0 ? void 0 : _ref9.length) > 0 ? BigInt((_ref0 = (_deliveryFeeResJson$o4 = deliveryFeeResJson === null || deliveryFeeResJson === void 0 || (_deliveryFeeResJson$o5 = deliveryFeeResJson.ok) === null || _deliveryFeeResJson$o5 === void 0 ? void 0 : _deliveryFeeResJson$o5.v4) !== null && _deliveryFeeResJson$o4 !== void 0 ? _deliveryFeeResJson$o4 : deliveryFeeResJson === null || deliveryFeeResJson === void 0 || (_deliveryFeeResJson$o6 = deliveryFeeResJson.ok) === null || _deliveryFeeResJson$o6 === void 0 ? void 0 : _deliveryFeeResJson$o6.v3) === null || _ref0 === void 0 || (_ref0 = _ref0[0]) === null || _ref0 === void 0 || (_ref0 = _ref0.fun) === null || _ref0 === void 0 ? void 0 : _ref0.fungible) : 0n;
975
999
  nativeAsset = findNativeAssetInfoOrThrow(chain);
976
1000
  if (!isAssetXcEqual(asset, nativeAsset)) {
977
1001
  _context11.n = 10;
@@ -999,7 +1023,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
999
1023
  }
1000
1024
  }, _callee11, this, [[10, 12]]);
1001
1025
  }));
1002
- function getXcmPaymentApiFee(_x18, _x19, _x20, _x21) {
1026
+ function getXcmPaymentApiFee(_x15, _x16, _x17, _x18) {
1003
1027
  return _getXcmPaymentApiFee.apply(this, arguments);
1004
1028
  }
1005
1029
  return getXcmPaymentApiFee;
@@ -1046,7 +1070,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
1046
1070
  }
1047
1071
  }, _callee12, this);
1048
1072
  }));
1049
- function getBridgeHubFallbackExecFee(_x22, _x23, _x24) {
1073
+ function getBridgeHubFallbackExecFee(_x19, _x20, _x21) {
1050
1074
  return _getBridgeHubFallbackExecFee.apply(this, arguments);
1051
1075
  }
1052
1076
  return getBridgeHubFallbackExecFee;
@@ -1068,7 +1092,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
1068
1092
  }
1069
1093
  }, _callee13, this);
1070
1094
  }));
1071
- function getXcmWeight(_x25) {
1095
+ function getXcmWeight(_x22) {
1072
1096
  return _getXcmWeight.apply(this, arguments);
1073
1097
  }
1074
1098
  return getXcmWeight;
@@ -1076,13 +1100,13 @@ var PolkadotJsApi = /*#__PURE__*/function () {
1076
1100
  }, {
1077
1101
  key: "getDryRunXcm",
1078
1102
  value: function () {
1079
- var _getDryRunXcm = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee14(_ref9) {
1080
- var _ref1, _ref10, _ref11;
1103
+ var _getDryRunXcm = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee14(_ref1) {
1104
+ var _ref11, _ref12, _ref13;
1081
1105
  var originLocation, xcm, asset, chain, origin, supportsDryRunApi, response, result, resultJson, isSuccess, error, failureReason, forwardedXcms, actualWeight, weight, destParaId, _fee, emitted, reversedEvents, palletsWithIssued, feeEvent, feeAmount, fee;
1082
1106
  return _regenerator().w(function (_context14) {
1083
1107
  while (1) switch (_context14.n) {
1084
1108
  case 0:
1085
- originLocation = _ref9.originLocation, xcm = _ref9.xcm, asset = _ref9.asset, chain = _ref9.chain, origin = _ref9.origin;
1109
+ originLocation = _ref1.originLocation, xcm = _ref1.xcm, asset = _ref1.asset, chain = _ref1.chain, origin = _ref1.origin;
1086
1110
  supportsDryRunApi = getAssetsObject(chain).supportsDryRunApi;
1087
1111
  if (supportsDryRunApi) {
1088
1112
  _context14.n = 1;
@@ -1115,8 +1139,8 @@ var PolkadotJsApi = /*#__PURE__*/function () {
1115
1139
  refTime: BigInt(actualWeight.refTime),
1116
1140
  proofSize: BigInt(actualWeight.proofSize)
1117
1141
  } : undefined;
1118
- destParaId = forwardedXcms.length === 0 ? undefined : function (i, _ref0) {
1119
- return i.Here ? 0 : (_ref0 = Array.isArray(i.x1) ? i.x1[0] : i.x1) === null || _ref0 === void 0 ? void 0 : _ref0.parachain;
1142
+ destParaId = forwardedXcms.length === 0 ? undefined : function (i, _ref10) {
1143
+ return i.Here ? 0 : (_ref10 = Array.isArray(i.x1) ? i.x1[0] : i.x1) === null || _ref10 === void 0 ? void 0 : _ref10.parachain;
1120
1144
  }(Object.values(forwardedXcms[0])[0].interior);
1121
1145
  if (!(hasXcmPaymentApiSupport(chain) && asset)) {
1122
1146
  _context14.n = 5;
@@ -1142,17 +1166,17 @@ var PolkadotJsApi = /*#__PURE__*/function () {
1142
1166
  emitted = result.Ok.emittedEvents; // We want to look for the last event
1143
1167
  reversedEvents = _toConsumableArray(emitted).reverse();
1144
1168
  palletsWithIssued = ['balances', 'foreignAssets', 'assets'];
1145
- feeEvent = (_ref1 = (_ref10 = (_ref11 = origin === 'Mythos' ? reversedEvents.find(function (event) {
1169
+ feeEvent = (_ref11 = (_ref12 = (_ref13 = origin === 'Mythos' ? reversedEvents.find(function (event) {
1146
1170
  return event.section === 'assetConversion' && event.method === 'SwapCreditExecuted';
1147
- }) : undefined) !== null && _ref11 !== void 0 ? _ref11 :
1171
+ }) : undefined) !== null && _ref13 !== void 0 ? _ref13 :
1148
1172
  // Prefer an Issued event
1149
1173
  reversedEvents.find(function (event) {
1150
1174
  return palletsWithIssued.includes(event.section) && event.method === 'Issued';
1151
- })) !== null && _ref10 !== void 0 ? _ref10 :
1175
+ })) !== null && _ref12 !== void 0 ? _ref12 :
1152
1176
  // Fallback to Minted event
1153
1177
  reversedEvents.find(function (event) {
1154
1178
  return ['balances', 'foreignAssets'].includes(event.section) && event.method === 'Minted';
1155
- })) !== null && _ref1 !== void 0 ? _ref1 : reversedEvents.find(function (event) {
1179
+ })) !== null && _ref11 !== void 0 ? _ref11 : reversedEvents.find(function (event) {
1156
1180
  return ['currencies', 'tokens'].includes(event.section) && event.method === 'Deposited';
1157
1181
  });
1158
1182
  if (feeEvent) {
@@ -1178,7 +1202,7 @@ var PolkadotJsApi = /*#__PURE__*/function () {
1178
1202
  }
1179
1203
  }, _callee14, this);
1180
1204
  }));
1181
- function getDryRunXcm(_x26) {
1205
+ function getDryRunXcm(_x23) {
1182
1206
  return _getDryRunXcm.apply(this, arguments);
1183
1207
  }
1184
1208
  return getDryRunXcm;
@@ -1216,45 +1240,27 @@ var PolkadotJsApi = /*#__PURE__*/function () {
1216
1240
  }
1217
1241
  }, {
1218
1242
  key: "disconnect",
1219
- value: function () {
1220
- var _disconnect = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee16() {
1221
- var _this$_config$apiOver2;
1222
- var force,
1223
- api,
1224
- _args16 = arguments;
1225
- return _regenerator().w(function (_context16) {
1226
- while (1) switch (_context16.n) {
1227
- case 0:
1228
- force = _args16.length > 0 && _args16[0] !== undefined ? _args16[0] : false;
1229
- if (this.initialized) {
1230
- _context16.n = 1;
1231
- break;
1232
- }
1233
- return _context16.a(2, Promise.resolve());
1234
- case 1:
1235
- if (!(!force && !this.disconnectAllowed)) {
1236
- _context16.n = 2;
1237
- break;
1238
- }
1239
- return _context16.a(2);
1240
- case 2:
1241
- api = isConfig(this._config) ? (_this$_config$apiOver2 = this._config.apiOverrides) === null || _this$_config$apiOver2 === void 0 ? void 0 : _this$_config$apiOver2[this._chain] : this._config; // Disconnect api only if it was created automatically
1242
- if (!(force || typeof api === 'string' || api === undefined)) {
1243
- _context16.n = 3;
1244
- break;
1245
- }
1246
- _context16.n = 3;
1247
- return this.api.disconnect();
1248
- case 3:
1249
- return _context16.a(2);
1250
- }
1251
- }, _callee16, this);
1252
- }));
1253
- function disconnect() {
1254
- return _disconnect.apply(this, arguments);
1243
+ value: function disconnect() {
1244
+ var _this$_config$apiOver2;
1245
+ var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1246
+ if (!this.initialized) return Promise.resolve();
1247
+ if (!force && !this.disconnectAllowed) return Promise.resolve();
1248
+ var api = isConfig(this._config) ? (_this$_config$apiOver2 = this._config.apiOverrides) === null || _this$_config$apiOver2 === void 0 ? void 0 : _this$_config$apiOver2[this._chain] : this._config;
1249
+ // Own client provided, destroy only if force true
1250
+ if (force && _typeof(api) === 'object') {
1251
+ void this.api.disconnect();
1255
1252
  }
1256
- return disconnect;
1257
- }()
1253
+ // Client created automatically
1254
+ if (typeof api === 'string' || Array.isArray(api) || api === undefined) {
1255
+ if (force) {
1256
+ void this.api.disconnect();
1257
+ } else {
1258
+ var key = api === undefined ? getChainProviders(this._chain) : api;
1259
+ releaseClient(key);
1260
+ }
1261
+ }
1262
+ return Promise.resolve();
1263
+ }
1258
1264
  }, {
1259
1265
  key: "validateSubstrateAddress",
1260
1266
  value: function validateSubstrateAddress(address) {
@@ -1265,6 +1271,35 @@ var PolkadotJsApi = /*#__PURE__*/function () {
1265
1271
  return false;
1266
1272
  }
1267
1273
  }
1274
+ }, {
1275
+ key: "deriveAddress",
1276
+ value: function deriveAddress(path) {
1277
+ var _createKeyringPair = createKeyringPair(path),
1278
+ address = _createKeyringPair.address;
1279
+ return address;
1280
+ }
1281
+ }, {
1282
+ key: "signAndSubmit",
1283
+ value: function () {
1284
+ var _signAndSubmit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee16(tx, path) {
1285
+ var pair, hash;
1286
+ return _regenerator().w(function (_context16) {
1287
+ while (1) switch (_context16.n) {
1288
+ case 0:
1289
+ pair = createKeyringPair(path);
1290
+ _context16.n = 1;
1291
+ return tx.signAndSend(pair);
1292
+ case 1:
1293
+ hash = _context16.v;
1294
+ return _context16.a(2, hash.toHex());
1295
+ }
1296
+ }, _callee16);
1297
+ }));
1298
+ function signAndSubmit(_x24, _x25) {
1299
+ return _signAndSubmit.apply(this, arguments);
1300
+ }
1301
+ return signAndSubmit;
1302
+ }()
1268
1303
  }]);
1269
1304
  }();
1270
1305
 
@@ -1310,28 +1345,28 @@ var getBalance = createPolkadotJsApiCall(getBalance$1);
1310
1345
  var claimAssets = createPolkadotJsApiCall(claimAssets$1);
1311
1346
 
1312
1347
  var assets = /*#__PURE__*/Object.freeze({
1313
- __proto__: null,
1314
- Foreign: Foreign,
1315
- ForeignAbstract: ForeignAbstract,
1316
- Native: Native,
1317
- Override: Override,
1318
- claimAssets: claimAssets,
1319
- findAssetInfo: findAssetInfo,
1320
- getAllAssetsSymbols: getAllAssetsSymbols,
1321
- getAssetDecimals: getAssetDecimals,
1322
- getAssetId: getAssetId,
1323
- getAssets: getAssets,
1324
- getAssetsObject: getAssetsObject,
1325
- getBalance: getBalance,
1326
- getExistentialDeposit: getExistentialDeposit,
1327
- getNativeAssetSymbol: getNativeAssetSymbol,
1328
- getNativeAssets: getNativeAssets,
1329
- getOtherAssets: getOtherAssets,
1330
- getRelayChainSymbol: getRelayChainSymbol,
1331
- getSupportedAssets: getSupportedAssets,
1332
- getTChain: getTChain,
1333
- hasSupportForAsset: hasSupportForAsset,
1334
- isChainEvm: isChainEvm
1348
+ __proto__: null,
1349
+ Foreign: Foreign,
1350
+ ForeignAbstract: ForeignAbstract,
1351
+ Native: Native,
1352
+ Override: Override,
1353
+ claimAssets: claimAssets,
1354
+ findAssetInfo: findAssetInfo,
1355
+ getAllAssetsSymbols: getAllAssetsSymbols,
1356
+ getAssetDecimals: getAssetDecimals,
1357
+ getAssetId: getAssetId,
1358
+ getAssets: getAssets,
1359
+ getAssetsObject: getAssetsObject,
1360
+ getBalance: getBalance,
1361
+ getExistentialDeposit: getExistentialDeposit,
1362
+ getNativeAssetSymbol: getNativeAssetSymbol,
1363
+ getNativeAssets: getNativeAssets,
1364
+ getOtherAssets: getOtherAssets,
1365
+ getRelayChainSymbol: getRelayChainSymbol,
1366
+ getSupportedAssets: getSupportedAssets,
1367
+ getTChain: getTChain,
1368
+ hasSupportForAsset: hasSupportForAsset,
1369
+ isChainEvm: isChainEvm
1335
1370
  });
1336
1371
 
1337
1372
  var convertSs58 = function convertSs58(address, chain) {
@@ -1871,16 +1906,16 @@ var getBridgeStatus = /*#__PURE__*/function () {
1871
1906
  }();
1872
1907
 
1873
1908
  var transfer = /*#__PURE__*/Object.freeze({
1874
- __proto__: null,
1875
- approveToken: approveToken,
1876
- depositToken: depositToken,
1877
- dryRun: dryRun,
1878
- dryRunOrigin: dryRunOrigin,
1879
- getBridgeStatus: getBridgeStatus,
1880
- getParaEthTransferFees: getParaEthTransferFees,
1881
- getTokenBalance: getTokenBalance,
1882
- send: send,
1883
- transferEthToPolkadot: transferEthToPolkadot
1909
+ __proto__: null,
1910
+ approveToken: approveToken,
1911
+ depositToken: depositToken,
1912
+ dryRun: dryRun,
1913
+ dryRunOrigin: dryRunOrigin,
1914
+ getBridgeStatus: getBridgeStatus,
1915
+ getParaEthTransferFees: getParaEthTransferFees,
1916
+ getTokenBalance: getTokenBalance,
1917
+ send: send,
1918
+ transferEthToPolkadot: transferEthToPolkadot
1884
1919
  });
1885
1920
 
1886
1921
  export { Builder, EvmBuilder, approveToken, assets, claimAssets, convertSs58, createChainClient, depositToken, dryRun, dryRunOrigin, getBalance, getBridgeStatus, getParaEthTransferFees, getTokenBalance, send, transferEthToPolkadot, transfer as xcmPallet };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraspell/sdk-pjs",
3
- "version": "12.1.2",
3
+ "version": "12.2.1",
4
4
  "description": "Polkadot.js based SDK for ParaSpell XCM/XCMP tool for developers",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,7 +27,7 @@
27
27
  "@snowbridge/contract-types": "0.2.20",
28
28
  "ethers": "6.15.0",
29
29
  "viem": "2.40.3",
30
- "@paraspell/sdk-core": "12.1.2"
30
+ "@paraspell/sdk-core": "12.2.1"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "@polkadot/api": ">= 16.0 < 17",