@paraspell/sdk-core 11.12.5 → 11.12.7

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
@@ -849,6 +849,7 @@ var isConfig = function isConfig(value) {
849
849
  };
850
850
 
851
851
  var computeOverridenAmount = function computeOverridenAmount(options, increaseAmount) {
852
+ var relative = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
852
853
  var from = options.from,
853
854
  to = options.to,
854
855
  currency = options.currency,
@@ -856,21 +857,23 @@ var computeOverridenAmount = function computeOverridenAmount(options, increaseAm
856
857
  var amount = options.currency.amount;
857
858
  var config = api.getConfig();
858
859
  if (isConfig(config) && config.abstractDecimals && typeof amount !== 'bigint') {
859
- return Number(increaseAmount) + Number(amount);
860
+ var base = relative ? Number(amount) : 0;
861
+ return Number(increaseAmount) + base;
860
862
  } else {
861
863
  assertToIsString(to);
862
864
  var asset = assets.findAssetInfoOrThrow(from, currency, to);
863
- return parseUnits(increaseAmount, asset.decimals) + BigInt(amount);
865
+ var _base = relative ? BigInt(amount) : 0n;
866
+ return parseUnits(increaseAmount, asset.decimals) + _base;
864
867
  }
865
868
  };
866
869
  var overrideTxAmount = /*#__PURE__*/function () {
867
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options, builder, amount) {
870
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options, builder, amount, relative) {
868
871
  var modifiedBuilder, _yield$modifiedBuilde, tx;
869
872
  return _regenerator().w(function (_context) {
870
873
  while (1) switch (_context.n) {
871
874
  case 0:
872
875
  modifiedBuilder = builder.currency(_objectSpread2(_objectSpread2({}, options.currency), {}, {
873
- amount: computeOverridenAmount(options, amount)
876
+ amount: computeOverridenAmount(options, amount, relative)
874
877
  }));
875
878
  _context.n = 1;
876
879
  return modifiedBuilder['buildInternal']();
@@ -881,12 +884,12 @@ var overrideTxAmount = /*#__PURE__*/function () {
881
884
  }
882
885
  }, _callee);
883
886
  }));
884
- return function overrideTxAmount(_x, _x2, _x3) {
887
+ return function overrideTxAmount(_x, _x2, _x3, _x4) {
885
888
  return _ref.apply(this, arguments);
886
889
  };
887
890
  }();
888
891
  var createTx = /*#__PURE__*/function () {
889
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options, builder, amount) {
892
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options, builder, amount, relative) {
890
893
  var _yield$builder$buildI, tx;
891
894
  return _regenerator().w(function (_context2) {
892
895
  while (1) switch (_context2.n) {
@@ -903,13 +906,13 @@ var createTx = /*#__PURE__*/function () {
903
906
  return _context2.a(2, tx);
904
907
  case 2:
905
908
  _context2.n = 3;
906
- return overrideTxAmount(options, builder, amount);
909
+ return overrideTxAmount(options, builder, amount, relative);
907
910
  case 3:
908
911
  return _context2.a(2, _context2.v);
909
912
  }
910
913
  }, _callee2);
911
914
  }));
912
- return function createTx(_x4, _x5, _x6) {
915
+ return function createTx(_x5, _x6, _x7, _x8) {
913
916
  return _ref2.apply(this, arguments);
914
917
  };
915
918
  }();
@@ -4527,15 +4530,20 @@ var resolveAsset = function resolveAsset(currency, origin, destination, assetChe
4527
4530
  };
4528
4531
 
