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