@paraspell/sdk-dedot 12.9.0

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 ADDED
@@ -0,0 +1,1905 @@
1
+ import { getEvmPrivateKeyHex, getNativeAssetSymbol, getOtherAssets, NumberFormatError, createClientCache, MAX_CLIENTS, EXTENSION_MS, createClientPoolHelpers, BatchMode, isConfig, findNativeAssetInfoOrThrow, getChainProviders, isSenderSigner, DEFAULT_TTL_MS, resolveChainApi, isExternalChain, UnsupportedOperationError, findAssetInfoOrThrow, hasXcmPaymentApiSupport, resolveModuleError, getAssetsObject, RuntimeApiUnavailableError, wrapTxBypass, localizeLocation, isAssetXcEqual, addXcmVersionHeader, RELAY_LOCATION, getRelayChainOf, replaceBigInt, createChainClient as createChainClient$1, getBalance as getBalance$1, claimAssets as claimAssets$1, Foreign, ForeignAbstract, Native, Override, findAssetInfo, getAllAssetsSymbols, getAssetDecimals, getAssetId, getAssets, getExistentialDeposit, getNativeAssets, getRelayChainSymbol, getSupportedAssets, getTChain, hasSupportForAsset, isChainEvm, convertSs58 as convertSs58$1, Builder as Builder$1, getBridgeStatus as getBridgeStatus$1, getParaEthTransferFees as getParaEthTransferFees$1, DRY_RUN_CLIENT_TIMEOUT_MS, dryRun as dryRun$1, dryRunOrigin as dryRunOrigin$1 } from '@paraspell/sdk-core';
2
+ export * from '@paraspell/sdk-core';
3
+ import { stringPascalCase, isEvmAddress, decodeAddress, isHex, u8aToHex, hexToU8a, stringToU8a, blake2AsHex } from 'dedot/utils';
4
+ import { Keyring } from '@polkadot/keyring';
5
+ import { DedotClient, WsProvider } from 'dedot';
6
+
7
+ function _arrayLikeToArray(r, a) {
8
+ (null == a || a > r.length) && (a = r.length);
9
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
10
+ return n;
11
+ }
12
+ function _arrayWithoutHoles(r) {
13
+ if (Array.isArray(r)) return _arrayLikeToArray(r);
14
+ }
15
+ function _assertThisInitialized(e) {
16
+ if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
17
+ return e;
18
+ }
19
+ function asyncGeneratorStep(n, t, e, r, o, a, c) {
20
+ try {
21
+ var i = n[a](c),
22
+ u = i.value;
23
+ } catch (n) {
24
+ return void e(n);
25
+ }
26
+ i.done ? t(u) : Promise.resolve(u).then(r, o);
27
+ }
28
+ function _asyncToGenerator(n) {
29
+ return function () {
30
+ var t = this,
31
+ e = arguments;
32
+ return new Promise(function (r, o) {
33
+ var a = n.apply(t, e);
34
+ function _next(n) {
35
+ asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
36
+ }
37
+ function _throw(n) {
38
+ asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
39
+ }
40
+ _next(void 0);
41
+ });
42
+ };
43
+ }
44
+ function _callSuper(t, o, e) {
45
+ return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
46
+ }
47
+ function _classCallCheck(a, n) {
48
+ if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
49
+ }
50
+ function _construct(t, e, r) {
51
+ if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
52
+ var o = [null];
53
+ o.push.apply(o, e);
54
+ var p = new (t.bind.apply(t, o))();
55
+ return r && _setPrototypeOf(p, r.prototype), p;
56
+ }
57
+ function _defineProperties(e, r) {
58
+ for (var t = 0; t < r.length; t++) {
59
+ var o = r[t];
60
+ o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o);
61
+ }
62
+ }
63
+ function _createClass(e, r, t) {
64
+ return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", {
65
+ writable: false
66
+ }), e;
67
+ }
68
+ function _createForOfIteratorHelper(r, e) {
69
+ var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
70
+ if (!t) {
71
+ if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {
72
+ t && (r = t);
73
+ var n = 0,
74
+ F = function () {};
75
+ return {
76
+ s: F,
77
+ n: function () {
78
+ return n >= r.length ? {
79
+ done: true
80
+ } : {
81
+ done: false,
82
+ value: r[n++]
83
+ };
84
+ },
85
+ e: function (r) {
86
+ throw r;
87
+ },
88
+ f: F
89
+ };
90
+ }
91
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
92
+ }
93
+ var o,
94
+ a = true,
95
+ u = false;
96
+ return {
97
+ s: function () {
98
+ t = t.call(r);
99
+ },
100
+ n: function () {
101
+ var r = t.next();
102
+ return a = r.done, r;
103
+ },
104
+ e: function (r) {
105
+ u = true, o = r;
106
+ },
107
+ f: function () {
108
+ try {
109
+ a || null == t.return || t.return();
110
+ } finally {
111
+ if (u) throw o;
112
+ }
113
+ }
114
+ };
115
+ }
116
+ function _defineProperty(e, r, t) {
117
+ return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
118
+ value: t,
119
+ enumerable: true,
120
+ configurable: true,
121
+ writable: true
122
+ }) : e[r] = t, e;
123
+ }
124
+ function _getPrototypeOf(t) {
125
+ return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
126
+ return t.__proto__ || Object.getPrototypeOf(t);
127
+ }, _getPrototypeOf(t);
128
+ }
129
+ function _inherits(t, e) {
130
+ if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
131
+ t.prototype = Object.create(e && e.prototype, {
132
+ constructor: {
133
+ value: t,
134
+ writable: true,
135
+ configurable: true
136
+ }
137
+ }), Object.defineProperty(t, "prototype", {
138
+ writable: false
139
+ }), e && _setPrototypeOf(t, e);
140
+ }
141
+ function _isNativeFunction(t) {
142
+ try {
143
+ return -1 !== Function.toString.call(t).indexOf("[native code]");
144
+ } catch (n) {
145
+ return "function" == typeof t;
146
+ }
147
+ }
148
+ function _isNativeReflectConstruct() {
149
+ try {
150
+ var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
151
+ } catch (t) {}
152
+ return (_isNativeReflectConstruct = function () {
153
+ return !!t;
154
+ })();
155
+ }
156
+ function _iterableToArray(r) {
157
+ if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
158
+ }
159
+ function _nonIterableSpread() {
160
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
161
+ }
162
+ function ownKeys(e, r) {
163
+ var t = Object.keys(e);
164
+ if (Object.getOwnPropertySymbols) {
165
+ var o = Object.getOwnPropertySymbols(e);
166
+ r && (o = o.filter(function (r) {
167
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
168
+ })), t.push.apply(t, o);
169
+ }
170
+ return t;
171
+ }
172
+ function _objectSpread2(e) {
173
+ for (var r = 1; r < arguments.length; r++) {
174
+ var t = null != arguments[r] ? arguments[r] : {};
175
+ r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
176
+ _defineProperty(e, r, t[r]);
177
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
178
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
179
+ });
180
+ }
181
+ return e;
182
+ }
183
+ function _possibleConstructorReturn(t, e) {
184
+ if (e && ("object" == typeof e || "function" == typeof e)) return e;
185
+ if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
186
+ return _assertThisInitialized(t);
187
+ }
188
+ function _regenerator() {
189
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
190
+ var e,
191
+ t,
192
+ r = "function" == typeof Symbol ? Symbol : {},
193
+ n = r.iterator || "@@iterator",
194
+ o = r.toStringTag || "@@toStringTag";
195
+ function i(r, n, o, i) {
196
+ var c = n && n.prototype instanceof Generator ? n : Generator,
197
+ u = Object.create(c.prototype);
198
+ return _regeneratorDefine(u, "_invoke", function (r, n, o) {
199
+ var i,
200
+ c,
201
+ u,
202
+ f = 0,
203
+ p = o || [],
204
+ y = false,
205
+ G = {
206
+ p: 0,
207
+ n: 0,
208
+ v: e,
209
+ a: d,
210
+ f: d.bind(e, 4),
211
+ d: function (t, r) {
212
+ return i = t, c = 0, u = e, G.n = r, a;
213
+ }
214
+ };
215
+ function d(r, n) {
216
+ for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
217
+ var o,
218
+ i = p[t],
219
+ d = G.p,
220
+ l = i[2];
221
+ r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
222
+ }
223
+ if (o || r > 1) return a;
224
+ throw y = true, n;
225
+ }
226
+ return function (o, p, l) {
227
+ if (f > 1) throw TypeError("Generator is already running");
228
+ for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
229
+ i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
230
+ try {
231
+ if (f = 2, i) {
232
+ if (c || (o = "next"), t = i[o]) {
233
+ if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
234
+ if (!t.done) return t;
235
+ u = t.value, c < 2 && (c = 0);
236
+ } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
237
+ i = e;
238
+ } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
239
+ } catch (t) {
240
+ i = e, c = 1, u = t;
241
+ } finally {
242
+ f = 1;
243
+ }
244
+ }
245
+ return {
246
+ value: t,
247
+ done: y
248
+ };
249
+ };
250
+ }(r, o, i), true), u;
251
+ }
252
+ var a = {};
253
+ function Generator() {}
254
+ function GeneratorFunction() {}
255
+ function GeneratorFunctionPrototype() {}
256
+ t = Object.getPrototypeOf;
257
+ var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
258
+ return this;
259
+ }), t),
260
+ u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
261
+ function f(e) {
262
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
263
+ }
264
+ return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () {
265
+ return this;
266
+ }), _regeneratorDefine(u, "toString", function () {
267
+ return "[object Generator]";
268
+ }), (_regenerator = function () {
269
+ return {
270
+ w: i,
271
+ m: f
272
+ };
273
+ })();
274
+ }
275
+ function _regeneratorDefine(e, r, n, t) {
276
+ var i = Object.defineProperty;
277
+ try {
278
+ i({}, "", {});
279
+ } catch (e) {
280
+ i = 0;
281
+ }
282
+ _regeneratorDefine = function (e, r, n, t) {
283
+ function o(r, n) {
284
+ _regeneratorDefine(e, r, function (e) {
285
+ return this._invoke(r, n, e);
286
+ });
287
+ }
288
+ r ? i ? i(e, r, {
289
+ value: n,
290
+ enumerable: !t,
291
+ configurable: !t,
292
+ writable: !t
293
+ }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
294
+ }, _regeneratorDefine(e, r, n, t);
295
+ }
296
+ function _setPrototypeOf(t, e) {
297
+ return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
298
+ return t.__proto__ = e, t;
299
+ }, _setPrototypeOf(t, e);
300
+ }
301
+ function _toConsumableArray(r) {
302
+ return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
303
+ }
304
+ function _toPrimitive(t, r) {
305
+ if ("object" != typeof t || !t) return t;
306
+ var e = t[Symbol.toPrimitive];
307
+ if (void 0 !== e) {
308
+ var i = e.call(t, r);
309
+ if ("object" != typeof i) return i;
310
+ throw new TypeError("@@toPrimitive must return a primitive value.");
311
+ }
312
+ return (String )(t);
313
+ }
314
+ function _toPropertyKey(t) {
315
+ var i = _toPrimitive(t, "string");
316
+ return "symbol" == typeof i ? i : i + "";
317
+ }
318
+ function _typeof(o) {
319
+ "@babel/helpers - typeof";
320
+
321
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
322
+ return typeof o;
323
+ } : function (o) {
324
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
325
+ }, _typeof(o);
326
+ }
327
+ function _unsupportedIterableToArray(r, a) {
328
+ if (r) {
329
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
330
+ var t = {}.toString.call(r).slice(8, -1);
331
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
332
+ }
333
+ }
334
+ function _wrapNativeSuper(t) {
335
+ var r = "function" == typeof Map ? new Map() : void 0;
336
+ return _wrapNativeSuper = function (t) {
337
+ if (null === t || !_isNativeFunction(t)) return t;
338
+ if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
339
+ if (void 0 !== r) {
340
+ if (r.has(t)) return r.get(t);
341
+ r.set(t, Wrapper);
342
+ }
343
+ function Wrapper() {
344
+ return _construct(t, arguments, _getPrototypeOf(this).constructor);
345
+ }
346
+ return Wrapper.prototype = Object.create(t.prototype, {
347
+ constructor: {
348
+ value: Wrapper,
349
+ enumerable: false,
350
+ writable: true,
351
+ configurable: true
352
+ }
353
+ }), _setPrototypeOf(Wrapper, t);
354
+ }, _wrapNativeSuper(t);
355
+ }
356
+
357
+ var TypeNotFoundError = /*#__PURE__*/function (_Error) {
358
+ function TypeNotFoundError(name) {
359
+ var _this;
360
+ _classCallCheck(this, TypeNotFoundError);
361
+ _this = _callSuper(this, TypeNotFoundError, ["Cannot find type by name: ".concat(name)]);
362
+ _this.name = "TypeNotFoundError";
363
+ return _this;
364
+ }
365
+ _inherits(TypeNotFoundError, _Error);
366
+ return _createClass(TypeNotFoundError);
367
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
368
+
369
+ /**
370
+ * Code snippet provided by the Dedot team.
371
+ * Finds a codec by name and returns its shape,
372
+ * which can then be used to encode data into hex.
373
+ *
374
+ * https://gist.github.com/sinzii/3e01e0c0716f879190f2a10ab7d23315
375
+ */
376
+ var PATH_RM_INDEX_1 = ["generic", "misc", "pallet", "traits", "types"];
377
+ var cleanPath = function cleanPath(path) {
378
+ return path.map(function (one) {
379
+ return stringPascalCase(one);
380
+ }).filter(function (one, idx, currentPath) {
381
+ return idx === 0 || one !== currentPath[idx - 1];
382
+ }).join("");
383
+ };
384
+ var buildTypeNameIndex = function buildTypeNameIndex(registry) {
385
+ var index = new Map();
386
+ for (var _i = 0, _Object$keys = Object.keys(registry.types); _i < _Object$keys.length; _i++) {
387
+ var typeId = _Object$keys[_i];
388
+ var path = registry.types[typeId].path;
389
+ if (path.length === 0) continue;
390
+ var fullPath = path.join("::");
391
+ if (!index.has(fullPath)) {
392
+ index.set(fullPath, Number(typeId));
393
+ }
394
+ var shortName = path[path.length - 1];
395
+ if (!index.has(shortName)) {
396
+ index.set(shortName, Number(typeId));
397
+ }
398
+ // Generated type name (same logic as codegen's BaseTypesGen)
399
+ var generatedName = void 0;
400
+ if (path.length > 1 && PATH_RM_INDEX_1.includes(path[1])) {
401
+ var newPath = path.slice();
402
+ newPath.splice(1, 1);
403
+ generatedName = cleanPath(newPath);
404
+ } else {
405
+ generatedName = cleanPath(path);
406
+ }
407
+ if (!index.has(generatedName)) {
408
+ index.set(generatedName, Number(typeId));
409
+ }
410
+ }
411
+ return index;
412
+ };
413
+ var findCodecByType = function findCodecByType(registry, name) {
414
+ var index = buildTypeNameIndex(registry);
415
+ var typeId = index.get(name);
416
+ if (typeId === undefined) {
417
+ throw new TypeNotFoundError(name);
418
+ }
419
+ return registry.findCodec(typeId);
420
+ };
421
+
422
+ var createKeyringPair = function createKeyringPair(path) {
423
+ var evmPrivateKey = getEvmPrivateKeyHex(path);
424
+ var keyring = evmPrivateKey ? new Keyring() : new Keyring({
425
+ type: "sr25519"
426
+ });
427
+ return evmPrivateKey ? keyring.createFromUri(evmPrivateKey, undefined, "ethereum") : keyring.addFromUri(path);
428
+ };
429
+
430
+ var lowercaseFirstLetter = function lowercaseFirstLetter(value) {
431
+ return value.charAt(0).toLowerCase() + value.slice(1);
432
+ };
433
+ var snakeToCamel = function snakeToCamel(str) {
434
+ return str.replace(/([-_][a-z])/g, function (group) {
435
+ return group.toUpperCase().replace("-", "").replace("_", "");
436
+ });
437
+ };
438
+
439
+ /* eslint-disable @typescript-eslint/no-explicit-any */
440
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
441
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
442
+ var getLocationTokenId = function getLocationTokenId(location, chain) {
443
+ if (location.interior.type === "Here") {
444
+ // native token
445
+ return getNativeAssetSymbol(chain);
446
+ }
447
+ var foreignAssets = getOtherAssets(chain);
448
+ if (location.interior.type === "X2") {
449
+ if (location.interior.value[0].type === "PalletInstance" && location.interior.value[0].value === 50 && location.interior.value[1].type === "GeneralIndex") {
450
+ var _foreignAssets$find$a, _foreignAssets$find;
451
+ var assetId = location.interior.value[1].value;
452
+ return (_foreignAssets$find$a = (_foreignAssets$find = foreignAssets.find(function (asset) {
453
+ return asset.assetId === String(assetId);
454
+ })) === null || _foreignAssets$find === void 0 ? void 0 : _foreignAssets$find.assetId) !== null && _foreignAssets$find$a !== void 0 ? _foreignAssets$find$a : null;
455
+ }
456
+ }
457
+ return null;
458
+ };
459
+
460
+ var computeOriginFee = function computeOriginFee(dryRun, chain, executionFee) {
461
+ var isFeeAsset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
462
+ // Extract delivery fees from emitted events
463
+ var deliveryFees = [];
464
+ var assetConversionFee = 0n;
465
+ var _iterator = _createForOfIteratorHelper(dryRun.value.emittedEvents),
466
+ _step;
467
+ try {
468
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
469
+ var _e$value, _e$value2;
470
+ var e = _step.value;
471
+ var isXcmEvent = ["XcmPallet", "PolkadotXcm", "CumulusXcm"].includes(e.pallet);
472
+ var isFeesPaid = e.palletEvent.name === "FeesPaid";
473
+ if (isXcmEvent && isFeesPaid && e.palletEvent.data.fees) {
474
+ var _iterator2 = _createForOfIteratorHelper(e.palletEvent.data.fees),
475
+ _step2;
476
+ try {
477
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
478
+ var feeItem = _step2.value;
479
+ if (feeItem.fun.type === "NonFungible") continue;
480
+ var plancks = feeItem.fun.value;
481
+ var tokenSymbol = getLocationTokenId(feeItem.id, chain);
482
+ if (!tokenSymbol || !plancks) continue;
483
+ deliveryFees.push({
484
+ plancks: plancks,
485
+ tokenSymbol: tokenSymbol
486
+ });
487
+ }
488
+ } catch (err) {
489
+ _iterator2.e(err);
490
+ } finally {
491
+ _iterator2.f();
492
+ }
493
+ }
494
+ if (isFeeAsset && e.type === "AssetConversion" && ((_e$value = e.value) === null || _e$value === void 0 ? void 0 : _e$value.type) === "SwapCreditExecuted" && (_e$value2 = e.value) !== null && _e$value2 !== void 0 && _e$value2.value && e.value.value.amount_in !== undefined && e.value.value.amount_in !== null) {
495
+ assetConversionFee += e.value.value.amount_in;
496
+ }
497
+ }
498
+ } catch (err) {
499
+ _iterator.e(err);
500
+ } finally {
501
+ _iterator.f();
502
+ }
503
+ if (isFeeAsset && assetConversionFee > 0n) {
504
+ return assetConversionFee;
505
+ } else {
506
+ var nativeAssetSymbol = getNativeAssetSymbol(chain);
507
+ var totalDeliveryFees = deliveryFees.filter(function (df) {
508
+ return df.tokenSymbol === nativeAssetSymbol;
509
+ }).reduce(function (acc, df) {
510
+ return acc + df.plancks;
511
+ }, 0n);
512
+ return totalDeliveryFees + executionFee;
513
+ }
514
+ };
515
+
516
+ var isValidSubstrateAddress = function isValidSubstrateAddress(address) {
517
+ try {
518
+ return !!decodeAddress(address);
519
+ } catch (_unused) {
520
+ return false;
521
+ }
522
+ };
523
+ var checkAndConvertToNumberOrBigInt = function checkAndConvertToNumberOrBigInt(input) {
524
+ if (!/^-?\d+$/.test(input)) {
525
+ throw new NumberFormatError("Invalid integer string");
526
+ }
527
+ var bigIntValue = BigInt(input);
528
+ if (bigIntValue >= Number.MIN_SAFE_INTEGER && bigIntValue <= Number.MAX_SAFE_INTEGER) {
529
+ return Number(bigIntValue);
530
+ }
531
+ return bigIntValue;
532
+ };
533
+ var _transform = function transform(obj) {
534
+ if (Array.isArray(obj)) {
535
+ return obj.map(_transform);
536
+ } else if (_typeof(obj) === "object" && obj !== null) {
537
+ var keys = Object.keys(obj);
538
+ if (keys.length === 1) {
539
+ var key = keys[0];
540
+ var value = obj[key];
541
+ if (key === "items" && Array.isArray(value)) {
542
+ return {
543
+ items: value
544
+ };
545
+ }
546
+ if (key === "AccountId32") {
547
+ return {
548
+ type: key,
549
+ value: {
550
+ network: value.network === "any" ? {
551
+ type: "Any"
552
+ } : undefined,
553
+ id: value.id
554
+ }
555
+ };
556
+ } else if (key === "Id") {
557
+ return {
558
+ type: key,
559
+ value: value
560
+ };
561
+ } else if (key === "Substrate") {
562
+ return {
563
+ type: key,
564
+ value: value
565
+ };
566
+ } else if (key === "OtherReserve") {
567
+ return {
568
+ type: key,
569
+ value: checkAndConvertToNumberOrBigInt(value)
570
+ };
571
+ } else if (key === "GlobalConsensus" && _typeof(value) === "object" && ("polkadot" in value || "kusama" in value)) {
572
+ return {
573
+ type: key,
574
+ value: {
575
+ type: "polkadot" in value ? "Polkadot" : "Kusama"
576
+ }
577
+ };
578
+ } else if (key === "PalletInstance") {
579
+ return {
580
+ type: key,
581
+ value: value
582
+ };
583
+ } else if (key === "GeneralIndex") {
584
+ return {
585
+ type: key,
586
+ value: BigInt(value)
587
+ };
588
+ } else if (key === "Ethereum") {
589
+ return {
590
+ type: key,
591
+ value: {
592
+ chainId: value.chainId
593
+ }
594
+ };
595
+ } else if (key === "AccountKey20") {
596
+ return {
597
+ type: key,
598
+ value: {
599
+ network: value.network === "any" ? {
600
+ type: "Any"
601
+ } : undefined,
602
+ key: value.key
603
+ }
604
+ };
605
+ } else if (key === "SetFeesMode") {
606
+ var _value$jit_withdraw;
607
+ return {
608
+ type: key,
609
+ value: {
610
+ jit_withdraw: (_value$jit_withdraw = value.jit_withdraw) !== null && _value$jit_withdraw !== void 0 ? _value$jit_withdraw : false
611
+ }
612
+ };
613
+ } else if (key === "PayFees") {
614
+ return {
615
+ type: key,
616
+ value: {
617
+ asset: _transform(value.asset)
618
+ }
619
+ };
620
+ } else if (key === "X1" && Array.isArray(value)) {
621
+ return {
622
+ type: key,
623
+ value: value.map(_transform)
624
+ };
625
+ } else if (key === "Fungible") {
626
+ return {
627
+ type: key,
628
+ value: value
629
+ };
630
+ } else if (typeof value === "string" && !value.startsWith("0x")) {
631
+ return {
632
+ type: key,
633
+ value: {
634
+ type: value
635
+ }
636
+ };
637
+ } else if (typeof value === "number") {
638
+ return {
639
+ type: key,
640
+ value: value
641
+ };
642
+ } else {
643
+ return {
644
+ type: key,
645
+ value: _transform(value)
646
+ };
647
+ }
648
+ } else {
649
+ var newObj = {};
650
+ var _iterator = _createForOfIteratorHelper(keys),
651
+ _step;
652
+ try {
653
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
654
+ var _key = _step.value;
655
+ var v = obj[_key];
656
+ var k = snakeToCamel(_key);
657
+ if (_key === "call") {
658
+ newObj[k] = {
659
+ encoded: v
660
+ };
661
+ continue;
662
+ }
663
+ if (_key === "fee_item") {
664
+ newObj[k] = Number(v);
665
+ continue;
666
+ }
667
+ if (_key === "currency_id" && typeof v === "string") {
668
+ try {
669
+ newObj[k] = checkAndConvertToNumberOrBigInt(v);
670
+ } catch (_e) {
671
+ newObj[k] = {
672
+ type: v
673
+ };
674
+ }
675
+ }
676
+ if (k === "amount" && typeof v === "string") {
677
+ try {
678
+ newObj[k] = BigInt(v);
679
+ } catch (_e) {
680
+ newObj[k] = {
681
+ type: v
682
+ };
683
+ }
684
+ continue;
685
+ }
686
+ if (_key === "dest_weight" && v === null) {
687
+ newObj[k] = undefined;
688
+ continue;
689
+ }
690
+ if (typeof v === "string" && isValidSubstrateAddress(v)) {
691
+ newObj[k] = v;
692
+ continue;
693
+ }
694
+ var noTypeKeys = ["fun", "originKind"];
695
+ if (noTypeKeys.includes(k) && typeof v === "string") {
696
+ newObj[k] = v;
697
+ continue;
698
+ }
699
+ if (typeof v === "string" && isEvmAddress(v)) {
700
+ newObj[k] = v;
701
+ } else if (typeof v === "string" && v.startsWith("0x")) {
702
+ newObj[k] = v;
703
+ } else if (typeof v === "string") {
704
+ newObj[k] = {
705
+ type: v
706
+ };
707
+ } else {
708
+ newObj[k] = _transform(v);
709
+ }
710
+ }
711
+ } catch (err) {
712
+ _iterator.e(err);
713
+ } finally {
714
+ _iterator.f();
715
+ }
716
+ return newObj;
717
+ }
718
+ } else {
719
+ // For primitive values
720
+ return obj;
721
+ }
722
+ };
723
+
724
+ var clientPool = createClientCache(MAX_CLIENTS, /*#__PURE__*/function () {
725
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(client) {
726
+ return _regenerator().w(function (_context) {
727
+ while (1) switch (_context.n) {
728
+ case 0:
729
+ _context.n = 1;
730
+ return client.rpc.system_chain();
731
+ case 1:
732
+ return _context.a(2);
733
+ }
734
+ }, _callee);
735
+ }));
736
+ return function (_x) {
737
+ return _ref.apply(this, arguments);
738
+ };
739
+ }(), function (_key, entry) {
740
+ void entry.client.disconnect();
741
+ }, EXTENSION_MS);
742
+ var createDedotClient = /*#__PURE__*/function () {
743
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(ws) {
744
+ return _regenerator().w(function (_context2) {
745
+ while (1) switch (_context2.n) {
746
+ case 0:
747
+ return _context2.a(2, DedotClient["new"](new WsProvider(ws)));
748
+ }
749
+ }, _callee2);
750
+ }));
751
+ return function createDedotClient(_x2) {
752
+ return _ref2.apply(this, arguments);
753
+ };
754
+ }();
755
+ var _createClientPoolHelp = createClientPoolHelpers(clientPool, createDedotClient),
756
+ leaseClient = _createClientPoolHelp.leaseClient,
757
+ releaseClient = _createClientPoolHelp.releaseClient;
758
+ var extractDryRunXcmFailureReason = function extractDryRunXcmFailureReason(result) {
759
+ var _result$value, _executionResult$valu, _ref3, _ref4, _ref5, _error$error$type, _error$error, _error$value, _error$value2, _error$value3, _ref6, _result$value2;
760
+ var executionResult = result === null || result === void 0 || (_result$value = result.value) === null || _result$value === void 0 ? void 0 : _result$value.executionResult;
761
+ var error = executionResult === null || executionResult === void 0 || (_executionResult$valu = executionResult.value) === null || _executionResult$valu === void 0 ? void 0 : _executionResult$valu.error;
762
+ var failureType = (_ref3 = (_ref4 = (_ref5 = (_error$error$type = error === null || error === void 0 || (_error$error = error.error) === null || _error$error === void 0 ? void 0 : _error$error.type) !== null && _error$error$type !== void 0 ? _error$error$type : error === null || error === void 0 || (_error$value = error.value) === null || _error$value === void 0 || (_error$value = _error$value.error) === null || _error$value === void 0 ? void 0 : _error$value.type) !== null && _ref5 !== void 0 ? _ref5 : error === null || error === void 0 || (_error$value2 = error.value) === null || _error$value2 === void 0 || (_error$value2 = _error$value2.value) === null || _error$value2 === void 0 ? void 0 : _error$value2.type) !== null && _ref4 !== void 0 ? _ref4 : error === null || error === void 0 || (_error$value3 = error.value) === null || _error$value3 === void 0 ? void 0 : _error$value3.type) !== null && _ref3 !== void 0 ? _ref3 : error === null || error === void 0 ? void 0 : error.type;
763
+ if (typeof failureType === "string") {
764
+ return failureType;
765
+ }
766
+ if (typeof (executionResult === null || executionResult === void 0 ? void 0 : executionResult.type) === "string") {
767
+ return executionResult.type;
768
+ }
769
+ return JSON.stringify((_ref6 = (_result$value2 = result === null || result === void 0 ? void 0 : result.value) !== null && _result$value2 !== void 0 ? _result$value2 : result) !== null && _ref6 !== void 0 ? _ref6 : "Unknown error structure", replaceBigInt);
770
+ };
771
+ var DedotApi = /*#__PURE__*/function () {
772
+ function DedotApi(config) {
773
+ _classCallCheck(this, DedotApi);
774
+ this._ttlMs = DEFAULT_TTL_MS;
775
+ this.initialized = false;
776
+ this.disconnectAllowed = true;
777
+ this._config = config;
778
+ }
779
+ return _createClass(DedotApi, [{
780
+ key: "getType",
781
+ value: function getType() {
782
+ return "DEDOT";
783
+ }
784
+ }, {
785
+ key: "getConfig",
786
+ value: function getConfig() {
787
+ return this._config;
788
+ }
789
+ }, {
790
+ key: "getApi",
791
+ value: function getApi() {
792
+ return this.api;
793
+ }
794
+ }, {
795
+ key: "init",
796
+ value: function () {
797
+ var _init = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(chain) {
798
+ var _this = this;
799
+ var clientTtlMs,
800
+ _args = arguments;
801
+ return _regenerator().w(function (_context3) {
802
+ while (1) switch (_context3.n) {
803
+ case 0:
804
+ clientTtlMs = _args.length > 1 && _args[1] !== undefined ? _args[1] : DEFAULT_TTL_MS;
805
+ if (!(this.initialized || isExternalChain(chain))) {
806
+ _context3.n = 1;
807
+ break;
808
+ }
809
+ return _context3.a(2);
810
+ case 1:
811
+ this._ttlMs = clientTtlMs;
812
+ this._chain = chain;
813
+ _context3.n = 2;
814
+ return resolveChainApi(this._config, chain, function (wsUrl, c) {
815
+ return _this.createApiInstance(wsUrl, c);
816
+ });
817
+ case 2:
818
+ this.api = _context3.v;
819
+ this.initialized = true;
820
+ case 3:
821
+ return _context3.a(2);
822
+ }
823
+ }, _callee3, this);
824
+ }));
825
+ function init(_x3) {
826
+ return _init.apply(this, arguments);
827
+ }
828
+ return init;
829
+ }()
830
+ }, {
831
+ key: "createApiInstance",
832
+ value: function createApiInstance(wsUrl, _chain) {
833
+ return leaseClient(wsUrl, this._ttlMs, false);
834
+ }
835
+ }, {
836
+ key: "accountToHex",
837
+ value: function accountToHex(address) {
838
+ var isPrefixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
839
+ if (isHex(address)) return address;
840
+ var uint8Array = decodeAddress(address);
841
+ var hex = u8aToHex(uint8Array);
842
+ return isPrefixed ? hex : hex.slice(2);
843
+ }
844
+ }, {
845
+ key: "accountToUint8a",
846
+ value: function accountToUint8a(address) {
847
+ return decodeAddress(address);
848
+ }
849
+ }, {
850
+ key: "convertToDedotCall",
851
+ value: function convertToDedotCall(_ref7) {
852
+ var module = _ref7.module,
853
+ method = _ref7.method;
854
+ return {
855
+ module: lowercaseFirstLetter(module),
856
+ method: snakeToCamel(method)
857
+ };
858
+ }
859
+ }, {
860
+ key: "deserializeExtrinsics",
861
+ value: function deserializeExtrinsics(serialized) {
862
+ var _this$api$tx$module;
863
+ var params = serialized.params;
864
+ var transformedParams = _transform(params);
865
+ var values = Object.values(transformedParams);
866
+ var _this$convertToDedotC = this.convertToDedotCall(serialized),
867
+ module = _this$convertToDedotC.module,
868
+ method = _this$convertToDedotC.method;
869
+ return (_this$api$tx$module = this.api.tx[module])[method].apply(_this$api$tx$module, values);
870
+ }
871
+ }, {
872
+ key: "txFromHex",
873
+ value: function txFromHex(hex) {
874
+ return Promise.resolve(this.api.toTx(hex));
875
+ }
876
+ }, {
877
+ key: "queryState",
878
+ value: function () {
879
+ var _queryState = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(serialized) {
880
+ var params, _this$convertToDedotC2, module, method;
881
+ return _regenerator().w(function (_context4) {
882
+ while (1) switch (_context4.n) {
883
+ case 0:
884
+ params = serialized.params;
885
+ _this$convertToDedotC2 = this.convertToDedotCall(serialized), module = _this$convertToDedotC2.module, method = _this$convertToDedotC2.method;
886
+ return _context4.a(2, this.api.query[module][method](params.length > 1 ? params : params[0]));
887
+ }
888
+ }, _callee4, this);
889
+ }));
890
+ function queryState(_x4) {
891
+ return _queryState.apply(this, arguments);
892
+ }
893
+ return queryState;
894
+ }()
895
+ }, {
896
+ key: "queryRuntimeApi",
897
+ value: function queryRuntimeApi(serialized) {
898
+ var _this$api$call$module;
899
+ var params = serialized.params;
900
+ var _this$convertToDedotC3 = this.convertToDedotCall(serialized),
901
+ module = _this$convertToDedotC3.module,
902
+ method = _this$convertToDedotC3.method;
903
+ return (_this$api$call$module = this.api.call[module])[method].apply(_this$api$call$module, _toConsumableArray(params));
904
+ }
905
+ }, {
906
+ key: "callBatchMethod",
907
+ value: function callBatchMethod(calls, mode) {
908
+ var method = mode === BatchMode.BATCH_ALL ? "batchAll" : "batch";
909
+ return this.api.tx.utility[method](calls.map(function (_ref8) {
910
+ var call = _ref8.call;
911
+ return call;
912
+ }));
913
+ }
914
+ }, {
915
+ key: "callDispatchAsMethod",
916
+ value: function callDispatchAsMethod(_ref9, address) {
917
+ var call = _ref9.call;
918
+ return this.api.tx.utility.dispatchAs({
919
+ type: "System",
920
+ value: {
921
+ type: "Signed",
922
+ value: address
923
+ }
924
+ }, call);
925
+ }
926
+ }, {
927
+ key: "objectToHex",
928
+ value: function objectToHex(obj, typeName) {
929
+ var $XcmVersionedXcm = findCodecByType(this.api.registry, typeName);
930
+ var transformedXcm = _transform(obj);
931
+ var hex = u8aToHex($XcmVersionedXcm.tryEncode(transformedXcm));
932
+ return Promise.resolve(hex.toString());
933
+ }
934
+ }, {
935
+ key: "hexToUint8a",
936
+ value: function hexToUint8a(hex) {
937
+ return hexToU8a(hex);
938
+ }
939
+ }, {
940
+ key: "stringToUint8a",
941
+ value: function stringToUint8a(str) {
942
+ return stringToU8a(str);
943
+ }
944
+ }, {
945
+ key: "getPaymentInfo",
946
+ value: function () {
947
+ var _getPaymentInfo = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(tx, address) {
948
+ return _regenerator().w(function (_context5) {
949
+ while (1) switch (_context5.n) {
950
+ case 0:
951
+ return _context5.a(2, tx.paymentInfo(address));
952
+ }
953
+ }, _callee5);
954
+ }));
955
+ function getPaymentInfo(_x5, _x6) {
956
+ return _getPaymentInfo.apply(this, arguments);
957
+ }
958
+ return getPaymentInfo;
959
+ }()
960
+ }, {
961
+ key: "quoteAhPrice",
962
+ value: function () {
963
+ var _quoteAhPrice = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(fromMl, toMl, amountIn) {
964
+ var includeFee,
965
+ quoted,
966
+ _args4 = arguments;
967
+ return _regenerator().w(function (_context6) {
968
+ while (1) switch (_context6.n) {
969
+ case 0:
970
+ includeFee = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : true;
971
+ _context6.n = 1;
972
+ return this.api.call.assetConversionApi.quotePriceExactTokensForTokens(fromMl, toMl, amountIn, includeFee);
973
+ case 1:
974
+ quoted = _context6.v;
975
+ return _context6.a(2, quoted !== undefined && quoted !== null ? BigInt(quoted) : undefined);
976
+ }
977
+ }, _callee6, this);
978
+ }));
979
+ function quoteAhPrice(_x7, _x8, _x9) {
980
+ return _quoteAhPrice.apply(this, arguments);
981
+ }
982
+ return quoteAhPrice;
983
+ }()
984
+ }, {
985
+ key: "getEvmStorage",
986
+ value: function getEvmStorage(contract, slot) {
987
+ return this.api.query.evm.accountStorages(contract, slot);
988
+ }
989
+ }, {
990
+ key: "getMethod",
991
+ value: function getMethod(tx) {
992
+ return lowercaseFirstLetter(tx.call.palletCall.name);
993
+ }
994
+ }, {
995
+ key: "getTypeThenAssetCount",
996
+ value: function getTypeThenAssetCount(tx) {
997
+ var _tx$call;
998
+ var method = this.getMethod(tx);
999
+ if (method !== "transferAssetsUsingTypeAndThen") return undefined;
1000
+ var assets = (_tx$call = tx.call) === null || _tx$call === void 0 || (_tx$call = _tx$call.palletCall) === null || _tx$call === void 0 || (_tx$call = _tx$call.params) === null || _tx$call === void 0 ? void 0 : _tx$call.assets;
1001
+ if (assets && Array.isArray(assets.value)) {
1002
+ return assets.value.length;
1003
+ }
1004
+ return undefined;
1005
+ }
1006
+ }, {
1007
+ key: "hasMethod",
1008
+ value: function hasMethod(pallet, method) {
1009
+ var _this$api$tx$palletFo;
1010
+ var palletFormatted = lowercaseFirstLetter(pallet);
1011
+ var methodFormatted = snakeToCamel(method);
1012
+ return Promise.resolve(((_this$api$tx$palletFo = this.api.tx[palletFormatted]) === null || _this$api$tx$palletFo === void 0 ? void 0 : _this$api$tx$palletFo[methodFormatted]) !== undefined);
1013
+ }
1014
+ }, {
1015
+ key: "getFromRpc",
1016
+ value: function () {
1017
+ var _getFromRpc = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7(module, method, key) {
1018
+ var rpcModule;
1019
+ return _regenerator().w(function (_context7) {
1020
+ while (1) switch (_context7.n) {
1021
+ case 0:
1022
+ rpcModule = this.api.rpc["".concat(module, "_").concat(method)];
1023
+ if (!(!rpcModule || !rpcModule(key))) {
1024
+ _context7.n = 1;
1025
+ break;
1026
+ }
1027
+ throw new UnsupportedOperationError("RPC method ".concat(module, ".").concat(method, " not available"));
1028
+ case 1:
1029
+ _context7.n = 2;
1030
+ return rpcModule(key);
1031
+ case 2:
1032
+ return _context7.a(2, _context7.v);
1033
+ }
1034
+ }, _callee7, this);
1035
+ }));
1036
+ function getFromRpc(_x0, _x1, _x10) {
1037
+ return _getFromRpc.apply(this, arguments);
1038
+ }
1039
+ return getFromRpc;
1040
+ }()
1041
+ }, {
1042
+ key: "blake2AsHex",
1043
+ value: function blake2AsHex$1(data) {
1044
+ return blake2AsHex(data);
1045
+ }
1046
+ }, {
1047
+ key: "clone",
1048
+ value: function clone() {
1049
+ return new DedotApi(isConfig(this._config) ? this._config : undefined);
1050
+ }
1051
+ }, {
1052
+ key: "createApiForChain",
1053
+ value: function () {
1054
+ var _createApiForChain = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8(chain) {
1055
+ var api;
1056
+ return _regenerator().w(function (_context8) {
1057
+ while (1) switch (_context8.n) {
1058
+ case 0:
1059
+ api = new DedotApi();
1060
+ _context8.n = 1;
1061
+ return api.init(chain);
1062
+ case 1:
1063
+ return _context8.a(2, api);
1064
+ }
1065
+ }, _callee8);
1066
+ }));
1067
+ function createApiForChain(_x11) {
1068
+ return _createApiForChain.apply(this, arguments);
1069
+ }
1070
+ return createApiForChain;
1071
+ }()
1072
+ }, {
1073
+ key: "resolveDefaultFeeAsset",
1074
+ value: function resolveDefaultFeeAsset(_ref0) {
1075
+ var chain = _ref0.chain,
1076
+ feeAsset = _ref0.feeAsset;
1077
+ return feeAsset !== null && feeAsset !== void 0 ? feeAsset : findNativeAssetInfoOrThrow(chain);
1078
+ }
1079
+ }, {
1080
+ key: "resolveFeeAsset",
1081
+ value: function () {
1082
+ var _resolveFeeAsset = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9(options) {
1083
+ var chain, address, assetId;
1084
+ return _regenerator().w(function (_context9) {
1085
+ while (1) switch (_context9.n) {
1086
+ case 0:
1087
+ chain = options.chain, address = options.address;
1088
+ if (chain.startsWith("Hydration")) {
1089
+ _context9.n = 1;
1090
+ break;
1091
+ }
1092
+ return _context9.a(2, {
1093
+ isCustomAsset: false,
1094
+ asset: this.resolveDefaultFeeAsset(options)
1095
+ });
1096
+ case 1:
1097
+ _context9.n = 2;
1098
+ return this.api.query.multiTransactionPayment.accountCurrencyMap(address);
1099
+ case 2:
1100
+ assetId = _context9.v;
1101
+ if (!(assetId === null || assetId === undefined)) {
1102
+ _context9.n = 3;
1103
+ break;
1104
+ }
1105
+ return _context9.a(2, {
1106
+ isCustomAsset: false,
1107
+ asset: this.resolveDefaultFeeAsset(options)
1108
+ });
1109
+ case 3:
1110
+ return _context9.a(2, {
1111
+ isCustomAsset: true,
1112
+ asset: findAssetInfoOrThrow(chain, {
1113
+ id: assetId
1114
+ }, null)
1115
+ });
1116
+ }
1117
+ }, _callee9, this);
1118
+ }));
1119
+ function resolveFeeAsset(_x12) {
1120
+ return _resolveFeeAsset.apply(this, arguments);
1121
+ }
1122
+ return resolveFeeAsset;
1123
+ }()
1124
+ }, {
1125
+ key: "getDryRunCall",
1126
+ value: function () {
1127
+ var _getDryRunCall = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1(options) {
1128
+ var _this2 = this,
1129
+ _result,
1130
+ _resValue$executionRe,
1131
+ _execRes$actualWeight;
1132
+ var tx, address, feeAsset, chain, destination, version, _options$useRootOrigi, useRootOrigin, bypassOptions, _getAssetsObject, supportsDryRunApi, basePayload, resolvedTx, resolvedFeeAsset, performDryRunCall, getExecutionSuccessFromResult, extractFailureReasonFromResult, result, isSuccess, failureErr, shouldRetryWithVersion, msg, _msg, resValue, execRes, forwardedXcms, actualWeight, weight, destParaId, localXcm, USE_XCM_PAYMENT_API_CHAINS, overriddenWeight, xcmFee, _yield$this$getPaymen, executionFee, fee, _t, _t2, _t3, _t4;
1133
+ return _regenerator().w(function (_context1) {
1134
+ while (1) switch (_context1.p = _context1.n) {
1135
+ case 0:
1136
+ tx = options.tx, address = options.address, feeAsset = options.feeAsset, chain = options.chain, destination = options.destination, version = options.version, _options$useRootOrigi = options.useRootOrigin, useRootOrigin = _options$useRootOrigi === void 0 ? false : _options$useRootOrigi, bypassOptions = options.bypassOptions;
1137
+ _getAssetsObject = getAssetsObject(chain), supportsDryRunApi = _getAssetsObject.supportsDryRunApi;
1138
+ if (supportsDryRunApi) {
1139
+ _context1.n = 1;
1140
+ break;
1141
+ }
1142
+ throw new RuntimeApiUnavailableError(chain, "DryRunApi");
1143
+ case 1:
1144
+ basePayload = {
1145
+ type: "System",
1146
+ value: useRootOrigin ? {
1147
+ type: "Root"
1148
+ } : {
1149
+ type: "Signed",
1150
+ value: address
1151
+ }
1152
+ };
1153
+ if (!useRootOrigin) {
1154
+ _context1.n = 3;
1155
+ break;
1156
+ }
1157
+ _context1.n = 2;
1158
+ return wrapTxBypass(_objectSpread2(_objectSpread2({}, options), {}, {
1159
+ api: this
1160
+ }), bypassOptions);
1161
+ case 2:
1162
+ _t = _context1.v;
1163
+ _context1.n = 4;
1164
+ break;
1165
+ case 3:
1166
+ _t = tx;
1167
+ case 4:
1168
+ resolvedTx = _t;
1169
+ _context1.n = 5;
1170
+ return this.resolveFeeAsset(options);
1171
+ case 5:
1172
+ resolvedFeeAsset = _context1.v;
1173
+ performDryRunCall = /*#__PURE__*/function () {
1174
+ var _ref1 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0(includeVersion) {
1175
+ var _this2$api$call$dryRu;
1176
+ var versionNum;
1177
+ return _regenerator().w(function (_context0) {
1178
+ while (1) switch (_context0.n) {
1179
+ case 0:
1180
+ versionNum = Number(version.charAt(1));
1181
+ return _context0.a(2, (_this2$api$call$dryRu = _this2.api.call.dryRunApi).dryRunCall.apply(_this2$api$call$dryRu, [basePayload, resolvedTx.call].concat(_toConsumableArray(includeVersion ? [versionNum] : []))));
1182
+ }
1183
+ }, _callee0);
1184
+ }));
1185
+ return function performDryRunCall(_x14) {
1186
+ return _ref1.apply(this, arguments);
1187
+ };
1188
+ }();
1189
+ getExecutionSuccessFromResult = function getExecutionSuccessFromResult(result) {
1190
+ var _result$value$executi;
1191
+ if (result !== null && result !== void 0 && result.isOk) {
1192
+ var _result$value3;
1193
+ var execResult = result === null || result === void 0 || (_result$value3 = result.value) === null || _result$value3 === void 0 ? void 0 : _result$value3.executionResult;
1194
+ if (execResult !== null && execResult !== void 0 && execResult.isOk) return true;
1195
+ }
1196
+ return Boolean((result === null || result === void 0 ? void 0 : result.isOk) && ((_result$value$executi = result.value.executionResult) === null || _result$value$executi === void 0 ? void 0 : _result$value$executi.isOk));
1197
+ };
1198
+ extractFailureReasonFromResult = function extractFailureReasonFromResult(result) {
1199
+ var _result$value4, _execResult$value;
1200
+ var execResult = result === null || result === void 0 || (_result$value4 = result.value) === null || _result$value4 === void 0 ? void 0 : _result$value4.executionResult;
1201
+ var execErr = (_execResult$value = execResult === null || execResult === void 0 ? void 0 : execResult.value) !== null && _execResult$value !== void 0 ? _execResult$value : execResult === null || execResult === void 0 ? void 0 : execResult.err;
1202
+ if (execErr !== null && execErr !== void 0 && execErr.error) {
1203
+ var _execErr$error, _execErr$error$Other, _execErr$error2, _execErr$error3;
1204
+ var modErr = (_execErr$error = execErr.error) === null || _execErr$error === void 0 ? void 0 : _execErr$error.value;
1205
+ if (modErr) {
1206
+ return resolveModuleError(chain, modErr);
1207
+ }
1208
+ var otherErr = (_execErr$error$Other = (_execErr$error2 = execErr.error) === null || _execErr$error2 === void 0 ? void 0 : _execErr$error2.Other) !== null && _execErr$error$Other !== void 0 ? _execErr$error$Other : (_execErr$error3 = execErr.error) === null || _execErr$error3 === void 0 ? void 0 : _execErr$error3.other;
1209
+ if (otherErr) {
1210
+ return {
1211
+ failureReason: String(otherErr)
1212
+ };
1213
+ }
1214
+ if (typeof execErr.error === "string") {
1215
+ return {
1216
+ failureReason: execErr.error
1217
+ };
1218
+ }
1219
+ return {
1220
+ failureReason: JSON.stringify(execErr.error)
1221
+ };
1222
+ }
1223
+ return {
1224
+ failureReason: JSON.stringify(result !== null && result !== void 0 ? result : "Unknown error")
1225
+ };
1226
+ }; // Attempt 1: WITHOUT version
1227
+ isSuccess = false;
1228
+ failureErr = {
1229
+ failureReason: ""
1230
+ };
1231
+ shouldRetryWithVersion = false;
1232
+ _context1.p = 6;
1233
+ _context1.n = 7;
1234
+ return performDryRunCall(false);
1235
+ case 7:
1236
+ result = _context1.v;
1237
+ isSuccess = getExecutionSuccessFromResult(result);
1238
+ if (!isSuccess) {
1239
+ failureErr = extractFailureReasonFromResult(result);
1240
+ if (failureErr.failureReason === "VersionedConversionFailed") {
1241
+ shouldRetryWithVersion = true;
1242
+ }
1243
+ }
1244
+ _context1.n = 10;
1245
+ break;
1246
+ case 8:
1247
+ _context1.p = 8;
1248
+ _t2 = _context1.v;
1249
+ msg = _t2 instanceof Error ? _t2.message : String(_t2);
1250
+ if (!msg.includes("Expected 3 parameters")) {
1251
+ _context1.n = 9;
1252
+ break;
1253
+ }
1254
+ shouldRetryWithVersion = true;
1255
+ _context1.n = 10;
1256
+ break;
1257
+ case 9:
1258
+ return _context1.a(2, {
1259
+ success: false,
1260
+ failureReason: msg,
1261
+ asset: resolvedFeeAsset.asset
1262
+ });
1263
+ case 10:
1264
+ if (!shouldRetryWithVersion) {
1265
+ _context1.n = 14;
1266
+ break;
1267
+ }
1268
+ _context1.p = 11;
1269
+ _context1.n = 12;
1270
+ return performDryRunCall(true);
1271
+ case 12:
1272
+ result = _context1.v;
1273
+ isSuccess = getExecutionSuccessFromResult(result);
1274
+ if (!isSuccess) {
1275
+ failureErr = extractFailureReasonFromResult(result);
1276
+ }
1277
+ _context1.n = 14;
1278
+ break;
1279
+ case 13:
1280
+ _context1.p = 13;
1281
+ _t3 = _context1.v;
1282
+ _msg = _t3 instanceof Error ? _t3.message : String(_t3);
1283
+ failureErr = failureErr || {
1284
+ failureReason: _msg
1285
+ };
1286
+ return _context1.a(2, {
1287
+ success: false,
1288
+ failureReason: failureErr.failureReason,
1289
+ failureSubReason: failureErr.failureSubReason,
1290
+ asset: resolvedFeeAsset.asset
1291
+ });
1292
+ case 14:
1293
+ if (isSuccess) {
1294
+ _context1.n = 15;
1295
+ break;
1296
+ }
1297
+ return _context1.a(2, {
1298
+ success: false,
1299
+ failureReason: failureErr.failureReason || "Unknown error",
1300
+ failureSubReason: failureErr.failureSubReason,
1301
+ asset: resolvedFeeAsset.asset
1302
+ });
1303
+ case 15:
1304
+ resValue = (_result = result) === null || _result === void 0 ? void 0 : _result.value;
1305
+ execRes = resValue === null || resValue === void 0 || (_resValue$executionRe = resValue.executionResult) === null || _resValue$executionRe === void 0 ? void 0 : _resValue$executionRe.value;
1306
+ forwardedXcms = result.value.forwardedXcms.length > 0 ? result.value.forwardedXcms[0] : [];
1307
+ actualWeight = (_execRes$actualWeight = execRes === null || execRes === void 0 ? void 0 : execRes.actualWeight) !== null && _execRes$actualWeight !== void 0 ? _execRes$actualWeight : execRes === null || execRes === void 0 ? void 0 : execRes.actual_weight;
1308
+ weight = actualWeight ? actualWeight : undefined;
1309
+ destParaId = forwardedXcms.length === 0 ? undefined : forwardedXcms[0].value.interior.type === "Here" ? 0 : forwardedXcms[0].value.interior.value[0].value;
1310
+ localXcm = resValue === null || resValue === void 0 ? void 0 : resValue.localXcm;
1311
+ USE_XCM_PAYMENT_API_CHAINS = ["Astar"];
1312
+ if (!(hasXcmPaymentApiSupport(chain) && localXcm && (feeAsset || USE_XCM_PAYMENT_API_CHAINS.includes(chain) || chain.startsWith("AssetHub") && destination === "Ethereum") || resolvedFeeAsset.isCustomAsset)) {
1313
+ _context1.n = 21;
1314
+ break;
1315
+ }
1316
+ if (localXcm) {
1317
+ _context1.n = 17;
1318
+ break;
1319
+ }
1320
+ _context1.n = 16;
1321
+ return this.getPaymentInfo(tx, address);
1322
+ case 16:
1323
+ _t4 = _context1.v.weight;
1324
+ _context1.n = 18;
1325
+ break;
1326
+ case 17:
1327
+ _t4 = undefined;
1328
+ case 18:
1329
+ overriddenWeight = _t4;
1330
+ _context1.n = 19;
1331
+ return this.getXcmPaymentApiFee(chain, localXcm, forwardedXcms, resolvedFeeAsset.asset, version, false, overriddenWeight);
1332
+ case 19:
1333
+ xcmFee = _context1.v;
1334
+ if (!(typeof xcmFee === "bigint")) {
1335
+ _context1.n = 20;
1336
+ break;
1337
+ }
1338
+ return _context1.a(2, {
1339
+ success: true,
1340
+ fee: xcmFee,
1341
+ asset: resolvedFeeAsset.asset,
1342
+ weight: weight,
1343
+ forwardedXcms: forwardedXcms,
1344
+ destParaId: destParaId
1345
+ });
1346
+ case 20:
1347
+ resolvedFeeAsset = {
1348
+ isCustomAsset: false,
1349
+ asset: this.resolveDefaultFeeAsset(options)
1350
+ };
1351
+ case 21:
1352
+ _context1.n = 22;
1353
+ return this.getPaymentInfo(tx, address);
1354
+ case 22:
1355
+ _yield$this$getPaymen = _context1.v;
1356
+ executionFee = _yield$this$getPaymen.partialFee;
1357
+ fee = computeOriginFee(result, chain, executionFee);
1358
+ return _context1.a(2, {
1359
+ success: true,
1360
+ fee: fee,
1361
+ asset: resolvedFeeAsset.asset,
1362
+ weight: weight,
1363
+ forwardedXcms: forwardedXcms,
1364
+ destParaId: destParaId
1365
+ });
1366
+ }
1367
+ }, _callee1, this, [[11, 13], [6, 8]]);
1368
+ }));
1369
+ function getDryRunCall(_x13) {
1370
+ return _getDryRunCall.apply(this, arguments);
1371
+ }
1372
+ return getDryRunCall;
1373
+ }()
1374
+ }, {
1375
+ key: "getXcmPaymentApiFee",
1376
+ value: function () {
1377
+ var _getXcmPaymentApiFee = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee11(chain, localXcm, forwardedXcm, asset, version) {
1378
+ var _this3 = this,
1379
+ _execFeeRes$value;
1380
+ var transformXcm,
1381
+ overridenWeight,
1382
+ transformedXcm,
1383
+ queryWeight,
1384
+ weight,
1385
+ assetLocalizedLoc,
1386
+ transformedAssetLoc,
1387
+ execFeeRes,
1388
+ execFee,
1389
+ bridgeHubExecFee,
1390
+ deliveryFee,
1391
+ _args1 = arguments,
1392
+ _t5;
1393
+ return _regenerator().w(function (_context11) {
1394
+ while (1) switch (_context11.n) {
1395
+ case 0:
1396
+ transformXcm = _args1.length > 5 && _args1[5] !== undefined ? _args1[5] : false;
1397
+ overridenWeight = _args1.length > 6 ? _args1[6] : undefined;
1398
+ transformedXcm = transformXcm ? _transform(localXcm) : localXcm;
1399
+ queryWeight = /*#__PURE__*/function () {
1400
+ var _ref10 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee10() {
1401
+ var weightRes;
1402
+ return _regenerator().w(function (_context10) {
1403
+ while (1) switch (_context10.n) {
1404
+ case 0:
1405
+ _context10.n = 1;
1406
+ return _this3.api.call.xcmPaymentApi.queryXcmWeight(transformedXcm);
1407
+ case 1:
1408
+ weightRes = _context10.v;
1409
+ return _context10.a(2, weightRes.value);
1410
+ }
1411
+ }, _callee10);
1412
+ }));
1413
+ return function queryWeight() {
1414
+ return _ref10.apply(this, arguments);
1415
+ };
1416
+ }();
1417
+ if (!overridenWeight) {
1418
+ _context11.n = 1;
1419
+ break;
1420
+ }
1421
+ _t5 = overridenWeight;
1422
+ _context11.n = 3;
1423
+ break;
1424
+ case 1:
1425
+ _context11.n = 2;
1426
+ return queryWeight();
1427
+ case 2:
1428
+ _t5 = _context11.v;
1429
+ case 3:
1430
+ weight = _t5;
1431
+ assetLocalizedLoc = localizeLocation(chain, asset.location);
1432
+ transformedAssetLoc = _transform(assetLocalizedLoc);
1433
+ _context11.n = 4;
1434
+ return this.api.call.xcmPaymentApi.queryWeightToAssetFee(weight, {
1435
+ type: version,
1436
+ value: transformedAssetLoc
1437
+ });
1438
+ case 4:
1439
+ execFeeRes = _context11.v;
1440
+ execFee = typeof (execFeeRes === null || execFeeRes === void 0 ? void 0 : execFeeRes.value) === "bigint" ? execFeeRes.value : 0n;
1441
+ if (!(chain.startsWith("BridgeHub") && (execFeeRes === null || execFeeRes === void 0 ? void 0 : execFeeRes.success) === false && (execFeeRes === null || execFeeRes === void 0 || (_execFeeRes$value = execFeeRes.value) === null || _execFeeRes$value === void 0 ? void 0 : _execFeeRes$value.type) === "AssetNotFound")) {
1442
+ _context11.n = 6;
1443
+ break;
1444
+ }
1445
+ _context11.n = 5;
1446
+ return this.getBridgeHubFallbackExecFee(chain, weight, asset, version);
1447
+ case 5:
1448
+ bridgeHubExecFee = _context11.v;
1449
+ if (typeof bridgeHubExecFee === "bigint") {
1450
+ execFee = bridgeHubExecFee;
1451
+ }
1452
+ case 6:
1453
+ _context11.n = 7;
1454
+ return this.getDeliveryFee(chain, forwardedXcm, asset, assetLocalizedLoc, version);
1455
+ case 7:
1456
+ deliveryFee = _context11.v;
1457
+ return _context11.a(2, execFee + deliveryFee);
1458
+ }
1459
+ }, _callee11, this);
1460
+ }));
1461
+ function getXcmPaymentApiFee(_x15, _x16, _x17, _x18, _x19) {
1462
+ return _getXcmPaymentApiFee.apply(this, arguments);
1463
+ }
1464
+ return getXcmPaymentApiFee;
1465
+ }()
1466
+ }, {
1467
+ key: "getDeliveryFee",
1468
+ value: function () {
1469
+ var _getDeliveryFee = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee12(chain, forwardedXcm, asset, assetLocalizedLoc, version) {
1470
+ var _deliveryFeeRes, _assets$0$fun$value, _assets$;
1471
+ var usedThirdParam, deliveryFeeRes, baseArgs, _this$api$call$xcmPay, message, _this$api$call$xcmPay2, versionedAssetLoc, assets, deliveryFeeResolved, nativeAsset, res, _t6;
1472
+ return _regenerator().w(function (_context12) {
1473
+ while (1) switch (_context12.p = _context12.n) {
1474
+ case 0:
1475
+ usedThirdParam = false;
1476
+ if (!(forwardedXcm.length > 0)) {
1477
+ _context12.n = 6;
1478
+ break;
1479
+ }
1480
+ baseArgs = [forwardedXcm[0], forwardedXcm[1][0]];
1481
+ _context12.p = 1;
1482
+ _context12.n = 2;
1483
+ return (_this$api$call$xcmPay = this.api.call.xcmPaymentApi).queryDeliveryFees.apply(_this$api$call$xcmPay, baseArgs);
1484
+ case 2:
1485
+ deliveryFeeRes = _context12.v;
1486
+ _context12.n = 6;
1487
+ break;
1488
+ case 3:
1489
+ _context12.p = 3;
1490
+ _t6 = _context12.v;
1491
+ message = _t6 instanceof Error ? _t6.message : String(_t6);
1492
+ if (!message.includes("Expected 3 parameters")) {
1493
+ _context12.n = 5;
1494
+ break;
1495
+ }
1496
+ usedThirdParam = true;
1497
+ versionedAssetLoc = addXcmVersionHeader(assetLocalizedLoc, version);
1498
+ _context12.n = 4;
1499
+ return (_this$api$call$xcmPay2 = this.api.call.xcmPaymentApi).queryDeliveryFees.apply(_this$api$call$xcmPay2, baseArgs.concat([versionedAssetLoc]));
1500
+ case 4:
1501
+ deliveryFeeRes = _context12.v;
1502
+ _context12.n = 6;
1503
+ break;
1504
+ case 5:
1505
+ throw _t6;
1506
+ case 6:
1507
+ assets = (_deliveryFeeRes = deliveryFeeRes) === null || _deliveryFeeRes === void 0 || (_deliveryFeeRes = _deliveryFeeRes.value) === null || _deliveryFeeRes === void 0 ? void 0 : _deliveryFeeRes.value;
1508
+ deliveryFeeResolved = deliveryFeeRes && (assets === null || assets === void 0 ? void 0 : assets.length) > 0 ? (_assets$0$fun$value = (_assets$ = assets[0]) === null || _assets$ === void 0 || (_assets$ = _assets$.fun) === null || _assets$ === void 0 ? void 0 : _assets$.value) !== null && _assets$0$fun$value !== void 0 ? _assets$0$fun$value : 0n : 0n;
1509
+ nativeAsset = findNativeAssetInfoOrThrow(chain);
1510
+ if (!(isAssetXcEqual(asset, nativeAsset) || usedThirdParam)) {
1511
+ _context12.n = 7;
1512
+ break;
1513
+ }
1514
+ return _context12.a(2, deliveryFeeResolved);
1515
+ case 7:
1516
+ _context12.p = 7;
1517
+ _context12.n = 8;
1518
+ return this.quoteAhPrice(localizeLocation(chain, nativeAsset.location), assetLocalizedLoc, deliveryFeeResolved, false);
1519
+ case 8:
1520
+ res = _context12.v;
1521
+ return _context12.a(2, res !== null && res !== void 0 ? res : 0n);
1522
+ case 9:
1523
+ _context12.p = 9;
1524
+ _context12.v;
1525
+ return _context12.a(2, 0n);
1526
+ }
1527
+ }, _callee12, this, [[7, 9], [1, 3]]);
1528
+ }));
1529
+ function getDeliveryFee(_x20, _x21, _x22, _x23, _x24) {
1530
+ return _getDeliveryFee.apply(this, arguments);
1531
+ }
1532
+ return getDeliveryFee;
1533
+ }()
1534
+ }, {
1535
+ key: "getBridgeHubFallbackExecFee",
1536
+ value: function () {
1537
+ var _getBridgeHubFallbackExecFee = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee13(chain, weightValue, asset, version) {
1538
+ var fallbackExecFeeRes, fallbackOk, fallbackExecFee, ahApi, assetHubChain, ahLocalizedLoc, convertedExecFee;
1539
+ return _regenerator().w(function (_context13) {
1540
+ while (1) switch (_context13.n) {
1541
+ case 0:
1542
+ _context13.n = 1;
1543
+ return this.api.call.xcmPaymentApi.queryWeightToAssetFee(weightValue, addXcmVersionHeader(RELAY_LOCATION, version));
1544
+ case 1:
1545
+ fallbackExecFeeRes = _context13.v;
1546
+ fallbackOk = fallbackExecFeeRes === null || fallbackExecFeeRes === void 0 ? void 0 : fallbackExecFeeRes.value;
1547
+ fallbackExecFee = typeof fallbackOk === "bigint" ? fallbackOk : typeof fallbackOk === "string" || typeof fallbackOk === "number" ? BigInt(fallbackOk) : undefined;
1548
+ if (!(fallbackExecFee === undefined)) {
1549
+ _context13.n = 2;
1550
+ break;
1551
+ }
1552
+ return _context13.a(2, undefined);
1553
+ case 2:
1554
+ ahApi = this.clone();
1555
+ assetHubChain = "AssetHub".concat(getRelayChainOf(chain));
1556
+ _context13.n = 3;
1557
+ return ahApi.init(assetHubChain);
1558
+ case 3:
1559
+ ahLocalizedLoc = localizeLocation(assetHubChain, asset.location);
1560
+ _context13.n = 4;
1561
+ return ahApi.quoteAhPrice(RELAY_LOCATION, ahLocalizedLoc, fallbackExecFee, false);
1562
+ case 4:
1563
+ convertedExecFee = _context13.v;
1564
+ if (!(typeof convertedExecFee === "bigint")) {
1565
+ _context13.n = 5;
1566
+ break;
1567
+ }
1568
+ return _context13.a(2, convertedExecFee);
1569
+ case 5:
1570
+ return _context13.a(2, undefined);
1571
+ }
1572
+ }, _callee13, this);
1573
+ }));
1574
+ function getBridgeHubFallbackExecFee(_x25, _x26, _x27, _x28) {
1575
+ return _getBridgeHubFallbackExecFee.apply(this, arguments);
1576
+ }
1577
+ return getBridgeHubFallbackExecFee;
1578
+ }()
1579
+ }, {
1580
+ key: "getXcmWeight",
1581
+ value: function () {
1582
+ var _getXcmWeight = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee14(xcm) {
1583
+ var _ref11, _okValue$refTime, _ref12, _okValue$proofSize;
1584
+ var result, okValue;
1585
+ return _regenerator().w(function (_context14) {
1586
+ while (1) switch (_context14.n) {
1587
+ case 0:
1588
+ _context14.n = 1;
1589
+ return this.api.call.xcmPaymentApi.queryXcmWeight(xcm);
1590
+ case 1:
1591
+ result = _context14.v;
1592
+ okValue = result === null || result === void 0 ? void 0 : result.value;
1593
+ return _context14.a(2, {
1594
+ refTime: BigInt((_ref11 = (_okValue$refTime = okValue === null || okValue === void 0 ? void 0 : okValue.refTime) !== null && _okValue$refTime !== void 0 ? _okValue$refTime : okValue === null || okValue === void 0 ? void 0 : okValue.ref_time) !== null && _ref11 !== void 0 ? _ref11 : 0),
1595
+ proofSize: BigInt((_ref12 = (_okValue$proofSize = okValue === null || okValue === void 0 ? void 0 : okValue.proofSize) !== null && _okValue$proofSize !== void 0 ? _okValue$proofSize : okValue === null || okValue === void 0 ? void 0 : okValue.proof_size) !== null && _ref12 !== void 0 ? _ref12 : 0)
1596
+ });
1597
+ }
1598
+ }, _callee14, this);
1599
+ }));
1600
+ function getXcmWeight(_x29) {
1601
+ return _getXcmWeight.apply(this, arguments);
1602
+ }
1603
+ return getXcmWeight;
1604
+ }()
1605
+ }, {
1606
+ key: "getDryRunXcm",
1607
+ value: function () {
1608
+ var _getDryRunXcm = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee15(_ref13) {
1609
+ var _result$value5;
1610
+ var originLocation, xcm, asset, chain, version, _getAssetsObject2, supportsDryRunApi, transformedOriginLocation, result, executionResult, isSuccess, actualWeight, weight, forwardedXcms, destParaId, fee;
1611
+ return _regenerator().w(function (_context15) {
1612
+ while (1) switch (_context15.n) {
1613
+ case 0:
1614
+ originLocation = _ref13.originLocation, xcm = _ref13.xcm, asset = _ref13.asset, chain = _ref13.chain, version = _ref13.version;
1615
+ _getAssetsObject2 = getAssetsObject(chain), supportsDryRunApi = _getAssetsObject2.supportsDryRunApi;
1616
+ if (supportsDryRunApi) {
1617
+ _context15.n = 1;
1618
+ break;
1619
+ }
1620
+ throw new RuntimeApiUnavailableError(chain, "DryRunApi");
1621
+ case 1:
1622
+ transformedOriginLocation = _transform(originLocation);
1623
+ _context15.n = 2;
1624
+ return this.api.call.dryRunApi.dryRunXcm(transformedOriginLocation, xcm);
1625
+ case 2:
1626
+ result = _context15.v;
1627
+ executionResult = result === null || result === void 0 || (_result$value5 = result.value) === null || _result$value5 === void 0 ? void 0 : _result$value5.executionResult;
1628
+ isSuccess = result.isOk && executionResult.type === "Complete";
1629
+ if (isSuccess) {
1630
+ _context15.n = 3;
1631
+ break;
1632
+ }
1633
+ return _context15.a(2, {
1634
+ success: false,
1635
+ failureReason: extractDryRunXcmFailureReason(result),
1636
+ asset: asset
1637
+ });
1638
+ case 3:
1639
+ actualWeight = executionResult.value.used;
1640
+ weight = actualWeight ? actualWeight : undefined;
1641
+ forwardedXcms = result.value.forwardedXcms.length > 0 ? result.value.forwardedXcms[0] : [];
1642
+ destParaId = forwardedXcms.length === 0 ? undefined : forwardedXcms[0].value.interior.type === "Here" ? 0 : forwardedXcms[0].value.interior.value[0].value;
1643
+ if (!hasXcmPaymentApiSupport(chain)) {
1644
+ _context15.n = 6;
1645
+ break;
1646
+ }
1647
+ _context15.n = 4;
1648
+ return this.getXcmPaymentApiFee(chain, xcm, forwardedXcms, asset, version);
1649
+ case 4:
1650
+ fee = _context15.v;
1651
+ if (!(typeof fee !== "bigint")) {
1652
+ _context15.n = 5;
1653
+ break;
1654
+ }
1655
+ return _context15.a(2, {
1656
+ success: false,
1657
+ failureReason: "Failed to retrieve fee from XcmPaymentApi",
1658
+ asset: asset
1659
+ });
1660
+ case 5:
1661
+ return _context15.a(2, {
1662
+ success: true,
1663
+ fee: fee,
1664
+ asset: asset,
1665
+ weight: weight,
1666
+ forwardedXcms: forwardedXcms,
1667
+ destParaId: destParaId
1668
+ });
1669
+ case 6:
1670
+ return _context15.a(2, {
1671
+ success: false,
1672
+ failureReason: "Cannot determine destination fee. XcmPaymentApi is not supported by this chain",
1673
+ asset: asset
1674
+ });
1675
+ }
1676
+ }, _callee15, this);
1677
+ }));
1678
+ function getDryRunXcm(_x30) {
1679
+ return _getDryRunXcm.apply(this, arguments);
1680
+ }
1681
+ return getDryRunXcm;
1682
+ }()
1683
+ }, {
1684
+ key: "getBridgeStatus",
1685
+ value: function () {
1686
+ var _getBridgeStatus = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee16() {
1687
+ var outboundOperatingMode;
1688
+ return _regenerator().w(function (_context16) {
1689
+ while (1) switch (_context16.n) {
1690
+ case 0:
1691
+ _context16.n = 1;
1692
+ return this.api.query.ethereumOutboundQueue.operatingMode();
1693
+ case 1:
1694
+ outboundOperatingMode = _context16.v;
1695
+ return _context16.a(2, outboundOperatingMode);
1696
+ }
1697
+ }, _callee16, this);
1698
+ }));
1699
+ function getBridgeStatus() {
1700
+ return _getBridgeStatus.apply(this, arguments);
1701
+ }
1702
+ return getBridgeStatus;
1703
+ }()
1704
+ }, {
1705
+ key: "setDisconnectAllowed",
1706
+ value: function setDisconnectAllowed(allowed) {
1707
+ this.disconnectAllowed = allowed;
1708
+ }
1709
+ }, {
1710
+ key: "getDisconnectAllowed",
1711
+ value: function getDisconnectAllowed() {
1712
+ return this.disconnectAllowed;
1713
+ }
1714
+ }, {
1715
+ key: "disconnect",
1716
+ value: function disconnect() {
1717
+ var _this$_config$apiOver;
1718
+ var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1719
+ if (!this.initialized) return Promise.resolve();
1720
+ if (!force && !this.disconnectAllowed) return Promise.resolve();
1721
+ var api = isConfig(this._config) ? (_this$_config$apiOver = this._config.apiOverrides) === null || _this$_config$apiOver === void 0 ? void 0 : _this$_config$apiOver[this._chain] : this._config;
1722
+ // Own client provided, destroy only if force true
1723
+ if (force && _typeof(api) === "object") {
1724
+ void this.api.disconnect();
1725
+ }
1726
+ // Client created automatically
1727
+ if (typeof api === "string" || Array.isArray(api) || api === undefined) {
1728
+ if (force) {
1729
+ void this.api.disconnect();
1730
+ } else {
1731
+ var key = api === undefined ? getChainProviders(this._chain) : api;
1732
+ releaseClient(key);
1733
+ }
1734
+ }
1735
+ return Promise.resolve();
1736
+ }
1737
+ }, {
1738
+ key: "validateSubstrateAddress",
1739
+ value: function validateSubstrateAddress(address) {
1740
+ try {
1741
+ decodeAddress(address);
1742
+ return true;
1743
+ } catch (_unused) {
1744
+ return false;
1745
+ }
1746
+ }
1747
+ }, {
1748
+ key: "deriveAddress",
1749
+ value: function deriveAddress(sender) {
1750
+ if (isSenderSigner(sender)) return sender.address;
1751
+ var _createKeyringPair = createKeyringPair(sender),
1752
+ address = _createKeyringPair.address;
1753
+ return address;
1754
+ }
1755
+ }, {
1756
+ key: "signAndSubmit",
1757
+ value: function () {
1758
+ var _signAndSubmit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee17(tx, sender) {
1759
+ var account;
1760
+ return _regenerator().w(function (_context17) {
1761
+ while (1) switch (_context17.n) {
1762
+ case 0:
1763
+ account = isSenderSigner(sender) ? sender : createKeyringPair(sender);
1764
+ _context17.n = 1;
1765
+ return tx.signAndSend(account);
1766
+ case 1:
1767
+ return _context17.a(2, _context17.v);
1768
+ }
1769
+ }, _callee17);
1770
+ }));
1771
+ function signAndSubmit(_x31, _x32) {
1772
+ return _signAndSubmit.apply(this, arguments);
1773
+ }
1774
+ return signAndSubmit;
1775
+ }()
1776
+ }]);
1777
+ }();
1778
+
1779
+ var createChainClient = function createChainClient(chain, builderOptions) {
1780
+ var dedotApi = new DedotApi(builderOptions);
1781
+ return createChainClient$1(dedotApi, chain);
1782
+ };
1783
+ var createDedotApiCall = function createDedotApiCall(apiCall) {
1784
+ return /*#__PURE__*/function () {
1785
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) {
1786
+ var dedotApi, optionsWithApi;
1787
+ return _regenerator().w(function (_context) {
1788
+ while (1) switch (_context.n) {
1789
+ case 0:
1790
+ dedotApi = new DedotApi(options.api);
1791
+ optionsWithApi = _objectSpread2(_objectSpread2({}, options), {}, {
1792
+ api: dedotApi
1793
+ });
1794
+ return _context.a(2, apiCall(optionsWithApi));
1795
+ }
1796
+ }, _callee);
1797
+ }));
1798
+ return function (_x) {
1799
+ return _ref.apply(this, arguments);
1800
+ };
1801
+ }();
1802
+ };
1803
+
1804
+ /**
1805
+ * Retrieves the asset balance for a given account on a specified chain.
1806
+ *
1807
+ * @returns The asset balance as a bigint.
1808
+ */
1809
+ var getBalance = createDedotApiCall(getBalance$1);
1810
+ /**
1811
+ * Claims assets from a parachain.
1812
+ *
1813
+ * @returns An extrinsic representing the claim transaction.
1814
+ */
1815
+ var claimAssets = createDedotApiCall(claimAssets$1);
1816
+
1817
+ var assets = /*#__PURE__*/Object.freeze({
1818
+ __proto__: null,
1819
+ Foreign: Foreign,
1820
+ ForeignAbstract: ForeignAbstract,
1821
+ Native: Native,
1822
+ Override: Override,
1823
+ claimAssets: claimAssets,
1824
+ findAssetInfo: findAssetInfo,
1825
+ getAllAssetsSymbols: getAllAssetsSymbols,
1826
+ getAssetDecimals: getAssetDecimals,
1827
+ getAssetId: getAssetId,
1828
+ getAssets: getAssets,
1829
+ getAssetsObject: getAssetsObject,
1830
+ getBalance: getBalance,
1831
+ getExistentialDeposit: getExistentialDeposit,
1832
+ getNativeAssetSymbol: getNativeAssetSymbol,
1833
+ getNativeAssets: getNativeAssets,
1834
+ getOtherAssets: getOtherAssets,
1835
+ getRelayChainSymbol: getRelayChainSymbol,
1836
+ getSupportedAssets: getSupportedAssets,
1837
+ getTChain: getTChain,
1838
+ hasSupportForAsset: hasSupportForAsset,
1839
+ isChainEvm: isChainEvm
1840
+ });
1841
+
1842
+ var convertSs58 = function convertSs58(address, chain) {
1843
+ var dedotApi = new DedotApi();
1844
+ return convertSs58$1(dedotApi, address, chain);
1845
+ };
1846
+
1847
+ /**
1848
+ * Creates a new Builder instance using the Dedot client.
1849
+ *
1850
+ * @param api - The API instance or options to use for building transactions.
1851
+ * @returns A new Builder instance.
1852
+ */
1853
+ var Builder = function Builder(api) {
1854
+ var dedotApi = new DedotApi(api);
1855
+ return Builder$1(dedotApi);
1856
+ };
1857
+
1858
+ var dryRun = createDedotApiCall(dryRun$1);
1859
+ var dryRunOrigin = createDedotApiCall(dryRunOrigin$1);
1860
+ var getParaEthTransferFees = /*#__PURE__*/function () {
1861
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(api) {
1862
+ var dedotApi;
1863
+ return _regenerator().w(function (_context) {
1864
+ while (1) switch (_context.n) {
1865
+ case 0:
1866
+ dedotApi = new DedotApi(api);
1867
+ _context.n = 1;
1868
+ return dedotApi.init("AssetHubPolkadot", DRY_RUN_CLIENT_TIMEOUT_MS);
1869
+ case 1:
1870
+ return _context.a(2, getParaEthTransferFees$1(dedotApi));
1871
+ }
1872
+ }, _callee);
1873
+ }));
1874
+ return function getParaEthTransferFees(_x) {
1875
+ return _ref.apply(this, arguments);
1876
+ };
1877
+ }();
1878
+ /**
1879
+ * Gets the Ethereum bridge status.
1880
+ */
1881
+ var getBridgeStatus = /*#__PURE__*/function () {
1882
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(api) {
1883
+ var dedotApi;
1884
+ return _regenerator().w(function (_context2) {
1885
+ while (1) switch (_context2.n) {
1886
+ case 0:
1887
+ dedotApi = new DedotApi(api);
1888
+ return _context2.a(2, getBridgeStatus$1(dedotApi));
1889
+ }
1890
+ }, _callee2);
1891
+ }));
1892
+ return function getBridgeStatus(_x2) {
1893
+ return _ref2.apply(this, arguments);
1894
+ };
1895
+ }();
1896
+
1897
+ var transfer = /*#__PURE__*/Object.freeze({
1898
+ __proto__: null,
1899
+ dryRun: dryRun,
1900
+ dryRunOrigin: dryRunOrigin,
1901
+ getBridgeStatus: getBridgeStatus,
1902
+ getParaEthTransferFees: getParaEthTransferFees
1903
+ });
1904
+
1905
+ export { Builder, assets, claimAssets, convertSs58, createChainClient, dryRun, dryRunOrigin, getBalance, getBridgeStatus, getParaEthTransferFees, transfer as xcmPallet };