4529
4532
  var resolveHopAsset = function resolveHopAsset(_ref) {
4530
- var _asset$location, _findAssetInfoOnDest;
4531
- var originChain = _ref.originChain,
4533
+ var _findAssetInfoOnDest;
4534
+ var api = _ref.api,
4535
+ tx = _ref.tx,
4536
+ originChain = _ref.originChain,
4532
4537
  currentChain = _ref.currentChain,
4538
+ destination = _ref.destination,
4533
4539
  swapConfig = _ref.swapConfig,
4534
4540
  asset = _ref.asset,
4535
4541
  hasPassedExchange = _ref.hasPassedExchange,
4536
4542
  currency = _ref.currency;
4537
- var isExternalAsset = ((_asset$location = asset.location) === null || _asset$location === void 0 ? void 0 : _asset$location.parents) === sdkCommon.Parents.TWO;
4538
- if (isExternalAsset) {
4543
+ var isRelayAssetIncluded = api.getTypeThenAssetCount(tx) === 2;
4544
+ var isSubBridge = !sdkCommon.isTLocation(destination) && sdkCommon.isSubstrateBridge(originChain, destination);
4545
+ var useRelayAssetAsFee = destination === 'Ethereum' || isSubBridge || isRelayAssetIncluded;
4546
+ if (useRelayAssetAsFee) {
4539
4547
  return assets.findNativeAssetInfoOrThrow(getRelayChainOf(currentChain));
4540
4548
  }
4541
4549
  if (hasPassedExchange && swapConfig && currentChain !== swapConfig.exchangeChain) {
@@ -5558,8 +5566,11 @@ var dryRunInternal = /*#__PURE__*/function () {
5558
5566
  case 0:
5559
5567
  hopApi = params.api, currentChain = params.currentChain, currentOrigin = params.currentOrigin, currentAsset = params.currentAsset, forwardedXcms = params.forwardedXcms, hasPassedExchange = params.hasPassedExchange;
5560
5568
  hopAsset = resolveHopAsset({
5569
+ api: api,
5570
+ tx: tx,
5561
5571
  originChain: origin,
5562
5572
  currentChain: currentChain,
5573
+ destination: destination,
5563
5574
  asset: currentAsset,
5564
5575
  currency: currency,
5565
5576
  swapConfig: swapConfig,
@@ -9356,6 +9367,16 @@ var Manta = /*#__PURE__*/function (_Parachain) {
9356
9367
  };
9357
9368
  return transferXTokens(input, currencySelection);
9358
9369
  }
9370
+ }, {
9371
+ key: "isSendingTempDisabled",
9372
+ value: function isSendingTempDisabled(_options) {
9373
+ return true;
9374
+ }
9375
+ }, {
9376
+ key: "isReceivingTempDisabled",
9377
+ value: function isReceivingTempDisabled(_scenario) {
9378
+ return true;
9379
+ }
9359
9380
  }, {
9360
9381
  key: "transferLocalNonNativeAsset",
9361
9382
  value: function transferLocalNonNativeAsset(options) {
@@ -10646,14 +10667,16 @@ var CurrenciesPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
10646
10667
  key: "mint",
10647
10668
  value: function mint(address, asset, balance, chain) {
10648
10669
  var isKarura = chain.startsWith('Karura');
10649
- var id = isKarura ? getChain('Karura').getCurrencySelection(asset) : (assertHasId(asset), Number(asset.assetId));
10670
+ var isAcala = chain.startsWith('Acala');
10671
+ var isAcalaLike = isKarura || isAcala;
10672
+ var id = isAcalaLike ? getChain(isKarura ? 'Karura' : 'Acala').getCurrencySelection(asset) : (assertHasId(asset), Number(asset.assetId));
10650
10673
  var amount = asset.amount;
10651
10674
  return Promise.resolve({
10652
10675
  balanceTx: {
10653
10676
  module: this.palletName,
10654
10677
  method: 'update_balance',
10655
10678
  parameters: {
10656
- who: isKarura ? {
10679
+ who: isAcalaLike ? {
10657
10680
  Id: address
10658
10681
  } : address,
10659
10682
  currency_id: id,
@@ -10773,6 +10796,20 @@ var SystemPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
10773
10796
  }]);
10774
10797
  }(BaseAssetsPallet);
10775
10798
 
10799
+ var resolveId = function resolveId(asset, chain) {
10800
+ var isBifrost = chain.startsWith('Bifrost');
10801
+ if (isBifrost) {
10802
+ var _asset$assetId;
10803
+ var isEthAsset = assets.isForeignAsset(asset) && ((_asset$assetId = asset.assetId) === null || _asset$assetId === void 0 ? void 0 : _asset$assetId.startsWith('0x'));
10804
+ var resolvedAsset = isEthAsset && asset.location ? assets.findAssetInfoOrThrow(chain, {
10805
+ location: asset.location
10806
+ }, null) : asset;
10807
+ return getChain('BifrostPolkadot').getCurrencySelection(resolvedAsset);
10808
+ } else {
10809
+ assertHasId(asset);
10810
+ return asset.assetId;
10811
+ }
10812
+ };
10776
10813
  var TokensPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
10777
10814
  function TokensPallet() {
10778
10815
  _classCallCheck(this, TokensPallet);
@@ -10784,7 +10821,7 @@ var TokensPallet = /*#__PURE__*/function (_BaseAssetsPallet) {
10784
10821
  value: function mint(address, asset, balance, chain) {
10785
10822
  var isBifrost = chain.startsWith('Bifrost');
10786
10823
  if (!isBifrost) assertHasId(asset);
10787
- var id = isBifrost ? getChain('BifrostPolkadot').getCurrencySelection(asset) : (assertHasId(asset), asset.assetId);
10824
+ var id = resolveId(asset, chain);
10788
10825
  var amount = asset.amount;
10789
10826
  return Promise.resolve({
10790
10827
  balanceTx: {
@@ -11022,130 +11059,212 @@ var wrapTxBypass = /*#__PURE__*/function () {
11022
11059
  };
11023
11060
  }();
11024
11061
 
11062
+ var MAX_INCREASE_RETRIES = 5;
11063
+ var INCREASE_BUMP_STEP = 100;
11064
+ var DECREASE_START_AMOUNT = 1;
11065
+ var MAX_DECREASE_RETRIES = 5;
11066
+ var DECREASE_DIVIDE_FACTOR = 5;
11067
+ var FAILED_TO_TRANSACT_ASSET = 'FailedToTransactAsset';
11025
11068
  var getBypassResultWithRetries = /*#__PURE__*/function () {
11026
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options, internalFn, initialTx) {
11069
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(options, internalFn, initialTx) {
11027
11070
  var maxRetries,
11028
11071
  bumpStep,
11029
- hasError,
11072
+ getResultError,
11073
+ isFailedToTransact,
11074
+ isAmountTooLow,
11075
+ attempt,
11076
+ retryWithReducedAmount,
11030
11077
  first,
11031
- result,
11032
11078
  i,
11033
11079
  amount,
11034
- bumpedTx,
11035
- _args = arguments,
11036
- _t,
11080
+ res,
11081
+ err,
11082
+ _args3 = arguments,
11037
11083
  _t2,
11038
11084
  _t3;
11039
- return _regenerator().w(function (_context) {
11040
- while (1) switch (_context.p = _context.n) {
11085
+ return _regenerator().w(function (_context3) {
11086
+ while (1) switch (_context3.p = _context3.n) {
11041
11087
  case 0:
11042
- maxRetries = _args.length > 3 && _args[3] !== undefined ? _args[3] : 5;
11043
- bumpStep = _args.length > 4 && _args[4] !== undefined ? _args[4] : 100;
11044
- hasError = function hasError(res) {
11045
- return 'failureReason' in res ? !!res.failureReason : 'dryRunError' in res ? !!res.dryRunError : false;
11088
+ maxRetries = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : MAX_INCREASE_RETRIES;
11089
+ bumpStep = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : INCREASE_BUMP_STEP;
11090
+ getResultError = function getResultError(res) {
11091
+ return 'failureReason' in res ? res.failureReason : 'dryRunError' in res ? res.dryRunError : undefined;
11046
11092
  };
11093
+ isFailedToTransact = function isFailedToTransact(res) {
11094
+ return 'failureReason' in res && res.failureReason === FAILED_TO_TRANSACT_ASSET;
11095
+ };
11096
+ isAmountTooLow = function isAmountTooLow(e) {
11097
+ return e instanceof AmountTooLowError;
11098
+ };
11099
+ attempt = /*#__PURE__*/function () {
11100
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(amount, relative) {
11101
+ var tx;
11102
+ return _regenerator().w(function (_context) {
11103
+ while (1) switch (_context.n) {
11104
+ case 0:
11105
+ _context.n = 1;
11106
+ return options.buildTx(amount, relative);
11107
+ case 1:
11108
+ tx = _context.v;
11109
+ return _context.a(2, internalFn(_objectSpread2(_objectSpread2({}, options), {}, {
11110
+ tx: tx,
11111
+ useRootOrigin: true
11112
+ })));
11113
+ }
11114
+ }, _callee);
11115
+ }));
11116
+ return function attempt(_x4, _x5) {
11117
+ return _ref2.apply(this, arguments);
11118
+ };
11119
+ }();
11120
+ retryWithReducedAmount = /*#__PURE__*/function () {
11121
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
11122
+ var start,
11123
+ divide,
11124
+ amount,
11125
+ attemptIdx,
11126
+ res,
11127
+ err,
11128
+ _args2 = arguments,
11129
+ _t;
11130
+ return _regenerator().w(function (_context2) {
11131
+ while (1) switch (_context2.p = _context2.n) {
11132
+ case 0:
11133
+ start = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : DECREASE_START_AMOUNT;
11134
+ divide = function divide(v) {
11135
+ var next = v / DECREASE_DIVIDE_FACTOR;
11136
+ return next > 0 ? next : 1;
11137
+ };
11138
+ amount = divide(start);
11139
+ attemptIdx = 0;
11140
+ case 1:
11141
+ if (!(attemptIdx < MAX_DECREASE_RETRIES && amount > 0)) {
11142
+ _context2.n = 9;
11143
+ break;
11144
+ }
11145
+ _context2.p = 2;
11146
+ _context2.n = 3;
11147
+ return attempt(amount.toString(), false);
11148
+ case 3:
11149
+ res = _context2.v;
11150
+ err = getResultError(res);
11151
+ if (err) {
11152
+ _context2.n = 4;
11153
+ break;
11154
+ }
11155
+ return _context2.a(2, res);
11156
+ case 4:
11157
+ if (!isFailedToTransact(res)) {
11158
+ _context2.n = 5;
11159
+ break;
11160
+ }
11161
+ amount = divide(amount);
11162
+ return _context2.a(3, 8);
11163
+ case 5:
11164
+ return _context2.a(2, res);
11165
+ case 6:
11166
+ _context2.p = 6;
11167
+ _t = _context2.v;
11168
+ if (!isAmountTooLow(_t)) {
11169
+ _context2.n = 7;
11170
+ break;
11171
+ }
11172
+ amount = divide(amount);
11173
+ return _context2.a(3, 8);
11174
+ case 7:
11175
+ throw _t;
11176
+ case 8:
11177
+ attemptIdx++;
11178
+ _context2.n = 1;
11179
+ break;
11180
+ case 9:
11181
+ return _context2.a(2, attempt(amount.toString(), false));
11182
+ }
11183
+ }, _callee2, null, [[2, 6]]);
11184
+ }));
11185
+ return function retryWithReducedAmount() {
11186
+ return _ref3.apply(this, arguments);
11187
+ };
11188
+ }();
11047
11189
  if (!initialTx) {
11048
- _context.n = 5;
11190
+ _context3.n = 5;
11049
11191
  break;
11050
11192
  }
11051
- _context.p = 1;
11052
- _context.n = 2;
11193
+ _context3.p = 1;
11194
+ _context3.n = 2;
11053
11195
  return internalFn(_objectSpread2(_objectSpread2({}, options), {}, {
11054
11196
  tx: initialTx,
11055
11197
  useRootOrigin: true
11056
11198
  }));
11057
11199
  case 2:
11058
- first = _context.v;
11059
- if (hasError(first)) {
11060
- _context.n = 3;
11200
+ first = _context3.v;
11201
+ if (getResultError(first)) {
11202
+ _context3.n = 3;
11061
11203
  break;
11062
11204
  }
11063
- return _context.a(2, first);
11205
+ return _context3.a(2, first);
11064
11206
  case 3:
11065
- _context.n = 5;
11207
+ _context3.n = 5;
11066
11208
  break;
11067
11209
  case 4:
11068
- _context.p = 4;
11069
- _t = _context.v;
11070
- if (_t instanceof AmountTooLowError) {
11071
- _context.n = 5;
11210
+ _context3.p = 4;
11211
+ _t2 = _context3.v;
11212
+ if (isAmountTooLow(_t2)) {
11213
+ _context3.n = 5;
11072
11214
  break;
11073
11215
  }
11074
- throw _t;
11216
+ throw _t2;
11075
11217
  case 5:
11076
- result = null;
11077
11218
  i = 1;
11078
11219
  case 6:
11079
11220
  if (!(i <= maxRetries)) {
11080
- _context.n = 19;
11221
+ _context3.n = 15;
11081
11222
  break;
11082
11223
  }
11083
- amount = (bumpStep * i).toString();
11084
- bumpedTx = void 0;
11085
- _context.p = 7;
11086
- _context.n = 8;
11087
- return options.buildTx(amount);
11224
+ amount = bumpStep * i;
11225
+ _context3.p = 7;
11226
+ _context3.n = 8;
11227
+ return attempt(amount.toString());
11088
11228
  case 8:
11089
- bumpedTx = _context.v;
11090
- _context.n = 12;
11091
- break;
11092
- case 9:
11093
- _context.p = 9;
11094
- _t2 = _context.v;
11095
- if (!(_t2 instanceof AmountTooLowError)) {
11096
- _context.n = 11;
11229
+ res = _context3.v;
11230
+ err = getResultError(res);
11231
+ if (err) {
11232
+ _context3.n = 9;
11097
11233
  break;
11098
11234
  }
11099
- if (!(i === maxRetries)) {
11100
- _context.n = 10;
11235
+ return _context3.a(2, res);
11236
+ case 9:
11237
+ if (!isFailedToTransact(res)) {
11238
+ _context3.n = 10;
11101
11239
  break;
11102
11240
  }
11103
- throw _t2;
11241
+ return _context3.a(2, retryWithReducedAmount(DECREASE_START_AMOUNT));
11104
11242
  case 10:
11105
- return _context.a(3, 18);
11243
+ return _context3.a(3, 14);
11106
11244
  case 11:
11107
- throw _t2;
11108
- case 12:
11109
- _context.p = 12;
11110
- _context.n = 13;
11111
- return internalFn(_objectSpread2(_objectSpread2({}, options), {}, {
11112
- tx: bumpedTx,
11113
- useRootOrigin: true
11114
- }));
11115
- case 13:
11116
- result = _context.v;
11117
- if (hasError(result)) {
11118
- _context.n = 14;
11119
- break;
11120
- }
11121
- return _context.a(2, result);
11122
- case 14:
11123
- _context.n = 18;
11124
- break;
11125
- case 15:
11126
- _context.p = 15;
11127
- _t3 = _context.v;
11128
- if (!(_t3 instanceof AmountTooLowError)) {
11129
- _context.n = 17;
11245
+ _context3.p = 11;
11246
+ _t3 = _context3.v;
11247
+ if (!isAmountTooLow(_t3)) {
11248
+ _context3.n = 13;
11130
11249
  break;
11131
11250
  }
11132
11251
  if (!(i === maxRetries)) {
11133
- _context.n = 16;
11252
+ _context3.n = 12;
11134
11253
  break;
11135
11254
  }
11136
11255
  throw _t3;
11137
- case 16:
11138
- return _context.a(3, 18);
11139
- case 17:
11256
+ case 12:
11257
+ return _context3.a(3, 14);
11258
+ case 13:
11140
11259
  throw _t3;
11141
- case 18:
11260
+ case 14:
11142
11261
  i++;
11143
- _context.n = 6;
11262
+ _context3.n = 6;
11144
11263
  break;
11145
- case 19:
11146
- return _context.a(2, result);
11264
+ case 15:
11265
+ return _context3.a(2, attempt(String(bumpStep * maxRetries)));
11147
11266
  }
11148
- }, _callee, null, [[12, 15], [7, 9], [1, 4]]);
11267
+ }, _callee3, null, [[7, 11], [1, 4]]);
11149
11268
  }));
11150
11269
  return function getBypassResultWithRetries(_x, _x2, _x3) {
11151
11270
  return _ref.apply(this, arguments);
@@ -11506,8 +11625,11 @@ var getXcmFeeInternal = /*#__PURE__*/function () {
11506
11625
  case 0:
11507
11626
  hopApi = params.api, currentChain = params.currentChain, currentOrigin = params.currentOrigin, currentAsset = params.currentAsset, forwardedXcms = params.forwardedXcms, hasPassedExchange = params.hasPassedExchange;
11508
11627
  hopAsset = resolveHopAsset({
11628
+ api: api,
11629
+ tx: tx,
11509
11630
  originChain: origin,
11510
11631
  currentChain: currentChain,
11632
+ destination: destination,
11511
11633
  asset: currentAsset,
11512
11634
  currency: currency,
11513
11635
  swapConfig: swapConfig,
@@ -12716,35 +12838,45 @@ var buildTypeAndThenCall = function buildTypeAndThenCall(_ref, isDotAsset, custo
12716
12838
  };
12717
12839
 
12718
12840
  var FEE_PADDING_PERCENTAGE = 20;
12841
+ var FEE_ETH_ASSET_PADDING_PERCENTAGE = 100;
12719
12842
  var FEE_PADDING_HYDRATION = 500;
12843
+ var getPadding = function getPadding(chain, _ref) {
12844
+ var assetInfo = _ref.assetInfo,
12845
+ dest = _ref.dest;
12846
+ var isEthAsset = assetInfo.location && assets.findAssetInfoByLoc(assets.getOtherAssets('Ethereum'), assetInfo.location);
12847
+ if (chain === 'Hydration') return FEE_PADDING_HYDRATION;
12848
+ if (isEthAsset && dest.chain.startsWith('AssetHub')) return FEE_ETH_ASSET_PADDING_PERCENTAGE;
12849
+ return FEE_PADDING_PERCENTAGE;
12850
+ };
12720
12851
  var computeInstructionFee = /*#__PURE__*/function () {
12721
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref, version, xcm) {
12722
- var chain, api, _t;
12852
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref2, version, xcm, context) {
12853
+ var chain, api, padding, _t;
12723
12854
  return _regenerator().w(function (_context) {
12724
12855
  while (1) switch (_context.n) {
12725
12856
  case 0:
12726
- chain = _ref.chain, api = _ref.api;
12857
+ chain = _ref2.chain, api = _ref2.api;
12858
+ padding = getPadding(chain, context);
12727
12859
  _t = padValueBy;
12728
12860
  _context.n = 1;
12729
12861
  return api.getXcmPaymentApiFee(chain, addXcmVersionHeader(xcm, version), [], {
12730
12862
  location: DOT_LOCATION
12731
12863
  }, true);
12732
12864
  case 1:
12733
- return _context.a(2, _t(_context.v, chain === 'Hydration' ? FEE_PADDING_HYDRATION : FEE_PADDING_PERCENTAGE));
12865
+ return _context.a(2, _t(_context.v, padding));
12734
12866
  }
12735
12867
  }, _callee);
12736
12868
  }));
12737
- return function computeInstructionFee(_x, _x2, _x3) {
12738
- return _ref2.apply(this, arguments);
12869
+ return function computeInstructionFee(_x, _x2, _x3, _x4) {
12870
+ return _ref3.apply(this, arguments);
12739
12871
  };
12740
12872
  }();
12741
12873
  var computeAllFees = /*#__PURE__*/function () {
12742
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref3, customXcm, isDotAsset, refundInstruction) {
12874
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(context, customXcm, isDotAsset, refundInstruction) {
12743
12875
  var reserve, dest, version, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0;
12744
12876
  return _regenerator().w(function (_context2) {
12745
12877
  while (1) switch (_context2.n) {
12746
12878
  case 0:
12747
- reserve = _ref3.reserve, dest = _ref3.dest, version = _ref3.options.version;
12879
+ reserve = context.reserve, dest = context.dest, version = context.options.version;
12748
12880
  if (!customXcm.some(function (x) {
12749
12881
  return 'DepositReserveAsset' in x || 'InitiateTeleport' in x;
12750
12882
  })) {
@@ -12752,7 +12884,7 @@ var computeAllFees = /*#__PURE__*/function () {
12752
12884
  break;
12753
12885
  }
12754
12886
  _context2.n = 1;
12755
- return computeInstructionFee(reserve, version, customXcm);
12887
+ return computeInstructionFee(reserve, version, customXcm, context);
12756
12888
  case 1:
12757
12889
  _t3 = _context2.v;
12758
12890
  if (!refundInstruction) {
@@ -12760,7 +12892,7 @@ var computeAllFees = /*#__PURE__*/function () {
12760
12892
  break;
12761
12893
  }
12762
12894
  _context2.n = 2;
12763
- return computeInstructionFee(reserve, version, [refundInstruction]);
12895
+ return computeInstructionFee(reserve, version, [refundInstruction], context);
12764
12896
  case 2:
12765
12897
  _t4 = _context2.v;
12766
12898
  _context2.n = 4;
@@ -12775,7 +12907,7 @@ var computeAllFees = /*#__PURE__*/function () {
12775
12907
  return 'DepositReserveAsset' in j || 'InitiateTeleport' in j;
12776
12908
  });
12777
12909
  return instr ? 'DepositReserveAsset' in instr ? instr.DepositReserveAsset.xcm : instr.InitiateTeleport.xcm : undefined;
12778
- }());
12910
+ }(), context);
12779
12911
  case 5:
12780
12912
  _t6 = _context2.v;
12781
12913
  _t2 = {
@@ -12791,7 +12923,7 @@ var computeAllFees = /*#__PURE__*/function () {
12791
12923
  break;
12792
12924
  }
12793
12925
  _context2.n = 7;
12794
- return computeInstructionFee(assets.hasXcmPaymentApiSupport(dest.chain) ? dest : reserve, version, customXcm);
12926
+ return computeInstructionFee(assets.hasXcmPaymentApiSupport(dest.chain) ? dest : reserve, version, customXcm, context);
12795
12927
  case 7:
12796
12928
  _t7 = _context2.v;
12797
12929
  _context2.n = 9;
@@ -12805,7 +12937,7 @@ var computeAllFees = /*#__PURE__*/function () {
12805
12937
  break;
12806
12938
  }
12807
12939
  _context2.n = 10;
12808
- return computeInstructionFee(assets.hasXcmPaymentApiSupport(reserve.chain) ? reserve : dest, version, [refundInstruction]);
12940
+ return computeInstructionFee(assets.hasXcmPaymentApiSupport(reserve.chain) ? reserve : dest, version, [refundInstruction], context);
12809
12941
  case 10:
12810
12942
  _t9 = _context2.v;
12811
12943
  _context2.n = 12;
@@ -12824,7 +12956,7 @@ var computeAllFees = /*#__PURE__*/function () {
12824
12956
  }
12825
12957
  }, _callee2);
12826
12958
  }));
12827
- return function computeAllFees(_x4, _x5, _x6, _x7) {
12959
+ return function computeAllFees(_x5, _x6, _x7, _x8) {
12828
12960
  return _ref4.apply(this, arguments);
12829
12961
  };
12830
12962
  }();
@@ -13473,8 +13605,8 @@ var AssetClaimBuilder = /*#__PURE__*/function () {
13473
13605
  }();
13474
13606
 
13475
13607
  var normalizeAmountAll = /*#__PURE__*/function () {
13476
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api, buildTx, options) {
13477
- var currency, isAmountAll, transferable;
13608
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api, builder, options) {
13609
+ var currency, isAmountAll, builderWithMinAmount, buildTx, transferable, finalBuildTx;
13478
13610
  return _regenerator().w(function (_context) {
13479
13611
  while (1) switch (_context.n) {
13480
13612
  case 0:
@@ -13484,11 +13616,18 @@ var normalizeAmountAll = /*#__PURE__*/function () {
13484
13616
  _context.n = 1;
13485
13617
  break;
13486
13618
  }
13487
- return _context.a(2, _objectSpread2({
13488
- api: api,
13489
- isAmountAll: isAmountAll
13490
- }, options));
13619
+ return _context.a(2, {
13620
+ options: _objectSpread2({
13621
+ api: api,
13622
+ isAmountAll: isAmountAll
13623
+ }, options),
13624
+ buildTx: builder['createTxFactory']()
13625
+ });
13491
13626
  case 1:
13627
+ builderWithMinAmount = builder.currency(_objectSpread2(_objectSpread2({}, options.currency), {}, {
13628
+ amount: MIN_AMOUNT
13629
+ }));
13630
+ buildTx = builderWithMinAmount['createTxFactory']();
13492
13631
  assertToIsString(options.to);
13493
13632
  assertSenderAddress(options.senderAddress);
13494
13633
  _context.n = 2;
@@ -13505,13 +13644,19 @@ var normalizeAmountAll = /*#__PURE__*/function () {
13505
13644
  });
13506
13645
  case 2:
13507
13646
  transferable = _context.v;
13508
- return _context.a(2, _objectSpread2(_objectSpread2({}, options), {}, {
13509
- api: api,
13510
- isAmountAll: isAmountAll,
13511
- currency: _objectSpread2(_objectSpread2({}, currency), {}, {
13512
- amount: transferable
13513
- })
13514
- }));
13647
+ finalBuildTx = builder.currency(_objectSpread2(_objectSpread2({}, options.currency), {}, {
13648
+ amount: transferable
13649
+ }))['createTxFactory']();
13650
+ return _context.a(2, {
13651
+ options: _objectSpread2(_objectSpread2({}, options), {}, {
13652
+ api: api,
13653
+ isAmountAll: isAmountAll,
13654
+ currency: _objectSpread2(_objectSpread2({}, currency), {}, {
13655
+ amount: transferable
13656
+ })
13657
+ }),
13658
+ buildTx: finalBuildTx
13659
+ });
13515
13660
  }
13516
13661
  }, _callee);
13517
13662
  }));
@@ -13573,12 +13718,12 @@ var BatchTransactionManager = /*#__PURE__*/function () {
13573
13718
  _context2.n = 4;
13574
13719
  return Promise.all(this.transactionOptions.map(/*#__PURE__*/function () {
13575
13720
  var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(opts) {
13576
- var buildTx;
13721
+ var builder;
13577
13722
  return _regenerator().w(function (_context) {
13578
13723
  while (1) switch (_context.n) {
13579
13724
  case 0:
13580
- buildTx = opts.buildTx;
13581
- return _context.a(2, normalizeAmountAll(api, buildTx, opts));
13725
+ builder = opts.builder;
13726
+ return _context.a(2, normalizeAmountAll(api, builder, opts));
13582
13727
  }
13583
13728
  }, _callee);
13584
13729
  }));
@@ -13589,8 +13734,9 @@ var BatchTransactionManager = /*#__PURE__*/function () {
13589
13734
  case 4:
13590
13735
  normalized = _context2.v;
13591
13736
  _context2.n = 5;
13592
- return Promise.all(normalized.map(function (o) {
13593
- return send(o);
13737
+ return Promise.all(normalized.map(function (_ref2) {
13738
+ var options = _ref2.options;
13739
+ return send(options);
13594
13740
  }));
13595
13741
  case 5:
13596
13742
  txs = _context2.v;
@@ -13789,11 +13935,10 @@ var GeneralBuilder = /*#__PURE__*/function () {
13789
13935
  }, {
13790
13936
  key: "addToBatch",
13791
13937
  value: function addToBatch() {
13792
- var buildTx = this.createTxFactory();
13793
13938
  this.batchManager.addTransaction(_objectSpread2(_objectSpread2({
13794
13939
  api: this.api
13795
13940
  }, this._options), {}, {
13796
- buildTx: buildTx
13941
+ builder: this
13797
13942
  }));
13798
13943
  return new GeneralBuilder(this.api, this.batchManager, {
13799
13944
  from: this._options.from
@@ -13830,18 +13975,16 @@ var GeneralBuilder = /*#__PURE__*/function () {
13830
13975
  key: "prepareNormalizedOptions",
13831
13976
  value: function () {
13832
13977
  var _prepareNormalizedOptions = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(options) {
13833
- var builder, buildTx, normalizedOptions;
13978
+ var _yield$normalizeAmoun, normalizedOptions, buildTx;
13834
13979
  return _regenerator().w(function (_context2) {
13835
13980
  while (1) switch (_context2.n) {
13836
13981
  case 0:
13837
- builder = this.currency(_objectSpread2(_objectSpread2({}, options.currency), {}, {
13838
- amount: MIN_AMOUNT.toString()
13839
- }));
13840
- buildTx = builder.createTxFactory();
13841
13982
  _context2.n = 1;
13842
- return normalizeAmountAll(this.api, buildTx, options);
13983
+ return normalizeAmountAll(this.api, this, options);
13843
13984
  case 1:
13844
- normalizedOptions = _context2.v;
13985
+ _yield$normalizeAmoun = _context2.v;
13986
+ normalizedOptions = _yield$normalizeAmoun.options;
13987
+ buildTx = _yield$normalizeAmoun.buildTx;
13845
13988
  return _context2.a(2, {
13846
13989
  normalizedOptions: normalizedOptions,
13847
13990
  buildTx: buildTx
@@ -14015,10 +14158,10 @@ var GeneralBuilder = /*#__PURE__*/function () {
14015
14158
  key: "createTxFactory",
14016
14159
  value: function createTxFactory() {
14017
14160
  var _this = this;
14018
- return function (amount) {
14161
+ return function (amount, relative) {
14019
14162
  return createTx(_objectSpread2(_objectSpread2({}, _this._options), {}, {
14020
14163
  api: _this.api
14021
- }), _this, amount);
14164
+ }), _this, amount, relative);
14022
14165
  };
14023
14166
  }
14024
14167
  /**