@paraspell/sdk-core 11.12.5 → 11.12.6
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 +220 -104
- package/dist/index.d.ts +11 -5
- package/dist/index.mjs +220 -104
- package/package.json +4 -4
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
4531
|
-
var
|
|
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
|
|
4538
|
-
|
|
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) {
|
|
@@ -11022,130 +11043,212 @@ var wrapTxBypass = /*#__PURE__*/function () {
|
|
|
11022
11043
|
};
|
|
11023
11044
|
}();
|
|
11024
11045
|
|
|
11046
|
+
var MAX_INCREASE_RETRIES = 5;
|
|
11047
|
+
var INCREASE_BUMP_STEP = 100;
|
|
11048
|
+
var DECREASE_START_AMOUNT = 1;
|
|
11049
|
+
var MAX_DECREASE_RETRIES = 5;
|
|
11050
|
+
var DECREASE_DIVIDE_FACTOR = 5;
|
|
11051
|
+
var FAILED_TO_TRANSACT_ASSET = 'FailedToTransactAsset';
|
|
11025
11052
|
var getBypassResultWithRetries = /*#__PURE__*/function () {
|
|
11026
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
11053
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(options, internalFn, initialTx) {
|
|
11027
11054
|
var maxRetries,
|
|
11028
11055
|
bumpStep,
|
|
11029
|
-
|
|
11056
|
+
getResultError,
|
|
11057
|
+
isFailedToTransact,
|
|
11058
|
+
isAmountTooLow,
|
|
11059
|
+
attempt,
|
|
11060
|
+
retryWithReducedAmount,
|
|
11030
11061
|
first,
|
|
11031
|
-
result,
|
|
11032
11062
|
i,
|
|
11033
11063
|
amount,
|
|
11034
|
-
|
|
11035
|
-
|
|
11036
|
-
|
|
11064
|
+
res,
|
|
11065
|
+
err,
|
|
11066
|
+
_args3 = arguments,
|
|
11037
11067
|
_t2,
|
|
11038
11068
|
_t3;
|
|
11039
|
-
return _regenerator().w(function (
|
|
11040
|
-
while (1) switch (
|
|
11069
|
+
return _regenerator().w(function (_context3) {
|
|
11070
|
+
while (1) switch (_context3.p = _context3.n) {
|
|
11041
11071
|
case 0:
|
|
11042
|
-
maxRetries =
|
|
11043
|
-
bumpStep =
|
|
11044
|
-
|
|
11045
|
-
return 'failureReason' in res ?
|
|
11072
|
+
maxRetries = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : MAX_INCREASE_RETRIES;
|
|
11073
|
+
bumpStep = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : INCREASE_BUMP_STEP;
|
|
11074
|
+
getResultError = function getResultError(res) {
|
|
11075
|
+
return 'failureReason' in res ? res.failureReason : 'dryRunError' in res ? res.dryRunError : undefined;
|
|
11046
11076
|
};
|
|
11077
|
+
isFailedToTransact = function isFailedToTransact(res) {
|
|
11078
|
+
return 'failureReason' in res && res.failureReason === FAILED_TO_TRANSACT_ASSET;
|
|
11079
|
+
};
|
|
11080
|
+
isAmountTooLow = function isAmountTooLow(e) {
|
|
11081
|
+
return e instanceof AmountTooLowError;
|
|
11082
|
+
};
|
|
11083
|
+
attempt = /*#__PURE__*/function () {
|
|
11084
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(amount, relative) {
|
|
11085
|
+
var tx;
|
|
11086
|
+
return _regenerator().w(function (_context) {
|
|
11087
|
+
while (1) switch (_context.n) {
|
|
11088
|
+
case 0:
|
|
11089
|
+
_context.n = 1;
|
|
11090
|
+
return options.buildTx(amount, relative);
|
|
11091
|
+
case 1:
|
|
11092
|
+
tx = _context.v;
|
|
11093
|
+
return _context.a(2, internalFn(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
11094
|
+
tx: tx,
|
|
11095
|
+
useRootOrigin: true
|
|
11096
|
+
})));
|
|
11097
|
+
}
|
|
11098
|
+
}, _callee);
|
|
11099
|
+
}));
|
|
11100
|
+
return function attempt(_x4, _x5) {
|
|
11101
|
+
return _ref2.apply(this, arguments);
|
|
11102
|
+
};
|
|
11103
|
+
}();
|
|
11104
|
+
retryWithReducedAmount = /*#__PURE__*/function () {
|
|
11105
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
11106
|
+
var start,
|
|
11107
|
+
divide,
|
|
11108
|
+
amount,
|
|
11109
|
+
attemptIdx,
|
|
11110
|
+
res,
|
|
11111
|
+
err,
|
|
11112
|
+
_args2 = arguments,
|
|
11113
|
+
_t;
|
|
11114
|
+
return _regenerator().w(function (_context2) {
|
|
11115
|
+
while (1) switch (_context2.p = _context2.n) {
|
|
11116
|
+
case 0:
|
|
11117
|
+
start = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : DECREASE_START_AMOUNT;
|
|
11118
|
+
divide = function divide(v) {
|
|
11119
|
+
var next = v / DECREASE_DIVIDE_FACTOR;
|
|
11120
|
+
return next > 0 ? next : 1;
|
|
11121
|
+
};
|
|
11122
|
+
amount = divide(start);
|
|
11123
|
+
attemptIdx = 0;
|
|
11124
|
+
case 1:
|
|
11125
|
+
if (!(attemptIdx < MAX_DECREASE_RETRIES && amount > 0)) {
|
|
11126
|
+
_context2.n = 9;
|
|
11127
|
+
break;
|
|
11128
|
+
}
|
|
11129
|
+
_context2.p = 2;
|
|
11130
|
+
_context2.n = 3;
|
|
11131
|
+
return attempt(amount.toString(), false);
|
|
11132
|
+
case 3:
|
|
11133
|
+
res = _context2.v;
|
|
11134
|
+
err = getResultError(res);
|
|
11135
|
+
if (err) {
|
|
11136
|
+
_context2.n = 4;
|
|
11137
|
+
break;
|
|
11138
|
+
}
|
|
11139
|
+
return _context2.a(2, res);
|
|
11140
|
+
case 4:
|
|
11141
|
+
if (!isFailedToTransact(res)) {
|
|
11142
|
+
_context2.n = 5;
|
|
11143
|
+
break;
|
|
11144
|
+
}
|
|
11145
|
+
amount = divide(amount);
|
|
11146
|
+
return _context2.a(3, 8);
|
|
11147
|
+
case 5:
|
|
11148
|
+
return _context2.a(2, res);
|
|
11149
|
+
case 6:
|
|
11150
|
+
_context2.p = 6;
|
|
11151
|
+
_t = _context2.v;
|
|
11152
|
+
if (!isAmountTooLow(_t)) {
|
|
11153
|
+
_context2.n = 7;
|
|
11154
|
+
break;
|
|
11155
|
+
}
|
|
11156
|
+
amount = divide(amount);
|
|
11157
|
+
return _context2.a(3, 8);
|
|
11158
|
+
case 7:
|
|
11159
|
+
throw _t;
|
|
11160
|
+
case 8:
|
|
11161
|
+
attemptIdx++;
|
|
11162
|
+
_context2.n = 1;
|
|
11163
|
+
break;
|
|
11164
|
+
case 9:
|
|
11165
|
+
return _context2.a(2, attempt(amount.toString(), false));
|
|
11166
|
+
}
|
|
11167
|
+
}, _callee2, null, [[2, 6]]);
|
|
11168
|
+
}));
|
|
11169
|
+
return function retryWithReducedAmount() {
|
|
11170
|
+
return _ref3.apply(this, arguments);
|
|
11171
|
+
};
|
|
11172
|
+
}();
|
|
11047
11173
|
if (!initialTx) {
|
|
11048
|
-
|
|
11174
|
+
_context3.n = 5;
|
|
11049
11175
|
break;
|
|
11050
11176
|
}
|
|
11051
|
-
|
|
11052
|
-
|
|
11177
|
+
_context3.p = 1;
|
|
11178
|
+
_context3.n = 2;
|
|
11053
11179
|
return internalFn(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
11054
11180
|
tx: initialTx,
|
|
11055
11181
|
useRootOrigin: true
|
|
11056
11182
|
}));
|
|
11057
11183
|
case 2:
|
|
11058
|
-
first =
|
|
11059
|
-
if (
|
|
11060
|
-
|
|
11184
|
+
first = _context3.v;
|
|
11185
|
+
if (getResultError(first)) {
|
|
11186
|
+
_context3.n = 3;
|
|
11061
11187
|
break;
|
|
11062
11188
|
}
|
|
11063
|
-
return
|
|
11189
|
+
return _context3.a(2, first);
|
|
11064
11190
|
case 3:
|
|
11065
|
-
|
|
11191
|
+
_context3.n = 5;
|
|
11066
11192
|
break;
|
|
11067
11193
|
case 4:
|
|
11068
|
-
|
|
11069
|
-
|
|
11070
|
-
if (
|
|
11071
|
-
|
|
11194
|
+
_context3.p = 4;
|
|
11195
|
+
_t2 = _context3.v;
|
|
11196
|
+
if (isAmountTooLow(_t2)) {
|
|
11197
|
+
_context3.n = 5;
|
|
11072
11198
|
break;
|
|
11073
11199
|
}
|
|
11074
|
-
throw
|
|
11200
|
+
throw _t2;
|
|
11075
11201
|
case 5:
|
|
11076
|
-
result = null;
|
|
11077
11202
|
i = 1;
|
|
11078
11203
|
case 6:
|
|
11079
11204
|
if (!(i <= maxRetries)) {
|
|
11080
|
-
|
|
11205
|
+
_context3.n = 15;
|
|
11081
11206
|
break;
|
|
11082
11207
|
}
|
|
11083
|
-
amount =
|
|
11084
|
-
|
|
11085
|
-
|
|
11086
|
-
|
|
11087
|
-
return options.buildTx(amount);
|
|
11208
|
+
amount = bumpStep * i;
|
|
11209
|
+
_context3.p = 7;
|
|
11210
|
+
_context3.n = 8;
|
|
11211
|
+
return attempt(amount.toString());
|
|
11088
11212
|
case 8:
|
|
11089
|
-
|
|
11090
|
-
|
|
11091
|
-
|
|
11092
|
-
|
|
11093
|
-
_context.p = 9;
|
|
11094
|
-
_t2 = _context.v;
|
|
11095
|
-
if (!(_t2 instanceof AmountTooLowError)) {
|
|
11096
|
-
_context.n = 11;
|
|
11213
|
+
res = _context3.v;
|
|
11214
|
+
err = getResultError(res);
|
|
11215
|
+
if (err) {
|
|
11216
|
+
_context3.n = 9;
|
|
11097
11217
|
break;
|
|
11098
11218
|
}
|
|
11099
|
-
|
|
11100
|
-
|
|
11219
|
+
return _context3.a(2, res);
|
|
11220
|
+
case 9:
|
|
11221
|
+
if (!isFailedToTransact(res)) {
|
|
11222
|
+
_context3.n = 10;
|
|
11101
11223
|
break;
|
|
11102
11224
|
}
|
|
11103
|
-
|
|
11225
|
+
return _context3.a(2, retryWithReducedAmount(DECREASE_START_AMOUNT));
|
|
11104
11226
|
case 10:
|
|
11105
|
-
return
|
|
11227
|
+
return _context3.a(3, 14);
|
|
11106
11228
|
case 11:
|
|
11107
|
-
|
|
11108
|
-
|
|
11109
|
-
|
|
11110
|
-
|
|
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;
|
|
11229
|
+
_context3.p = 11;
|
|
11230
|
+
_t3 = _context3.v;
|
|
11231
|
+
if (!isAmountTooLow(_t3)) {
|
|
11232
|
+
_context3.n = 13;
|
|
11130
11233
|
break;
|
|
11131
11234
|
}
|
|
11132
11235
|
if (!(i === maxRetries)) {
|
|
11133
|
-
|
|
11236
|
+
_context3.n = 12;
|
|
11134
11237
|
break;
|
|
11135
11238
|
}
|
|
11136
11239
|
throw _t3;
|
|
11137
|
-
case
|
|
11138
|
-
return
|
|
11139
|
-
case
|
|
11240
|
+
case 12:
|
|
11241
|
+
return _context3.a(3, 14);
|
|
11242
|
+
case 13:
|
|
11140
11243
|
throw _t3;
|
|
11141
|
-
case
|
|
11244
|
+
case 14:
|
|
11142
11245
|
i++;
|
|
11143
|
-
|
|
11246
|
+
_context3.n = 6;
|
|
11144
11247
|
break;
|
|
11145
|
-
case
|
|
11146
|
-
return
|
|
11248
|
+
case 15:
|
|
11249
|
+
return _context3.a(2, attempt(String(bumpStep * maxRetries)));
|
|
11147
11250
|
}
|
|
11148
|
-
},
|
|
11251
|
+
}, _callee3, null, [[7, 11], [1, 4]]);
|
|
11149
11252
|
}));
|
|
11150
11253
|
return function getBypassResultWithRetries(_x, _x2, _x3) {
|
|
11151
11254
|
return _ref.apply(this, arguments);
|
|
@@ -11506,8 +11609,11 @@ var getXcmFeeInternal = /*#__PURE__*/function () {
|
|
|
11506
11609
|
case 0:
|
|
11507
11610
|
hopApi = params.api, currentChain = params.currentChain, currentOrigin = params.currentOrigin, currentAsset = params.currentAsset, forwardedXcms = params.forwardedXcms, hasPassedExchange = params.hasPassedExchange;
|
|
11508
11611
|
hopAsset = resolveHopAsset({
|
|
11612
|
+
api: api,
|
|
11613
|
+
tx: tx,
|
|
11509
11614
|
originChain: origin,
|
|
11510
11615
|
currentChain: currentChain,
|
|
11616
|
+
destination: destination,
|
|
11511
11617
|
asset: currentAsset,
|
|
11512
11618
|
currency: currency,
|
|
11513
11619
|
swapConfig: swapConfig,
|
|
@@ -12716,35 +12822,45 @@ var buildTypeAndThenCall = function buildTypeAndThenCall(_ref, isDotAsset, custo
|
|
|
12716
12822
|
};
|
|
12717
12823
|
|
|
12718
12824
|
var FEE_PADDING_PERCENTAGE = 20;
|
|
12825
|
+
var FEE_ETH_ASSET_PADDING_PERCENTAGE = 100;
|
|
12719
12826
|
var FEE_PADDING_HYDRATION = 500;
|
|
12827
|
+
var getPadding = function getPadding(chain, _ref) {
|
|
12828
|
+
var assetInfo = _ref.assetInfo,
|
|
12829
|
+
dest = _ref.dest;
|
|
12830
|
+
var isEthAsset = assetInfo.location && assets.findAssetInfoByLoc(assets.getOtherAssets('Ethereum'), assetInfo.location);
|
|
12831
|
+
if (chain === 'Hydration') return FEE_PADDING_HYDRATION;
|
|
12832
|
+
if (isEthAsset && dest.chain.startsWith('AssetHub')) return FEE_ETH_ASSET_PADDING_PERCENTAGE;
|
|
12833
|
+
return FEE_PADDING_PERCENTAGE;
|
|
12834
|
+
};
|
|
12720
12835
|
var computeInstructionFee = /*#__PURE__*/function () {
|
|
12721
|
-
var
|
|
12722
|
-
var chain, api, _t;
|
|
12836
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref2, version, xcm, context) {
|
|
12837
|
+
var chain, api, padding, _t;
|
|
12723
12838
|
return _regenerator().w(function (_context) {
|
|
12724
12839
|
while (1) switch (_context.n) {
|
|
12725
12840
|
case 0:
|
|
12726
|
-
chain =
|
|
12841
|
+
chain = _ref2.chain, api = _ref2.api;
|
|
12842
|
+
padding = getPadding(chain, context);
|
|
12727
12843
|
_t = padValueBy;
|
|
12728
12844
|
_context.n = 1;
|
|
12729
12845
|
return api.getXcmPaymentApiFee(chain, addXcmVersionHeader(xcm, version), [], {
|
|
12730
12846
|
location: DOT_LOCATION
|
|
12731
12847
|
}, true);
|
|
12732
12848
|
case 1:
|
|
12733
|
-
return _context.a(2, _t(_context.v,
|
|
12849
|
+
return _context.a(2, _t(_context.v, padding));
|
|
12734
12850
|
}
|
|
12735
12851
|
}, _callee);
|
|
12736
12852
|
}));
|
|
12737
|
-
return function computeInstructionFee(_x, _x2, _x3) {
|
|
12738
|
-
return
|
|
12853
|
+
return function computeInstructionFee(_x, _x2, _x3, _x4) {
|
|
12854
|
+
return _ref3.apply(this, arguments);
|
|
12739
12855
|
};
|
|
12740
12856
|
}();
|
|
12741
12857
|
var computeAllFees = /*#__PURE__*/function () {
|
|
12742
|
-
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(
|
|
12858
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(context, customXcm, isDotAsset, refundInstruction) {
|
|
12743
12859
|
var reserve, dest, version, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0;
|
|
12744
12860
|
return _regenerator().w(function (_context2) {
|
|
12745
12861
|
while (1) switch (_context2.n) {
|
|
12746
12862
|
case 0:
|
|
12747
|
-
reserve =
|
|
12863
|
+
reserve = context.reserve, dest = context.dest, version = context.options.version;
|
|
12748
12864
|
if (!customXcm.some(function (x) {
|
|
12749
12865
|
return 'DepositReserveAsset' in x || 'InitiateTeleport' in x;
|
|
12750
12866
|
})) {
|
|
@@ -12752,7 +12868,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12752
12868
|
break;
|
|
12753
12869
|
}
|
|
12754
12870
|
_context2.n = 1;
|
|
12755
|
-
return computeInstructionFee(reserve, version, customXcm);
|
|
12871
|
+
return computeInstructionFee(reserve, version, customXcm, context);
|
|
12756
12872
|
case 1:
|
|
12757
12873
|
_t3 = _context2.v;
|
|
12758
12874
|
if (!refundInstruction) {
|
|
@@ -12760,7 +12876,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12760
12876
|
break;
|
|
12761
12877
|
}
|
|
12762
12878
|
_context2.n = 2;
|
|
12763
|
-
return computeInstructionFee(reserve, version, [refundInstruction]);
|
|
12879
|
+
return computeInstructionFee(reserve, version, [refundInstruction], context);
|
|
12764
12880
|
case 2:
|
|
12765
12881
|
_t4 = _context2.v;
|
|
12766
12882
|
_context2.n = 4;
|
|
@@ -12775,7 +12891,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12775
12891
|
return 'DepositReserveAsset' in j || 'InitiateTeleport' in j;
|
|
12776
12892
|
});
|
|
12777
12893
|
return instr ? 'DepositReserveAsset' in instr ? instr.DepositReserveAsset.xcm : instr.InitiateTeleport.xcm : undefined;
|
|
12778
|
-
}());
|
|
12894
|
+
}(), context);
|
|
12779
12895
|
case 5:
|
|
12780
12896
|
_t6 = _context2.v;
|
|
12781
12897
|
_t2 = {
|
|
@@ -12791,7 +12907,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12791
12907
|
break;
|
|
12792
12908
|
}
|
|
12793
12909
|
_context2.n = 7;
|
|
12794
|
-
return computeInstructionFee(assets.hasXcmPaymentApiSupport(dest.chain) ? dest : reserve, version, customXcm);
|
|
12910
|
+
return computeInstructionFee(assets.hasXcmPaymentApiSupport(dest.chain) ? dest : reserve, version, customXcm, context);
|
|
12795
12911
|
case 7:
|
|
12796
12912
|
_t7 = _context2.v;
|
|
12797
12913
|
_context2.n = 9;
|
|
@@ -12805,7 +12921,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12805
12921
|
break;
|
|
12806
12922
|
}
|
|
12807
12923
|
_context2.n = 10;
|
|
12808
|
-
return computeInstructionFee(assets.hasXcmPaymentApiSupport(reserve.chain) ? reserve : dest, version, [refundInstruction]);
|
|
12924
|
+
return computeInstructionFee(assets.hasXcmPaymentApiSupport(reserve.chain) ? reserve : dest, version, [refundInstruction], context);
|
|
12809
12925
|
case 10:
|
|
12810
12926
|
_t9 = _context2.v;
|
|
12811
12927
|
_context2.n = 12;
|
|
@@ -12824,7 +12940,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12824
12940
|
}
|
|
12825
12941
|
}, _callee2);
|
|
12826
12942
|
}));
|
|
12827
|
-
return function computeAllFees(
|
|
12943
|
+
return function computeAllFees(_x5, _x6, _x7, _x8) {
|
|
12828
12944
|
return _ref4.apply(this, arguments);
|
|
12829
12945
|
};
|
|
12830
12946
|
}();
|
|
@@ -14015,10 +14131,10 @@ var GeneralBuilder = /*#__PURE__*/function () {
|
|
|
14015
14131
|
key: "createTxFactory",
|
|
14016
14132
|
value: function createTxFactory() {
|
|
14017
14133
|
var _this = this;
|
|
14018
|
-
return function (amount) {
|
|
14134
|
+
return function (amount, relative) {
|
|
14019
14135
|
return createTx(_objectSpread2(_objectSpread2({}, _this._options), {}, {
|
|
14020
14136
|
api: _this.api
|
|
14021
|
-
}), _this, amount);
|
|
14137
|
+
}), _this, amount, relative);
|
|
14022
14138
|
};
|
|
14023
14139
|
}
|
|
14024
14140
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -643,9 +643,12 @@ type TDryRunResult = {
|
|
|
643
643
|
bridgeHub?: TDryRunChainResult;
|
|
644
644
|
hops: THopInfo[];
|
|
645
645
|
};
|
|
646
|
-
type TResolveHopParams = {
|
|
646
|
+
type TResolveHopParams<TApi, TRes> = {
|
|
647
|
+
api: IPolkadotApi<TApi, TRes>;
|
|
648
|
+
tx: TRes;
|
|
647
649
|
originChain: TSubstrateChain;
|
|
648
650
|
currentChain: TSubstrateChain;
|
|
651
|
+
destination: TDestination;
|
|
649
652
|
asset: TAssetInfo;
|
|
650
653
|
currency: TCurrencyInputWithAmount;
|
|
651
654
|
swapConfig?: TSwapConfig;
|
|
@@ -752,7 +755,7 @@ type TModuleError = {
|
|
|
752
755
|
type TXcmFeeSwapConfig = TSwapConfig & {
|
|
753
756
|
amountOut: bigint;
|
|
754
757
|
};
|
|
755
|
-
type TTxFactory<TRes> = (amount?: string) => Promise<TRes>;
|
|
758
|
+
type TTxFactory<TRes> = (amount?: string, relative?: boolean) => Promise<TRes>;
|
|
756
759
|
type TGetXcmFeeBaseOptions<TRes, TDisableFallback extends boolean = boolean> = {
|
|
757
760
|
/**
|
|
758
761
|
* The transaction factory
|
|
@@ -1453,6 +1456,7 @@ interface IPolkadotApi<TApi, TRes> {
|
|
|
1453
1456
|
hexToUint8a(hex: string): Uint8Array;
|
|
1454
1457
|
stringToUint8a(str: string): Uint8Array;
|
|
1455
1458
|
getMethod(tx: TRes): string;
|
|
1459
|
+
getTypeThenAssetCount(tx: TRes): number | undefined;
|
|
1456
1460
|
hasMethod(pallet: TPallet, method: string): Promise<boolean>;
|
|
1457
1461
|
calculateTransactionFee(tx: TRes, address: string): Promise<bigint>;
|
|
1458
1462
|
quoteAhPrice(fromMl: TLocation, toMl: TLocation, amountIn: bigint, includeFee?: boolean): Promise<bigint | undefined>;
|
|
@@ -1887,6 +1891,8 @@ declare class Manta<TApi, TRes> extends Parachain<TApi, TRes> implements IXToken
|
|
|
1887
1891
|
constructor();
|
|
1888
1892
|
private getAssetId;
|
|
1889
1893
|
transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
|
|
1894
|
+
isSendingTempDisabled(_options: TSendInternalOptions<TApi, TRes>): boolean;
|
|
1895
|
+
isReceivingTempDisabled(_scenario: TScenario): boolean;
|
|
1890
1896
|
transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
|
|
1891
1897
|
}
|
|
1892
1898
|
|
|
@@ -2249,9 +2255,9 @@ declare const maybeOverrideAsset: (version: Version, amount: bigint, asset: TAss
|
|
|
2249
2255
|
|
|
2250
2256
|
declare const sortAssets: (assets: TAsset[]) => TAsset[];
|
|
2251
2257
|
|
|
2252
|
-
declare const computeOverridenAmount: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, increaseAmount: string) => number | bigint;
|
|
2253
|
-
declare const overrideTxAmount: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, builder: GeneralBuilder<TApi, TRes, TSendBaseOptions>, amount: string) => Promise<TRes>;
|
|
2254
|
-
declare const createTx: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, builder: GeneralBuilder<TApi, TRes, TSendBaseOptions>, amount
|
|
2258
|
+
declare const computeOverridenAmount: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, increaseAmount: string, relative?: boolean) => number | bigint;
|
|
2259
|
+
declare const overrideTxAmount: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, builder: GeneralBuilder<TApi, TRes, TSendBaseOptions>, amount: string, relative?: boolean) => Promise<TRes>;
|
|
2260
|
+
declare const createTx: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, builder: GeneralBuilder<TApi, TRes, TSendBaseOptions>, amount?: string, relative?: boolean) => Promise<TRes>;
|
|
2255
2261
|
|
|
2256
2262
|
declare const isConfig: <TApi>(value: any) => value is TBuilderConfig<TApi>;
|
|
2257
2263
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
4532
|
-
var
|
|
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
|
|
4539
|
-
|
|
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) {
|
|
@@ -11023,130 +11044,212 @@ var wrapTxBypass = /*#__PURE__*/function () {
|
|
|
11023
11044
|
};
|
|
11024
11045
|
}();
|
|
11025
11046
|
|
|
11047
|
+
var MAX_INCREASE_RETRIES = 5;
|
|
11048
|
+
var INCREASE_BUMP_STEP = 100;
|
|
11049
|
+
var DECREASE_START_AMOUNT = 1;
|
|
11050
|
+
var MAX_DECREASE_RETRIES = 5;
|
|
11051
|
+
var DECREASE_DIVIDE_FACTOR = 5;
|
|
11052
|
+
var FAILED_TO_TRANSACT_ASSET = 'FailedToTransactAsset';
|
|
11026
11053
|
var getBypassResultWithRetries = /*#__PURE__*/function () {
|
|
11027
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
11054
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(options, internalFn, initialTx) {
|
|
11028
11055
|
var maxRetries,
|
|
11029
11056
|
bumpStep,
|
|
11030
|
-
|
|
11057
|
+
getResultError,
|
|
11058
|
+
isFailedToTransact,
|
|
11059
|
+
isAmountTooLow,
|
|
11060
|
+
attempt,
|
|
11061
|
+
retryWithReducedAmount,
|
|
11031
11062
|
first,
|
|
11032
|
-
result,
|
|
11033
11063
|
i,
|
|
11034
11064
|
amount,
|
|
11035
|
-
|
|
11036
|
-
|
|
11037
|
-
|
|
11065
|
+
res,
|
|
11066
|
+
err,
|
|
11067
|
+
_args3 = arguments,
|
|
11038
11068
|
_t2,
|
|
11039
11069
|
_t3;
|
|
11040
|
-
return _regenerator().w(function (
|
|
11041
|
-
while (1) switch (
|
|
11070
|
+
return _regenerator().w(function (_context3) {
|
|
11071
|
+
while (1) switch (_context3.p = _context3.n) {
|
|
11042
11072
|
case 0:
|
|
11043
|
-
maxRetries =
|
|
11044
|
-
bumpStep =
|
|
11045
|
-
|
|
11046
|
-
return 'failureReason' in res ?
|
|
11073
|
+
maxRetries = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : MAX_INCREASE_RETRIES;
|
|
11074
|
+
bumpStep = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : INCREASE_BUMP_STEP;
|
|
11075
|
+
getResultError = function getResultError(res) {
|
|
11076
|
+
return 'failureReason' in res ? res.failureReason : 'dryRunError' in res ? res.dryRunError : undefined;
|
|
11047
11077
|
};
|
|
11078
|
+
isFailedToTransact = function isFailedToTransact(res) {
|
|
11079
|
+
return 'failureReason' in res && res.failureReason === FAILED_TO_TRANSACT_ASSET;
|
|
11080
|
+
};
|
|
11081
|
+
isAmountTooLow = function isAmountTooLow(e) {
|
|
11082
|
+
return e instanceof AmountTooLowError;
|
|
11083
|
+
};
|
|
11084
|
+
attempt = /*#__PURE__*/function () {
|
|
11085
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(amount, relative) {
|
|
11086
|
+
var tx;
|
|
11087
|
+
return _regenerator().w(function (_context) {
|
|
11088
|
+
while (1) switch (_context.n) {
|
|
11089
|
+
case 0:
|
|
11090
|
+
_context.n = 1;
|
|
11091
|
+
return options.buildTx(amount, relative);
|
|
11092
|
+
case 1:
|
|
11093
|
+
tx = _context.v;
|
|
11094
|
+
return _context.a(2, internalFn(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
11095
|
+
tx: tx,
|
|
11096
|
+
useRootOrigin: true
|
|
11097
|
+
})));
|
|
11098
|
+
}
|
|
11099
|
+
}, _callee);
|
|
11100
|
+
}));
|
|
11101
|
+
return function attempt(_x4, _x5) {
|
|
11102
|
+
return _ref2.apply(this, arguments);
|
|
11103
|
+
};
|
|
11104
|
+
}();
|
|
11105
|
+
retryWithReducedAmount = /*#__PURE__*/function () {
|
|
11106
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
11107
|
+
var start,
|
|
11108
|
+
divide,
|
|
11109
|
+
amount,
|
|
11110
|
+
attemptIdx,
|
|
11111
|
+
res,
|
|
11112
|
+
err,
|
|
11113
|
+
_args2 = arguments,
|
|
11114
|
+
_t;
|
|
11115
|
+
return _regenerator().w(function (_context2) {
|
|
11116
|
+
while (1) switch (_context2.p = _context2.n) {
|
|
11117
|
+
case 0:
|
|
11118
|
+
start = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : DECREASE_START_AMOUNT;
|
|
11119
|
+
divide = function divide(v) {
|
|
11120
|
+
var next = v / DECREASE_DIVIDE_FACTOR;
|
|
11121
|
+
return next > 0 ? next : 1;
|
|
11122
|
+
};
|
|
11123
|
+
amount = divide(start);
|
|
11124
|
+
attemptIdx = 0;
|
|
11125
|
+
case 1:
|
|
11126
|
+
if (!(attemptIdx < MAX_DECREASE_RETRIES && amount > 0)) {
|
|
11127
|
+
_context2.n = 9;
|
|
11128
|
+
break;
|
|
11129
|
+
}
|
|
11130
|
+
_context2.p = 2;
|
|
11131
|
+
_context2.n = 3;
|
|
11132
|
+
return attempt(amount.toString(), false);
|
|
11133
|
+
case 3:
|
|
11134
|
+
res = _context2.v;
|
|
11135
|
+
err = getResultError(res);
|
|
11136
|
+
if (err) {
|
|
11137
|
+
_context2.n = 4;
|
|
11138
|
+
break;
|
|
11139
|
+
}
|
|
11140
|
+
return _context2.a(2, res);
|
|
11141
|
+
case 4:
|
|
11142
|
+
if (!isFailedToTransact(res)) {
|
|
11143
|
+
_context2.n = 5;
|
|
11144
|
+
break;
|
|
11145
|
+
}
|
|
11146
|
+
amount = divide(amount);
|
|
11147
|
+
return _context2.a(3, 8);
|
|
11148
|
+
case 5:
|
|
11149
|
+
return _context2.a(2, res);
|
|
11150
|
+
case 6:
|
|
11151
|
+
_context2.p = 6;
|
|
11152
|
+
_t = _context2.v;
|
|
11153
|
+
if (!isAmountTooLow(_t)) {
|
|
11154
|
+
_context2.n = 7;
|
|
11155
|
+
break;
|
|
11156
|
+
}
|
|
11157
|
+
amount = divide(amount);
|
|
11158
|
+
return _context2.a(3, 8);
|
|
11159
|
+
case 7:
|
|
11160
|
+
throw _t;
|
|
11161
|
+
case 8:
|
|
11162
|
+
attemptIdx++;
|
|
11163
|
+
_context2.n = 1;
|
|
11164
|
+
break;
|
|
11165
|
+
case 9:
|
|
11166
|
+
return _context2.a(2, attempt(amount.toString(), false));
|
|
11167
|
+
}
|
|
11168
|
+
}, _callee2, null, [[2, 6]]);
|
|
11169
|
+
}));
|
|
11170
|
+
return function retryWithReducedAmount() {
|
|
11171
|
+
return _ref3.apply(this, arguments);
|
|
11172
|
+
};
|
|
11173
|
+
}();
|
|
11048
11174
|
if (!initialTx) {
|
|
11049
|
-
|
|
11175
|
+
_context3.n = 5;
|
|
11050
11176
|
break;
|
|
11051
11177
|
}
|
|
11052
|
-
|
|
11053
|
-
|
|
11178
|
+
_context3.p = 1;
|
|
11179
|
+
_context3.n = 2;
|
|
11054
11180
|
return internalFn(_objectSpread2(_objectSpread2({}, options), {}, {
|
|
11055
11181
|
tx: initialTx,
|
|
11056
11182
|
useRootOrigin: true
|
|
11057
11183
|
}));
|
|
11058
11184
|
case 2:
|
|
11059
|
-
first =
|
|
11060
|
-
if (
|
|
11061
|
-
|
|
11185
|
+
first = _context3.v;
|
|
11186
|
+
if (getResultError(first)) {
|
|
11187
|
+
_context3.n = 3;
|
|
11062
11188
|
break;
|
|
11063
11189
|
}
|
|
11064
|
-
return
|
|
11190
|
+
return _context3.a(2, first);
|
|
11065
11191
|
case 3:
|
|
11066
|
-
|
|
11192
|
+
_context3.n = 5;
|
|
11067
11193
|
break;
|
|
11068
11194
|
case 4:
|
|
11069
|
-
|
|
11070
|
-
|
|
11071
|
-
if (
|
|
11072
|
-
|
|
11195
|
+
_context3.p = 4;
|
|
11196
|
+
_t2 = _context3.v;
|
|
11197
|
+
if (isAmountTooLow(_t2)) {
|
|
11198
|
+
_context3.n = 5;
|
|
11073
11199
|
break;
|
|
11074
11200
|
}
|
|
11075
|
-
throw
|
|
11201
|
+
throw _t2;
|
|
11076
11202
|
case 5:
|
|
11077
|
-
result = null;
|
|
11078
11203
|
i = 1;
|
|
11079
11204
|
case 6:
|
|
11080
11205
|
if (!(i <= maxRetries)) {
|
|
11081
|
-
|
|
11206
|
+
_context3.n = 15;
|
|
11082
11207
|
break;
|
|
11083
11208
|
}
|
|
11084
|
-
amount =
|
|
11085
|
-
|
|
11086
|
-
|
|
11087
|
-
|
|
11088
|
-
return options.buildTx(amount);
|
|
11209
|
+
amount = bumpStep * i;
|
|
11210
|
+
_context3.p = 7;
|
|
11211
|
+
_context3.n = 8;
|
|
11212
|
+
return attempt(amount.toString());
|
|
11089
11213
|
case 8:
|
|
11090
|
-
|
|
11091
|
-
|
|
11092
|
-
|
|
11093
|
-
|
|
11094
|
-
_context.p = 9;
|
|
11095
|
-
_t2 = _context.v;
|
|
11096
|
-
if (!(_t2 instanceof AmountTooLowError)) {
|
|
11097
|
-
_context.n = 11;
|
|
11214
|
+
res = _context3.v;
|
|
11215
|
+
err = getResultError(res);
|
|
11216
|
+
if (err) {
|
|
11217
|
+
_context3.n = 9;
|
|
11098
11218
|
break;
|
|
11099
11219
|
}
|
|
11100
|
-
|
|
11101
|
-
|
|
11220
|
+
return _context3.a(2, res);
|
|
11221
|
+
case 9:
|
|
11222
|
+
if (!isFailedToTransact(res)) {
|
|
11223
|
+
_context3.n = 10;
|
|
11102
11224
|
break;
|
|
11103
11225
|
}
|
|
11104
|
-
|
|
11226
|
+
return _context3.a(2, retryWithReducedAmount(DECREASE_START_AMOUNT));
|
|
11105
11227
|
case 10:
|
|
11106
|
-
return
|
|
11228
|
+
return _context3.a(3, 14);
|
|
11107
11229
|
case 11:
|
|
11108
|
-
|
|
11109
|
-
|
|
11110
|
-
|
|
11111
|
-
|
|
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;
|
|
11230
|
+
_context3.p = 11;
|
|
11231
|
+
_t3 = _context3.v;
|
|
11232
|
+
if (!isAmountTooLow(_t3)) {
|
|
11233
|
+
_context3.n = 13;
|
|
11131
11234
|
break;
|
|
11132
11235
|
}
|
|
11133
11236
|
if (!(i === maxRetries)) {
|
|
11134
|
-
|
|
11237
|
+
_context3.n = 12;
|
|
11135
11238
|
break;
|
|
11136
11239
|
}
|
|
11137
11240
|
throw _t3;
|
|
11138
|
-
case
|
|
11139
|
-
return
|
|
11140
|
-
case
|
|
11241
|
+
case 12:
|
|
11242
|
+
return _context3.a(3, 14);
|
|
11243
|
+
case 13:
|
|
11141
11244
|
throw _t3;
|
|
11142
|
-
case
|
|
11245
|
+
case 14:
|
|
11143
11246
|
i++;
|
|
11144
|
-
|
|
11247
|
+
_context3.n = 6;
|
|
11145
11248
|
break;
|
|
11146
|
-
case
|
|
11147
|
-
return
|
|
11249
|
+
case 15:
|
|
11250
|
+
return _context3.a(2, attempt(String(bumpStep * maxRetries)));
|
|
11148
11251
|
}
|
|
11149
|
-
},
|
|
11252
|
+
}, _callee3, null, [[7, 11], [1, 4]]);
|
|
11150
11253
|
}));
|
|
11151
11254
|
return function getBypassResultWithRetries(_x, _x2, _x3) {
|
|
11152
11255
|
return _ref.apply(this, arguments);
|
|
@@ -11507,8 +11610,11 @@ var getXcmFeeInternal = /*#__PURE__*/function () {
|
|
|
11507
11610
|
case 0:
|
|
11508
11611
|
hopApi = params.api, currentChain = params.currentChain, currentOrigin = params.currentOrigin, currentAsset = params.currentAsset, forwardedXcms = params.forwardedXcms, hasPassedExchange = params.hasPassedExchange;
|
|
11509
11612
|
hopAsset = resolveHopAsset({
|
|
11613
|
+
api: api,
|
|
11614
|
+
tx: tx,
|
|
11510
11615
|
originChain: origin,
|
|
11511
11616
|
currentChain: currentChain,
|
|
11617
|
+
destination: destination,
|
|
11512
11618
|
asset: currentAsset,
|
|
11513
11619
|
currency: currency,
|
|
11514
11620
|
swapConfig: swapConfig,
|
|
@@ -12717,35 +12823,45 @@ var buildTypeAndThenCall = function buildTypeAndThenCall(_ref, isDotAsset, custo
|
|
|
12717
12823
|
};
|
|
12718
12824
|
|
|
12719
12825
|
var FEE_PADDING_PERCENTAGE = 20;
|
|
12826
|
+
var FEE_ETH_ASSET_PADDING_PERCENTAGE = 100;
|
|
12720
12827
|
var FEE_PADDING_HYDRATION = 500;
|
|
12828
|
+
var getPadding = function getPadding(chain, _ref) {
|
|
12829
|
+
var assetInfo = _ref.assetInfo,
|
|
12830
|
+
dest = _ref.dest;
|
|
12831
|
+
var isEthAsset = assetInfo.location && findAssetInfoByLoc(getOtherAssets('Ethereum'), assetInfo.location);
|
|
12832
|
+
if (chain === 'Hydration') return FEE_PADDING_HYDRATION;
|
|
12833
|
+
if (isEthAsset && dest.chain.startsWith('AssetHub')) return FEE_ETH_ASSET_PADDING_PERCENTAGE;
|
|
12834
|
+
return FEE_PADDING_PERCENTAGE;
|
|
12835
|
+
};
|
|
12721
12836
|
var computeInstructionFee = /*#__PURE__*/function () {
|
|
12722
|
-
var
|
|
12723
|
-
var chain, api, _t;
|
|
12837
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(_ref2, version, xcm, context) {
|
|
12838
|
+
var chain, api, padding, _t;
|
|
12724
12839
|
return _regenerator().w(function (_context) {
|
|
12725
12840
|
while (1) switch (_context.n) {
|
|
12726
12841
|
case 0:
|
|
12727
|
-
chain =
|
|
12842
|
+
chain = _ref2.chain, api = _ref2.api;
|
|
12843
|
+
padding = getPadding(chain, context);
|
|
12728
12844
|
_t = padValueBy;
|
|
12729
12845
|
_context.n = 1;
|
|
12730
12846
|
return api.getXcmPaymentApiFee(chain, addXcmVersionHeader(xcm, version), [], {
|
|
12731
12847
|
location: DOT_LOCATION
|
|
12732
12848
|
}, true);
|
|
12733
12849
|
case 1:
|
|
12734
|
-
return _context.a(2, _t(_context.v,
|
|
12850
|
+
return _context.a(2, _t(_context.v, padding));
|
|
12735
12851
|
}
|
|
12736
12852
|
}, _callee);
|
|
12737
12853
|
}));
|
|
12738
|
-
return function computeInstructionFee(_x, _x2, _x3) {
|
|
12739
|
-
return
|
|
12854
|
+
return function computeInstructionFee(_x, _x2, _x3, _x4) {
|
|
12855
|
+
return _ref3.apply(this, arguments);
|
|
12740
12856
|
};
|
|
12741
12857
|
}();
|
|
12742
12858
|
var computeAllFees = /*#__PURE__*/function () {
|
|
12743
|
-
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(
|
|
12859
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(context, customXcm, isDotAsset, refundInstruction) {
|
|
12744
12860
|
var reserve, dest, version, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0;
|
|
12745
12861
|
return _regenerator().w(function (_context2) {
|
|
12746
12862
|
while (1) switch (_context2.n) {
|
|
12747
12863
|
case 0:
|
|
12748
|
-
reserve =
|
|
12864
|
+
reserve = context.reserve, dest = context.dest, version = context.options.version;
|
|
12749
12865
|
if (!customXcm.some(function (x) {
|
|
12750
12866
|
return 'DepositReserveAsset' in x || 'InitiateTeleport' in x;
|
|
12751
12867
|
})) {
|
|
@@ -12753,7 +12869,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12753
12869
|
break;
|
|
12754
12870
|
}
|
|
12755
12871
|
_context2.n = 1;
|
|
12756
|
-
return computeInstructionFee(reserve, version, customXcm);
|
|
12872
|
+
return computeInstructionFee(reserve, version, customXcm, context);
|
|
12757
12873
|
case 1:
|
|
12758
12874
|
_t3 = _context2.v;
|
|
12759
12875
|
if (!refundInstruction) {
|
|
@@ -12761,7 +12877,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12761
12877
|
break;
|
|
12762
12878
|
}
|
|
12763
12879
|
_context2.n = 2;
|
|
12764
|
-
return computeInstructionFee(reserve, version, [refundInstruction]);
|
|
12880
|
+
return computeInstructionFee(reserve, version, [refundInstruction], context);
|
|
12765
12881
|
case 2:
|
|
12766
12882
|
_t4 = _context2.v;
|
|
12767
12883
|
_context2.n = 4;
|
|
@@ -12776,7 +12892,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12776
12892
|
return 'DepositReserveAsset' in j || 'InitiateTeleport' in j;
|
|
12777
12893
|
});
|
|
12778
12894
|
return instr ? 'DepositReserveAsset' in instr ? instr.DepositReserveAsset.xcm : instr.InitiateTeleport.xcm : undefined;
|
|
12779
|
-
}());
|
|
12895
|
+
}(), context);
|
|
12780
12896
|
case 5:
|
|
12781
12897
|
_t6 = _context2.v;
|
|
12782
12898
|
_t2 = {
|
|
@@ -12792,7 +12908,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12792
12908
|
break;
|
|
12793
12909
|
}
|
|
12794
12910
|
_context2.n = 7;
|
|
12795
|
-
return computeInstructionFee(hasXcmPaymentApiSupport(dest.chain) ? dest : reserve, version, customXcm);
|
|
12911
|
+
return computeInstructionFee(hasXcmPaymentApiSupport(dest.chain) ? dest : reserve, version, customXcm, context);
|
|
12796
12912
|
case 7:
|
|
12797
12913
|
_t7 = _context2.v;
|
|
12798
12914
|
_context2.n = 9;
|
|
@@ -12806,7 +12922,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12806
12922
|
break;
|
|
12807
12923
|
}
|
|
12808
12924
|
_context2.n = 10;
|
|
12809
|
-
return computeInstructionFee(hasXcmPaymentApiSupport(reserve.chain) ? reserve : dest, version, [refundInstruction]);
|
|
12925
|
+
return computeInstructionFee(hasXcmPaymentApiSupport(reserve.chain) ? reserve : dest, version, [refundInstruction], context);
|
|
12810
12926
|
case 10:
|
|
12811
12927
|
_t9 = _context2.v;
|
|
12812
12928
|
_context2.n = 12;
|
|
@@ -12825,7 +12941,7 @@ var computeAllFees = /*#__PURE__*/function () {
|
|
|
12825
12941
|
}
|
|
12826
12942
|
}, _callee2);
|
|
12827
12943
|
}));
|
|
12828
|
-
return function computeAllFees(
|
|
12944
|
+
return function computeAllFees(_x5, _x6, _x7, _x8) {
|
|
12829
12945
|
return _ref4.apply(this, arguments);
|
|
12830
12946
|
};
|
|
12831
12947
|
}();
|
|
@@ -14016,10 +14132,10 @@ var GeneralBuilder = /*#__PURE__*/function () {
|
|
|
14016
14132
|
key: "createTxFactory",
|
|
14017
14133
|
value: function createTxFactory() {
|
|
14018
14134
|
var _this = this;
|
|
14019
|
-
return function (amount) {
|
|
14135
|
+
return function (amount, relative) {
|
|
14020
14136
|
return createTx(_objectSpread2(_objectSpread2({}, _this._options), {}, {
|
|
14021
14137
|
api: _this.api
|
|
14022
|
-
}), _this, amount);
|
|
14138
|
+
}), _this, amount, relative);
|
|
14023
14139
|
};
|
|
14024
14140
|
}
|
|
14025
14141
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paraspell/sdk-core",
|
|
3
|
-
"version": "11.12.
|
|
3
|
+
"version": "11.12.6",
|
|
4
4
|
"description": "SDK core for ParaSpell XCM/XCMP tool for developers",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"@noble/hashes": "^1.8.0",
|
|
27
27
|
"@scure/base": "^2.0.0",
|
|
28
28
|
"viem": "^2.37.9",
|
|
29
|
-
"@paraspell/assets": "11.12.
|
|
30
|
-
"@paraspell/sdk-common": "11.12.
|
|
31
|
-
"@paraspell/pallets": "11.12.
|
|
29
|
+
"@paraspell/assets": "11.12.6",
|
|
30
|
+
"@paraspell/sdk-common": "11.12.6",
|
|
31
|
+
"@paraspell/pallets": "11.12.6"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@babel/plugin-syntax-import-attributes": "^7.27.1",
|