@paraspell/assets 13.5.0 → 13.6.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 CHANGED
@@ -1,4 +1,344 @@
1
- import { Version, deepEqual, isExternalChain, getJunctionValue, hasJunction, Parents, RELAYCHAINS, replaceBigInt, isSubstrateBridge, isSnowbridge, CHAINS } from '@paraspell/sdk-common';
1
+ import { Version, deepEqual, isChain, isExternalChain, getJunctionValue, hasJunction, Parents, RELAYCHAINS, replaceBigInt, isCustomChain, isSubstrateBridge, isSnowbridge, CHAINS } from '@paraspell/sdk-common';
2
+
3
+ function _arrayLikeToArray(r, a) {
4
+ (null == a || a > r.length) && (a = r.length);
5
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
6
+ return n;
7
+ }
8
+ function _arrayWithHoles(r) {
9
+ if (Array.isArray(r)) return r;
10
+ }
11
+ function _arrayWithoutHoles(r) {
12
+ if (Array.isArray(r)) return _arrayLikeToArray(r);
13
+ }
14
+ function _assertThisInitialized(e) {
15
+ if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
16
+ return e;
17
+ }
18
+ function _callSuper(t, o, e) {
19
+ return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
20
+ }
21
+ function _classCallCheck(a, n) {
22
+ if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
23
+ }
24
+ function _construct(t, e, r) {
25
+ if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
26
+ var o = [null];
27
+ o.push.apply(o, e);
28
+ var p = new (t.bind.apply(t, o))();
29
+ return r && _setPrototypeOf(p, r.prototype), p;
30
+ }
31
+ function _createClass(e, r, t) {
32
+ return Object.defineProperty(e, "prototype", {
33
+ writable: false
34
+ }), e;
35
+ }
36
+ function _createForOfIteratorHelper(r, e) {
37
+ var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
38
+ if (!t) {
39
+ if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {
40
+ t && (r = t);
41
+ var n = 0,
42
+ F = function () {};
43
+ return {
44
+ s: F,
45
+ n: function () {
46
+ return n >= r.length ? {
47
+ done: true
48
+ } : {
49
+ done: false,
50
+ value: r[n++]
51
+ };
52
+ },
53
+ e: function (r) {
54
+ throw r;
55
+ },
56
+ f: F
57
+ };
58
+ }
59
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
60
+ }
61
+ var o,
62
+ a = true,
63
+ u = false;
64
+ return {
65
+ s: function () {
66
+ t = t.call(r);
67
+ },
68
+ n: function () {
69
+ var r = t.next();
70
+ return a = r.done, r;
71
+ },
72
+ e: function (r) {
73
+ u = true, o = r;
74
+ },
75
+ f: function () {
76
+ try {
77
+ a || null == t.return || t.return();
78
+ } finally {
79
+ if (u) throw o;
80
+ }
81
+ }
82
+ };
83
+ }
84
+ function _defineProperty(e, r, t) {
85
+ return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
86
+ value: t,
87
+ enumerable: true,
88
+ configurable: true,
89
+ writable: true
90
+ }) : e[r] = t, e;
91
+ }
92
+ function _getPrototypeOf(t) {
93
+ return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
94
+ return t.__proto__ || Object.getPrototypeOf(t);
95
+ }, _getPrototypeOf(t);
96
+ }
97
+ function _inherits(t, e) {
98
+ if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
99
+ t.prototype = Object.create(e && e.prototype, {
100
+ constructor: {
101
+ value: t,
102
+ writable: true,
103
+ configurable: true
104
+ }
105
+ }), Object.defineProperty(t, "prototype", {
106
+ writable: false
107
+ }), e && _setPrototypeOf(t, e);
108
+ }
109
+ function _isNativeFunction(t) {
110
+ try {
111
+ return -1 !== Function.toString.call(t).indexOf("[native code]");
112
+ } catch (n) {
113
+ return "function" == typeof t;
114
+ }
115
+ }
116
+ function _isNativeReflectConstruct() {
117
+ try {
118
+ var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
119
+ } catch (t) {}
120
+ return (_isNativeReflectConstruct = function () {
121
+ return !!t;
122
+ })();
123
+ }
124
+ function _iterableToArray(r) {
125
+ if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
126
+ }
127
+ function _iterableToArrayLimit(r, l) {
128
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
129
+ if (null != t) {
130
+ var e,
131
+ n,
132
+ i,
133
+ u,
134
+ a = [],
135
+ f = true,
136
+ o = false;
137
+ try {
138
+ if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
139
+ } catch (r) {
140
+ o = true, n = r;
141
+ } finally {
142
+ try {
143
+ if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
144
+ } finally {
145
+ if (o) throw n;
146
+ }
147
+ }
148
+ return a;
149
+ }
150
+ }
151
+ function _nonIterableRest() {
152
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
153
+ }
154
+ function _nonIterableSpread() {
155
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
156
+ }
157
+ function ownKeys(e, r) {
158
+ var t = Object.keys(e);
159
+ if (Object.getOwnPropertySymbols) {
160
+ var o = Object.getOwnPropertySymbols(e);
161
+ r && (o = o.filter(function (r) {
162
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
163
+ })), t.push.apply(t, o);
164
+ }
165
+ return t;
166
+ }
167
+ function _objectSpread2(e) {
168
+ for (var r = 1; r < arguments.length; r++) {
169
+ var t = null != arguments[r] ? arguments[r] : {};
170
+ r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
171
+ _defineProperty(e, r, t[r]);
172
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
173
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
174
+ });
175
+ }
176
+ return e;
177
+ }
178
+ function _objectWithoutProperties(e, t) {
179
+ if (null == e) return {};
180
+ var o,
181
+ r,
182
+ i = _objectWithoutPropertiesLoose(e, t);
183
+ if (Object.getOwnPropertySymbols) {
184
+ var n = Object.getOwnPropertySymbols(e);
185
+ for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
186
+ }
187
+ return i;
188
+ }
189
+ function _objectWithoutPropertiesLoose(r, e) {
190
+ if (null == r) return {};
191
+ var t = {};
192
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
193
+ if (-1 !== e.indexOf(n)) continue;
194
+ t[n] = r[n];
195
+ }
196
+ return t;
197
+ }
198
+ function _possibleConstructorReturn(t, e) {
199
+ if (e && ("object" == typeof e || "function" == typeof e)) return e;
200
+ if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
201
+ return _assertThisInitialized(t);
202
+ }
203
+ function _setPrototypeOf(t, e) {
204
+ return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
205
+ return t.__proto__ = e, t;
206
+ }, _setPrototypeOf(t, e);
207
+ }
208
+ function _slicedToArray(r, e) {
209
+ return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
210
+ }
211
+ function _toConsumableArray(r) {
212
+ return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
213
+ }
214
+ function _toPrimitive(t, r) {
215
+ if ("object" != typeof t || !t) return t;
216
+ var e = t[Symbol.toPrimitive];
217
+ if (void 0 !== e) {
218
+ var i = e.call(t, r);
219
+ if ("object" != typeof i) return i;
220
+ throw new TypeError("@@toPrimitive must return a primitive value.");
221
+ }
222
+ return ("string" === r ? String : Number)(t);
223
+ }
224
+ function _toPropertyKey(t) {
225
+ var i = _toPrimitive(t, "string");
226
+ return "symbol" == typeof i ? i : i + "";
227
+ }
228
+ function _typeof(o) {
229
+ "@babel/helpers - typeof";
230
+
231
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
232
+ return typeof o;
233
+ } : function (o) {
234
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
235
+ }, _typeof(o);
236
+ }
237
+ function _unsupportedIterableToArray(r, a) {
238
+ if (r) {
239
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
240
+ var t = {}.toString.call(r).slice(8, -1);
241
+ 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;
242
+ }
243
+ }
244
+ function _wrapNativeSuper(t) {
245
+ var r = "function" == typeof Map ? new Map() : void 0;
246
+ return _wrapNativeSuper = function (t) {
247
+ if (null === t || !_isNativeFunction(t)) return t;
248
+ if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
249
+ if (void 0 !== r) {
250
+ if (r.has(t)) return r.get(t);
251
+ r.set(t, Wrapper);
252
+ }
253
+ function Wrapper() {
254
+ return _construct(t, arguments, _getPrototypeOf(this).constructor);
255
+ }
256
+ return Wrapper.prototype = Object.create(t.prototype, {
257
+ constructor: {
258
+ value: Wrapper,
259
+ enumerable: false,
260
+ writable: true,
261
+ configurable: true
262
+ }
263
+ }), _setPrototypeOf(Wrapper, t);
264
+ }, _wrapNativeSuper(t);
265
+ }
266
+
267
+ /**
268
+ * Error thrown when a custom asset's location collides with an existing
269
+ * registry asset and `forceOverride` was not set.
270
+ */
271
+ var CustomAssetConflictError = /*#__PURE__*/function (_Error) {
272
+ function CustomAssetConflictError(msg) {
273
+ var _this;
274
+ _classCallCheck(this, CustomAssetConflictError);
275
+ _this = _callSuper(this, CustomAssetConflictError, [msg]);
276
+ _this.name = 'CustomAssetConflict';
277
+ return _this;
278
+ }
279
+ _inherits(CustomAssetConflictError, _Error);
280
+ return _createClass(CustomAssetConflictError);
281
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
282
+
283
+ /**
284
+ * Error thrown when multiple assets with the same symbol are found.
285
+ */
286
+ var DuplicateAssetError = /*#__PURE__*/function (_Error) {
287
+ /**
288
+ * Constructs a new DuplicateAssetError.
289
+ *
290
+ * @param symbol - The symbol of the asset causing the duplication error.
291
+ */
292
+ function DuplicateAssetError(msg) {
293
+ var _this;
294
+ _classCallCheck(this, DuplicateAssetError);
295
+ _this = _callSuper(this, DuplicateAssetError, [msg]);
296
+ _this.name = 'DuplicateAsset';
297
+ return _this;
298
+ }
299
+ _inherits(DuplicateAssetError, _Error);
300
+ return _createClass(DuplicateAssetError);
301
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
302
+
303
+ /**
304
+ * Error thrown when multiple assets with the same symbol are found.
305
+ */
306
+ var DuplicateAssetIdError = /*#__PURE__*/function (_Error) {
307
+ /**
308
+ * Constructs a new DuplicateAssetError.
309
+ *
310
+ * @param symbol - The symbol of the asset causing the duplication error.
311
+ */
312
+ function DuplicateAssetIdError(id) {
313
+ var _this;
314
+ _classCallCheck(this, DuplicateAssetIdError);
315
+ _this = _callSuper(this, DuplicateAssetIdError, ["Multiple assets found with the same ID: ".concat(id, ". Please specify asset directly by symbol using .currency({symbol: <ASSET_SYMBOL>})")]);
316
+ _this.name = 'DuplicateAssetId';
317
+ return _this;
318
+ }
319
+ _inherits(DuplicateAssetIdError, _Error);
320
+ return _createClass(DuplicateAssetIdError);
321
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
322
+
323
+ /**
324
+ * Used to inform user, that currency they wish to use is not registered on either origin or destination Parachain
325
+ */
326
+ var InvalidCurrencyError = /*#__PURE__*/function (_Error) {
327
+ /**
328
+ * Constructs a new InvalidCurrencyError.
329
+ *
330
+ * @param message - The error message.
331
+ */
332
+ function InvalidCurrencyError(message) {
333
+ var _this;
334
+ _classCallCheck(this, InvalidCurrencyError);
335
+ _this = _callSuper(this, InvalidCurrencyError, [message]);
336
+ _this.name = 'InvalidCurrencyError';
337
+ return _this;
338
+ }
339
+ _inherits(InvalidCurrencyError, _Error);
340
+ return _createClass(InvalidCurrencyError);
341
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
2
342
 
3
343
  var Polkadot = {
4
344
  relaychainSymbol: "DOT",
@@ -4052,23 +4392,6 @@ var Hydration = {
4052
4392
  },
4053
4393
  isFeeAsset: true
4054
4394
  },
4055
- {
4056
- assetId: "3370",
4057
- symbol: "LAOS",
4058
- decimals: 18,
4059
- existentialDeposit: "1",
4060
- location: {
4061
- parents: 1,
4062
- interior: {
4063
- X1: [
4064
- {
4065
- Parachain: 3370
4066
- }
4067
- ]
4068
- }
4069
- },
4070
- isFeeAsset: true
4071
- },
4072
4395
  {
4073
4396
  assetId: "1003",
4074
4397
  symbol: "aUSDC",
@@ -7169,6 +7492,29 @@ var AssetHubPolkadot = {
7169
7492
  existentialDeposit: "1",
7170
7493
  alias: "VDOT1"
7171
7494
  },
7495
+ {
7496
+ assetId: "50000520",
7497
+ symbol: "DOT",
7498
+ decimals: 18,
7499
+ location: {
7500
+ parents: 1,
7501
+ interior: {
7502
+ X3: [
7503
+ {
7504
+ Parachain: 1000
7505
+ },
7506
+ {
7507
+ PalletInstance: 50
7508
+ },
7509
+ {
7510
+ GeneralIndex: 50000520
7511
+ }
7512
+ ]
7513
+ }
7514
+ },
7515
+ existentialDeposit: "1000000000000",
7516
+ alias: "DOT2"
7517
+ },
7172
7518
  {
7173
7519
  assetId: "40",
7174
7520
  symbol: "PEPE",
@@ -7485,7 +7831,8 @@ var AssetHubPolkadot = {
7485
7831
  ]
7486
7832
  }
7487
7833
  },
7488
- existentialDeposit: "10000000000000000"
7834
+ existentialDeposit: "10000000000000000",
7835
+ alias: "DOT1"
7489
7836
  },
7490
7837
  {
7491
7838
  assetId: "1337",
@@ -7580,6 +7927,29 @@ var AssetHubPolkadot = {
7580
7927
  existentialDeposit: "1",
7581
7928
  alias: "ETH2"
7582
7929
  },
7930
+ {
7931
+ assetId: "50000523",
7932
+ symbol: "DED",
7933
+ decimals: 18,
7934
+ location: {
7935
+ parents: 1,
7936
+ interior: {
7937
+ X3: [
7938
+ {
7939
+ Parachain: 1000
7940
+ },
7941
+ {
7942
+ PalletInstance: 50
7943
+ },
7944
+ {
7945
+ GeneralIndex: 50000523
7946
+ }
7947
+ ]
7948
+ }
7949
+ },
7950
+ existentialDeposit: "1000000000000",
7951
+ alias: "DED3"
7952
+ },
7583
7953
  {
7584
7954
  assetId: "22222012",
7585
7955
  symbol: "DAMN",
@@ -9396,32 +9766,6 @@ var CrustShadow = {
9396
9766
  }
9397
9767
  ]
9398
9768
  };
9399
- var Laos = {
9400
- relaychainSymbol: "DOT",
9401
- nativeAssetSymbol: "LAOS",
9402
- isEVM: true,
9403
- ss58Prefix: 42,
9404
- supportsDryRunApi: true,
9405
- supportsXcmPaymentApi: true,
9406
- assets: [
9407
- {
9408
- symbol: "LAOS",
9409
- isNative: true,
9410
- decimals: 18,
9411
- existentialDeposit: "0",
9412
- location: {
9413
- parents: 1,
9414
- interior: {
9415
- X1: [
9416
- {
9417
- Parachain: 3370
9418
- }
9419
- ]
9420
- }
9421
- }
9422
- }
9423
- ]
9424
- };
9425
9769
  var Encointer = {
9426
9770
  relaychainSymbol: "KSM",
9427
9771
  nativeAssetSymbol: "KSM",
@@ -13870,6 +14214,58 @@ var Ethereum = {
13870
14214
  }
13871
14215
  }
13872
14216
  },
14217
+ {
14218
+ symbol: "NEXO",
14219
+ assetId: "0xb62132e35a6c13ee1ee0f84dc5d40bad8d815206",
14220
+ decimals: 18,
14221
+ existentialDeposit: "1",
14222
+ location: {
14223
+ parents: 2,
14224
+ interior: {
14225
+ X2: [
14226
+ {
14227
+ GlobalConsensus: {
14228
+ Ethereum: {
14229
+ chainId: 1
14230
+ }
14231
+ }
14232
+ },
14233
+ {
14234
+ AccountKey20: {
14235
+ network: null,
14236
+ key: "0xb62132e35a6c13ee1ee0f84dc5d40bad8d815206"
14237
+ }
14238
+ }
14239
+ ]
14240
+ }
14241
+ }
14242
+ },
14243
+ {
14244
+ symbol: "sUSDat",
14245
+ assetId: "0xd166337499e176bbc38a1fbd113ab144e5bd2df7",
14246
+ decimals: 18,
14247
+ existentialDeposit: "1",
14248
+ location: {
14249
+ parents: 2,
14250
+ interior: {
14251
+ X2: [
14252
+ {
14253
+ GlobalConsensus: {
14254
+ Ethereum: {
14255
+ chainId: 1
14256
+ }
14257
+ }
14258
+ },
14259
+ {
14260
+ AccountKey20: {
14261
+ network: null,
14262
+ key: "0xd166337499e176bbc38a1fbd113ab144e5bd2df7"
14263
+ }
14264
+ }
14265
+ ]
14266
+ }
14267
+ }
14268
+ },
13873
14269
  {
13874
14270
  symbol: "SKY",
13875
14271
  assetId: "0x56072c95faa701256059aa122697b133aded9279",
@@ -16602,8 +16998,8 @@ var EnergyWebXPaseo = {
16602
16998
  nativeAssetSymbol: "EWT",
16603
16999
  isEVM: false,
16604
17000
  ss58Prefix: 42,
16605
- supportsDryRunApi: false,
16606
- supportsXcmPaymentApi: false,
17001
+ supportsDryRunApi: true,
17002
+ supportsXcmPaymentApi: true,
16607
17003
  assets: [
16608
17004
  {
16609
17005
  symbol: "EWT",
@@ -16640,7 +17036,8 @@ var EnergyWebXPaseo = {
16640
17036
  }
16641
17037
  ]
16642
17038
  }
16643
- }
17039
+ },
17040
+ isFeeAsset: true
16644
17041
  },
16645
17042
  {
16646
17043
  symbol: "stEWT",
@@ -18563,32 +18960,6 @@ var HydrationPaseo = {
18563
18960
  }
18564
18961
  ]
18565
18962
  };
18566
- var LaosPaseo = {
18567
- relaychainSymbol: "PAS",
18568
- nativeAssetSymbol: "SIGMA",
18569
- isEVM: true,
18570
- ss58Prefix: 42,
18571
- supportsDryRunApi: true,
18572
- supportsXcmPaymentApi: true,
18573
- assets: [
18574
- {
18575
- symbol: "SIGMA",
18576
- isNative: true,
18577
- decimals: 18,
18578
- existentialDeposit: "0",
18579
- location: {
18580
- parents: 1,
18581
- interior: {
18582
- X1: [
18583
- {
18584
- Parachain: 4006
18585
- }
18586
- ]
18587
- }
18588
- }
18589
- }
18590
- ]
18591
- };
18592
18963
  var NeuroWebPaseo = {
18593
18964
  relaychainSymbol: "PAS",
18594
18965
  nativeAssetSymbol: "NEURO",
@@ -18798,7 +19169,6 @@ var assetsMapJson = {
18798
19169
  BifrostKusama: BifrostKusama,
18799
19170
  Crab: Crab,
18800
19171
  CrustShadow: CrustShadow,
18801
- Laos: Laos,
18802
19172
  Encointer: Encointer,
18803
19173
  Karura: Karura,
18804
19174
  Kintsugi: Kintsugi,
@@ -18837,11 +19207,118 @@ var assetsMapJson = {
18837
19207
  HeimaPaseo: HeimaPaseo,
18838
19208
  EnergyWebXPaseo: EnergyWebXPaseo,
18839
19209
  HydrationPaseo: HydrationPaseo,
18840
- LaosPaseo: LaosPaseo,
18841
19210
  NeuroWebPaseo: NeuroWebPaseo,
18842
19211
  ZeitgeistPaseo: ZeitgeistPaseo
18843
19212
  };
18844
19213
 
19214
+ /**
19215
+ * Converts a location to a specific XCM version
19216
+ *
19217
+ * In XCM v3, `interior.X1` is a single `Object`. In XCM V4, `interior.X1` is an `Array<Object>`.
19218
+ *
19219
+ * @param location - The location to normalize.
19220
+ * @param version - The target XCM version: `'V3'`, `'V4'` or `'V5'`. Defaults to `'V5'`.
19221
+ * @returns A new transformed `TLocation`
19222
+ */
19223
+ var normalizeLocation = function normalizeLocation(location) {
19224
+ var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Version.V5;
19225
+ if (location.interior === 'Here' || location.interior.X1 === undefined) {
19226
+ return location;
19227
+ }
19228
+ var currentX1 = location.interior.X1;
19229
+ if (version === Version.V4 || version === Version.V5) {
19230
+ if (Array.isArray(currentX1)) {
19231
+ // Already in V4/V5 format
19232
+ return location;
19233
+ }
19234
+ return {
19235
+ parents: location.parents,
19236
+ interior: {
19237
+ X1: [currentX1]
19238
+ }
19239
+ };
19240
+ } else {
19241
+ if (!Array.isArray(currentX1)) {
19242
+ // Already in V3 format
19243
+ return location;
19244
+ }
19245
+ return {
19246
+ parents: location.parents,
19247
+ interior: {
19248
+ X1: currentX1[0]
19249
+ }
19250
+ };
19251
+ }
19252
+ };
19253
+ var canonicalizeLocation = function canonicalizeLocation(location) {
19254
+ var normalized = normalizeLocation(location);
19255
+ return normalized.interior === 'Here' ? {
19256
+ parents: normalized.parents,
19257
+ interior: {
19258
+ Here: null
19259
+ }
19260
+ } : normalized;
19261
+ };
19262
+
19263
+ var baseAssetsMap = assetsMapJson;
19264
+ var normalizeCustomAssets = function normalizeCustomAssets(map) {
19265
+ if (!map) return {};
19266
+ var result = {};
19267
+ for (var _i = 0, _Object$entries = Object.entries(map); _i < _Object$entries.length; _i++) {
19268
+ var _baseAssetsMap$chain$, _baseAssetsMap$chain;
19269
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
19270
+ chain = _Object$entries$_i[0],
19271
+ entries = _Object$entries$_i[1];
19272
+ if (!isChain(chain) || !entries || entries.length === 0) continue;
19273
+ var base = (_baseAssetsMap$chain$ = (_baseAssetsMap$chain = baseAssetsMap[chain]) === null || _baseAssetsMap$chain === void 0 ? void 0 : _baseAssetsMap$chain.assets) !== null && _baseAssetsMap$chain$ !== void 0 ? _baseAssetsMap$chain$ : [];
19274
+ var normalized = entries.map(function (entry) {
19275
+ return _objectSpread2(_objectSpread2({}, entry), {}, {
19276
+ location: canonicalizeLocation(entry.location)
19277
+ });
19278
+ });
19279
+ var _iterator = _createForOfIteratorHelper(normalized),
19280
+ _step;
19281
+ try {
19282
+ var _loop = function _loop() {
19283
+ var entry = _step.value;
19284
+ if (entry.forceOverride) return 1; // continue
19285
+ var clash = base.find(function (a) {
19286
+ return deepEqual(canonicalizeLocation(a.location), entry.location);
19287
+ });
19288
+ if (clash) {
19289
+ throw new CustomAssetConflictError("Custom asset '".concat(entry.symbol, "' on chain '").concat(chain, "' collides on location with registry asset '").concat(clash.symbol, "'. Set 'forceOverride: true' to replace it."));
19290
+ }
19291
+ };
19292
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
19293
+ if (_loop()) continue;
19294
+ }
19295
+ } catch (err) {
19296
+ _iterator.e(err);
19297
+ } finally {
19298
+ _iterator.f();
19299
+ }
19300
+ result[chain] = normalized;
19301
+ }
19302
+ return result;
19303
+ };
19304
+ var mergeCustomAssets = function mergeCustomAssets(base, overlay) {
19305
+ if (!overlay || overlay.length === 0) return _toConsumableArray(base);
19306
+ var kept = base.filter(function (b) {
19307
+ return !overlay.some(function (o) {
19308
+ return deepEqual(o.location, b.location);
19309
+ });
19310
+ });
19311
+ return [].concat(_toConsumableArray(kept), _toConsumableArray(overlay));
19312
+ };
19313
+ var isCustomAsset = function isCustomAsset(chain, asset, ctx) {
19314
+ var _ctx$customAssets;
19315
+ var overlay = ctx === null || ctx === void 0 || (_ctx$customAssets = ctx.customAssets) === null || _ctx$customAssets === void 0 ? void 0 : _ctx$customAssets[chain];
19316
+ if (!overlay || overlay.length === 0) return false;
19317
+ return overlay.some(function (a) {
19318
+ return deepEqual(a.location, asset.location);
19319
+ });
19320
+ };
19321
+
18845
19322
  /**
18846
19323
  * Normalizes an asset symbol by stripping the 'xc' prefix (if present) and converting it to lowercase.
18847
19324
  *
@@ -18860,168 +19337,6 @@ var isSymbolMatch = function isSymbolMatch(symbolA, symbolB) {
18860
19337
  return normalizeSymbol(symbolA) === normalizeSymbol(symbolB);
18861
19338
  };
18862
19339
 
18863
- function _arrayLikeToArray(r, a) {
18864
- (null == a || a > r.length) && (a = r.length);
18865
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
18866
- return n;
18867
- }
18868
- function _arrayWithoutHoles(r) {
18869
- if (Array.isArray(r)) return _arrayLikeToArray(r);
18870
- }
18871
- function _assertThisInitialized(e) {
18872
- if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
18873
- return e;
18874
- }
18875
- function _callSuper(t, o, e) {
18876
- return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
18877
- }
18878
- function _classCallCheck(a, n) {
18879
- if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
18880
- }
18881
- function _construct(t, e, r) {
18882
- if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
18883
- var o = [null];
18884
- o.push.apply(o, e);
18885
- var p = new (t.bind.apply(t, o))();
18886
- return r && _setPrototypeOf(p, r.prototype), p;
18887
- }
18888
- function _createClass(e, r, t) {
18889
- return Object.defineProperty(e, "prototype", {
18890
- writable: false
18891
- }), e;
18892
- }
18893
- function _defineProperty(e, r, t) {
18894
- return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
18895
- value: t,
18896
- enumerable: true,
18897
- configurable: true,
18898
- writable: true
18899
- }) : e[r] = t, e;
18900
- }
18901
- function _getPrototypeOf(t) {
18902
- return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
18903
- return t.__proto__ || Object.getPrototypeOf(t);
18904
- }, _getPrototypeOf(t);
18905
- }
18906
- function _inherits(t, e) {
18907
- if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
18908
- t.prototype = Object.create(e && e.prototype, {
18909
- constructor: {
18910
- value: t,
18911
- writable: true,
18912
- configurable: true
18913
- }
18914
- }), Object.defineProperty(t, "prototype", {
18915
- writable: false
18916
- }), e && _setPrototypeOf(t, e);
18917
- }
18918
- function _isNativeFunction(t) {
18919
- try {
18920
- return -1 !== Function.toString.call(t).indexOf("[native code]");
18921
- } catch (n) {
18922
- return "function" == typeof t;
18923
- }
18924
- }
18925
- function _isNativeReflectConstruct() {
18926
- try {
18927
- var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
18928
- } catch (t) {}
18929
- return (_isNativeReflectConstruct = function () {
18930
- return !!t;
18931
- })();
18932
- }
18933
- function _iterableToArray(r) {
18934
- if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
18935
- }
18936
- function _nonIterableSpread() {
18937
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18938
- }
18939
- function _objectWithoutProperties(e, t) {
18940
- if (null == e) return {};
18941
- var o,
18942
- r,
18943
- i = _objectWithoutPropertiesLoose(e, t);
18944
- if (Object.getOwnPropertySymbols) {
18945
- var n = Object.getOwnPropertySymbols(e);
18946
- for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
18947
- }
18948
- return i;
18949
- }
18950
- function _objectWithoutPropertiesLoose(r, e) {
18951
- if (null == r) return {};
18952
- var t = {};
18953
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
18954
- if (-1 !== e.indexOf(n)) continue;
18955
- t[n] = r[n];
18956
- }
18957
- return t;
18958
- }
18959
- function _possibleConstructorReturn(t, e) {
18960
- if (e && ("object" == typeof e || "function" == typeof e)) return e;
18961
- if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
18962
- return _assertThisInitialized(t);
18963
- }
18964
- function _setPrototypeOf(t, e) {
18965
- return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
18966
- return t.__proto__ = e, t;
18967
- }, _setPrototypeOf(t, e);
18968
- }
18969
- function _toConsumableArray(r) {
18970
- return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
18971
- }
18972
- function _toPrimitive(t, r) {
18973
- if ("object" != typeof t || !t) return t;
18974
- var e = t[Symbol.toPrimitive];
18975
- if (void 0 !== e) {
18976
- var i = e.call(t, r);
18977
- if ("object" != typeof i) return i;
18978
- throw new TypeError("@@toPrimitive must return a primitive value.");
18979
- }
18980
- return ("string" === r ? String : Number)(t);
18981
- }
18982
- function _toPropertyKey(t) {
18983
- var i = _toPrimitive(t, "string");
18984
- return "symbol" == typeof i ? i : i + "";
18985
- }
18986
- function _typeof(o) {
18987
- "@babel/helpers - typeof";
18988
-
18989
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
18990
- return typeof o;
18991
- } : function (o) {
18992
- return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
18993
- }, _typeof(o);
18994
- }
18995
- function _unsupportedIterableToArray(r, a) {
18996
- if (r) {
18997
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
18998
- var t = {}.toString.call(r).slice(8, -1);
18999
- 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;
19000
- }
19001
- }
19002
- function _wrapNativeSuper(t) {
19003
- var r = "function" == typeof Map ? new Map() : void 0;
19004
- return _wrapNativeSuper = function (t) {
19005
- if (null === t || !_isNativeFunction(t)) return t;
19006
- if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
19007
- if (void 0 !== r) {
19008
- if (r.has(t)) return r.get(t);
19009
- r.set(t, Wrapper);
19010
- }
19011
- function Wrapper() {
19012
- return _construct(t, arguments, _getPrototypeOf(this).constructor);
19013
- }
19014
- return Wrapper.prototype = Object.create(t.prototype, {
19015
- constructor: {
19016
- value: Wrapper,
19017
- enumerable: false,
19018
- writable: true,
19019
- configurable: true
19020
- }
19021
- }), _setPrototypeOf(Wrapper, t);
19022
- }, _wrapNativeSuper(t);
19023
- }
19024
-
19025
19340
  var isOverrideLocationSpecifier = function isOverrideLocationSpecifier(locationSpecifier) {
19026
19341
  return _typeof(locationSpecifier) === 'object' && 'type' in locationSpecifier && 'value' in locationSpecifier;
19027
19342
  };
@@ -19034,66 +19349,6 @@ var isTAsset = function isTAsset(value) {
19034
19349
  return _typeof(value) === 'object' && value !== null && 'id' in value && 'fun' in value;
19035
19350
  };
19036
19351
 
19037
- /**
19038
- * Error thrown when multiple assets with the same symbol are found.
19039
- */
19040
- var DuplicateAssetError = /*#__PURE__*/function (_Error) {
19041
- /**
19042
- * Constructs a new DuplicateAssetError.
19043
- *
19044
- * @param symbol - The symbol of the asset causing the duplication error.
19045
- */
19046
- function DuplicateAssetError(msg) {
19047
- var _this;
19048
- _classCallCheck(this, DuplicateAssetError);
19049
- _this = _callSuper(this, DuplicateAssetError, [msg]);
19050
- _this.name = 'DuplicateAsset';
19051
- return _this;
19052
- }
19053
- _inherits(DuplicateAssetError, _Error);
19054
- return _createClass(DuplicateAssetError);
19055
- }(/*#__PURE__*/_wrapNativeSuper(Error));
19056
-
19057
- /**
19058
- * Error thrown when multiple assets with the same symbol are found.
19059
- */
19060
- var DuplicateAssetIdError = /*#__PURE__*/function (_Error) {
19061
- /**
19062
- * Constructs a new DuplicateAssetError.
19063
- *
19064
- * @param symbol - The symbol of the asset causing the duplication error.
19065
- */
19066
- function DuplicateAssetIdError(id) {
19067
- var _this;
19068
- _classCallCheck(this, DuplicateAssetIdError);
19069
- _this = _callSuper(this, DuplicateAssetIdError, ["Multiple assets found with the same ID: ".concat(id, ". Please specify asset directly by symbol using .currency({symbol: <ASSET_SYMBOL>})")]);
19070
- _this.name = 'DuplicateAssetId';
19071
- return _this;
19072
- }
19073
- _inherits(DuplicateAssetIdError, _Error);
19074
- return _createClass(DuplicateAssetIdError);
19075
- }(/*#__PURE__*/_wrapNativeSuper(Error));
19076
-
19077
- /**
19078
- * Used to inform user, that currency they wish to use is not registered on either origin or destination Parachain
19079
- */
19080
- var InvalidCurrencyError = /*#__PURE__*/function (_Error) {
19081
- /**
19082
- * Constructs a new InvalidCurrencyError.
19083
- *
19084
- * @param message - The error message.
19085
- */
19086
- function InvalidCurrencyError(message) {
19087
- var _this;
19088
- _classCallCheck(this, InvalidCurrencyError);
19089
- _this = _callSuper(this, InvalidCurrencyError, [message]);
19090
- _this.name = 'InvalidCurrencyError';
19091
- return _this;
19092
- }
19093
- _inherits(InvalidCurrencyError, _Error);
19094
- return _createClass(InvalidCurrencyError);
19095
- }(/*#__PURE__*/_wrapNativeSuper(Error));
19096
-
19097
19352
  var findAssetInfoById = function findAssetInfoById(assets, assetId) {
19098
19353
  var id = assetId.toString();
19099
19354
  var matches = assets.filter(function (a) {
@@ -19134,58 +19389,16 @@ var getAssetLocation = function getAssetLocation(chain, currency) {
19134
19389
  return (_asset$location = asset === null || asset === void 0 ? void 0 : asset.location) !== null && _asset$location !== void 0 ? _asset$location : null;
19135
19390
  };
19136
19391
 
19137
- /**
19138
- * Converts a location to a specific XCM version
19139
- *
19140
- * In XCM v3, `interior.X1` is a single `Object`. In XCM V4, `interior.X1` is an `Array<Object>`.
19141
- *
19142
- * @param location - The location to normalize.
19143
- * @param version - The target XCM version: `'V3'`, `'V4'` or `'V5'`. Defaults to `'V5'`.
19144
- * @returns A new transformed `TLocation`
19145
- */
19146
- var normalizeLocation = function normalizeLocation(location) {
19147
- var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Version.V5;
19148
- if (location.interior === 'Here' || location.interior.X1 === undefined) {
19149
- return location;
19150
- }
19151
- var currentX1 = location.interior.X1;
19152
- if (version === Version.V4 || version === Version.V5) {
19153
- if (Array.isArray(currentX1)) {
19154
- // Already in V4/V5 format
19155
- return location;
19156
- }
19157
- return {
19158
- parents: location.parents,
19159
- interior: {
19160
- X1: [currentX1]
19161
- }
19162
- };
19163
- } else {
19164
- if (!Array.isArray(currentX1)) {
19165
- // Already in V3 format
19166
- return location;
19167
- }
19168
- return {
19169
- parents: location.parents,
19170
- interior: {
19171
- X1: currentX1[0]
19172
- }
19173
- };
19174
- }
19175
- };
19176
-
19177
19392
  var findAssetInfoByLoc = function findAssetInfoByLoc(foreignAssets, location) {
19178
19393
  if (typeof location === 'string') {
19179
19394
  return foreignAssets.find(function (asset) {
19180
19395
  return compareLocations(location, asset);
19181
19396
  });
19182
- } else {
19183
- var normalizedLocation = normalizeLocation(location);
19184
- return foreignAssets.find(function (asset) {
19185
- var normalizedAssetML = asset.location && normalizeLocation(asset.location);
19186
- return deepEqual(normalizedLocation, normalizedAssetML);
19187
- });
19188
19397
  }
19398
+ var normalizedLocation = canonicalizeLocation(location);
19399
+ return foreignAssets.find(function (asset) {
19400
+ return asset.location && deepEqual(normalizedLocation, canonicalizeLocation(asset.location));
19401
+ });
19189
19402
  };
19190
19403
 
19191
19404
  var findBestMatches = function findBestMatches(assets, value) {
@@ -19360,12 +19573,12 @@ var findAssetInfoBySymbol = function findAssetInfoBySymbol(otherAssets, nativeAs
19360
19573
  return assetsMatches[0];
19361
19574
  };
19362
19575
 
19363
- var findAssetInfo = function findAssetInfo(chain, currency, destination) {
19576
+ var findAssetInfoImpl = function findAssetInfoImpl(chain, currency, destination, ctx) {
19364
19577
  if ('location' in currency && isOverrideLocationSpecifier(currency.location) || Array.isArray(currency)) {
19365
19578
  return null;
19366
19579
  }
19367
- var otherAssets = getOtherAssets(chain);
19368
- var nativeAssets = getNativeAssets(chain);
19580
+ var otherAssets = getOtherAssetsImpl(chain, ctx);
19581
+ var nativeAssets = getNativeAssetsImpl(chain, ctx);
19369
19582
  var assets = [].concat(_toConsumableArray(nativeAssets), _toConsumableArray(otherAssets));
19370
19583
  var asset;
19371
19584
  if ('symbol' in currency) {
@@ -19377,6 +19590,9 @@ var findAssetInfo = function findAssetInfo(chain, currency, destination) {
19377
19590
  }
19378
19591
  return asset !== null && asset !== void 0 ? asset : null;
19379
19592
  };
19593
+ var findAssetInfo = function findAssetInfo(chain, currency, destination) {
19594
+ return findAssetInfoImpl(chain, currency, destination);
19595
+ };
19380
19596
 
19381
19597
  var Native = function Native(symbol) {
19382
19598
  return {
@@ -19396,6 +19612,9 @@ var ForeignAbstract = function ForeignAbstract(symbol) {
19396
19612
  value: symbol
19397
19613
  };
19398
19614
  };
19615
+ /**
19616
+ * @deprecated Use the `customAssets` Builder option to register the asset instead. Will be removed in v14.
19617
+ */
19399
19618
  var Override = function Override(location) {
19400
19619
  return {
19401
19620
  type: 'Override',
@@ -19431,13 +19650,16 @@ var isBridgedSystemAsset = function isBridgedSystemAsset(asset, relayChains) {
19431
19650
  });
19432
19651
  };
19433
19652
 
19434
- var findAssetInfoOrThrow = function findAssetInfoOrThrow(chain, currency, destination) {
19435
- var asset = findAssetInfo(chain, currency, destination);
19653
+ var findAssetInfoOrThrowImpl = function findAssetInfoOrThrowImpl(chain, currency, destination, ctx) {
19654
+ var asset = findAssetInfoImpl(chain, currency, destination, ctx);
19436
19655
  if (!asset) {
19437
19656
  throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(currency, replaceBigInt), " not found on ").concat(chain));
19438
19657
  }
19439
19658
  return asset;
19440
19659
  };
19660
+ var findAssetInfoOrThrow = function findAssetInfoOrThrow(chain, currency, destination) {
19661
+ return findAssetInfoOrThrowImpl(chain, currency, destination);
19662
+ };
19441
19663
 
19442
19664
  var findStablecoinAssets = function findStablecoinAssets(chain) {
19443
19665
  var assets = getOtherAssets(chain);
@@ -19452,10 +19674,10 @@ var findStablecoinAssets = function findStablecoinAssets(chain) {
19452
19674
  });
19453
19675
  };
19454
19676
 
19455
- var findAssetInfoOnSubBridgeDest = function findAssetInfoOnSubBridgeDest(destination, resolvedOriginAsset) {
19456
- var nativeMatch = findAssetInfo(destination, {
19677
+ var findAssetInfoOnSubBridgeDest = function findAssetInfoOnSubBridgeDest(destination, resolvedOriginAsset, ctx) {
19678
+ var nativeMatch = findAssetInfoImpl(destination, {
19457
19679
  symbol: Native(resolvedOriginAsset.symbol)
19458
- }, null);
19680
+ }, null, ctx);
19459
19681
  if (nativeMatch) return nativeMatch;
19460
19682
  var isStablecoin = isStableCoinAsset(resolvedOriginAsset);
19461
19683
  if (isStablecoin) {
@@ -19465,56 +19687,75 @@ var findAssetInfoOnSubBridgeDest = function findAssetInfoOnSubBridgeDest(destina
19465
19687
  });
19466
19688
  if (match) return match;
19467
19689
  }
19468
- var foreignMatch = findAssetInfo(destination, {
19690
+ var foreignMatch = findAssetInfoImpl(destination, {
19469
19691
  symbol: Foreign(resolvedOriginAsset.symbol)
19470
- }, null);
19692
+ }, null, ctx);
19471
19693
  if (foreignMatch) return foreignMatch;
19472
19694
  return null;
19473
19695
  };
19474
- var findAssetInfoOnDest = function findAssetInfoOnDest(origin, destination, currency, originAsset) {
19475
- var isSubBridge = isSubstrateBridge(origin, destination);
19476
- var isSb = isSnowbridge(origin, destination);
19477
- var resolvedOriginAsset = originAsset !== null && originAsset !== void 0 ? originAsset : findAssetInfoOrThrow(origin, currency, destination);
19478
- if (isSubBridge) {
19479
- return findAssetInfoOnSubBridgeDest(destination, resolvedOriginAsset);
19696
+ var resolveAssetOnDest = function resolveAssetOnDest(origin, destination, resolvedOriginAsset, ctx) {
19697
+ if (isSubstrateBridge(origin, destination)) {
19698
+ return findAssetInfoOnSubBridgeDest(destination, resolvedOriginAsset, ctx);
19480
19699
  }
19700
+ var isSb = isSnowbridge(origin, destination);
19481
19701
  if (isSb && isSystemAsset(resolvedOriginAsset)) {
19482
- var match = findAssetInfo(destination, {
19702
+ var match = findAssetInfoImpl(destination, {
19483
19703
  symbol: resolvedOriginAsset.symbol
19484
- });
19704
+ }, null, ctx);
19485
19705
  if (match) return match;
19486
19706
  }
19487
19707
  // MYTH has two valid locations (native on Mythos, ERC-20 on Ethereum),
19488
19708
  // so resolve by symbol for the Mythos -> Ethereum Snowbridge transfer.
19489
19709
  if (isSb && origin === 'Mythos' && resolvedOriginAsset.symbol === 'MYTH') {
19490
- var _match = findAssetInfo(destination, {
19710
+ var _match = findAssetInfoImpl(destination, {
19491
19711
  symbol: 'MYTH'
19492
- });
19712
+ }, null, ctx);
19493
19713
  if (_match) return _match;
19494
19714
  }
19495
- return findAssetInfo(destination, {
19715
+ return findAssetInfoImpl(destination, {
19496
19716
  location: resolvedOriginAsset.location
19497
- });
19717
+ }, null, ctx);
19498
19718
  };
19499
- var findAssetOnDestOrThrow = function findAssetOnDestOrThrow(origin, destination, currency) {
19500
- var asset = findAssetInfoOnDest(origin, destination, currency);
19719
+ var findAssetInfoOnDestImpl = function findAssetInfoOnDestImpl(origin, destination, currency, originAsset, ctx) {
19720
+ var resolvedOriginAsset = originAsset !== null && originAsset !== void 0 ? originAsset : findAssetInfoOrThrowImpl(origin, currency, destination, ctx);
19721
+ var result = resolveAssetOnDest(origin, destination, resolvedOriginAsset, ctx);
19722
+ if (result) return result;
19723
+ if (!isCustomChain(origin) && isCustomAsset(origin, resolvedOriginAsset, ctx)) {
19724
+ return resolvedOriginAsset;
19725
+ }
19726
+ return null;
19727
+ };
19728
+ var findAssetInfoOnDest = function findAssetInfoOnDest(origin, destination, currency, originAsset) {
19729
+ return findAssetInfoOnDestImpl(origin, destination, currency, originAsset);
19730
+ };
19731
+ var findAssetOnDestOrThrowImpl = function findAssetOnDestOrThrowImpl(origin, destination, currency, ctx) {
19732
+ var asset = findAssetInfoOnDestImpl(origin, destination, currency, null, ctx);
19501
19733
  if (!asset) {
19502
19734
  throw new InvalidCurrencyError("Asset ".concat(JSON.stringify(currency, replaceBigInt), " not found on ").concat(destination));
19503
19735
  }
19504
19736
  return asset;
19505
19737
  };
19738
+ var findAssetOnDestOrThrow = function findAssetOnDestOrThrow(origin, destination, currency) {
19739
+ return findAssetOnDestOrThrowImpl(origin, destination, currency);
19740
+ };
19506
19741
 
19507
- var createSelection = function createSelection(chain) {
19508
- var nativeSymbol = getNativeAssetSymbol(chain);
19742
+ var createSelection = function createSelection(chain, ctx) {
19743
+ var nativeSymbol = getNativeAssetSymbolImpl(chain, ctx);
19509
19744
  return {
19510
19745
  symbol: isExternalChain(chain) ? nativeSymbol : Native(nativeSymbol)
19511
19746
  };
19512
19747
  };
19748
+ var findNativeAssetInfoImpl = function findNativeAssetInfoImpl(chain, ctx) {
19749
+ return findAssetInfoImpl(chain, createSelection(chain, ctx), null, ctx);
19750
+ };
19513
19751
  var findNativeAssetInfo = function findNativeAssetInfo(chain) {
19514
- return findAssetInfo(chain, createSelection(chain));
19752
+ return findNativeAssetInfoImpl(chain);
19753
+ };
19754
+ var findNativeAssetInfoOrThrowImpl = function findNativeAssetInfoOrThrowImpl(chain, ctx) {
19755
+ return findAssetInfoOrThrowImpl(chain, createSelection(chain, ctx), null, ctx);
19515
19756
  };
19516
19757
  var findNativeAssetInfoOrThrow = function findNativeAssetInfoOrThrow(chain) {
19517
- return findAssetInfoOrThrow(chain, createSelection(chain));
19758
+ return findNativeAssetInfoOrThrowImpl(chain);
19518
19759
  };
19519
19760
 
19520
19761
  var extractEdFromAsset = function extractEdFromAsset(asset) {
@@ -19582,8 +19823,24 @@ var getFeeAssets = function getFeeAssets(chain) {
19582
19823
  return feeAssets;
19583
19824
  };
19584
19825
 
19585
- // Contains different useful asset query operations from compatible Parachains asset map
19586
19826
  var assetsMap = assetsMapJson;
19827
+ var getAssetsObjectImpl = function getAssetsObjectImpl(chain, ctx) {
19828
+ var _ctx$customAssets;
19829
+ if (isCustomChain(chain)) {
19830
+ var _ctx$customChainAsset;
19831
+ var entry = ctx === null || ctx === void 0 || (_ctx$customChainAsset = ctx.customChainAssets) === null || _ctx$customChainAsset === void 0 ? void 0 : _ctx$customChainAsset[chain];
19832
+ if (!entry) {
19833
+ throw new InvalidCurrencyError("Custom chain '".concat(chain, "' is not registered."));
19834
+ }
19835
+ return entry;
19836
+ }
19837
+ var base = assetsMap[chain];
19838
+ var overlay = ctx === null || ctx === void 0 || (_ctx$customAssets = ctx.customAssets) === null || _ctx$customAssets === void 0 ? void 0 : _ctx$customAssets[chain];
19839
+ if (!overlay || overlay.length === 0) return base;
19840
+ return _objectSpread2(_objectSpread2({}, base), {}, {
19841
+ assets: mergeCustomAssets(base.assets, overlay)
19842
+ });
19843
+ };
19587
19844
  /**
19588
19845
  * Retrieves the assets object for a given chain containing the native and foreign assets.
19589
19846
  *
@@ -19591,10 +19848,13 @@ var assetsMap = assetsMapJson;
19591
19848
  * @returns The assets object associated with the given chain.
19592
19849
  */
19593
19850
  var getAssetsObject = function getAssetsObject(chain) {
19594
- return assetsMap[chain];
19851
+ return getAssetsObjectImpl(chain);
19852
+ };
19853
+ var isChainEvmImpl = function isChainEvmImpl(chain, ctx) {
19854
+ return getAssetsObjectImpl(chain, ctx).isEVM;
19595
19855
  };
19596
19856
  var isChainEvm = function isChainEvm(chain) {
19597
- return assetsMap[chain].isEVM;
19857
+ return isChainEvmImpl(chain);
19598
19858
  };
19599
19859
  /**
19600
19860
  * Retrieves the asset ID for a given symbol on a specified chain.
@@ -19611,6 +19871,9 @@ var getAssetId = function getAssetId(chain, symbol) {
19611
19871
  });
19612
19872
  return asset != null && asset.assetId ? asset.assetId : null;
19613
19873
  };
19874
+ var getRelayChainSymbolImpl = function getRelayChainSymbolImpl(chain, ctx) {
19875
+ return getAssetsObjectImpl(chain, ctx).relaychainSymbol;
19876
+ };
19614
19877
  /**
19615
19878
  * Retrieves the relay chain asset symbol for a specified chain.
19616
19879
  *
@@ -19618,7 +19881,12 @@ var getAssetId = function getAssetId(chain, symbol) {
19618
19881
  * @returns The relay chain asset symbol.
19619
19882
  */
19620
19883
  var getRelayChainSymbol = function getRelayChainSymbol(chain) {
19621
- return getAssetsObject(chain).relaychainSymbol;
19884
+ return getRelayChainSymbolImpl(chain);
19885
+ };
19886
+ var getNativeAssetsImpl = function getNativeAssetsImpl(chain, ctx) {
19887
+ return getAssetsObjectImpl(chain, ctx).assets.filter(function (asset) {
19888
+ return asset.isNative;
19889
+ });
19622
19890
  };
19623
19891
  /**
19624
19892
  * Retrieves the list of native assets for a specified chain.
@@ -19627,8 +19895,11 @@ var getRelayChainSymbol = function getRelayChainSymbol(chain) {
19627
19895
  * @returns An array of native asset details.
19628
19896
  */
19629
19897
  var getNativeAssets = function getNativeAssets(chain) {
19630
- return getAssetsObject(chain).assets.filter(function (asset) {
19631
- return asset.isNative;
19898
+ return getNativeAssetsImpl(chain);
19899
+ };
19900
+ var getOtherAssetsImpl = function getOtherAssetsImpl(chain, ctx) {
19901
+ return getAssetsObjectImpl(chain, ctx).assets.filter(function (asset) {
19902
+ return !asset.isNative;
19632
19903
  });
19633
19904
  };
19634
19905
  /**
@@ -19638,9 +19909,10 @@ var getNativeAssets = function getNativeAssets(chain) {
19638
19909
  * @returns An array of other asset details.
19639
19910
  */
19640
19911
  var getOtherAssets = function getOtherAssets(chain) {
19641
- return getAssetsObject(chain).assets.filter(function (asset) {
19642
- return !asset.isNative;
19643
- });
19912
+ return getOtherAssetsImpl(chain);
19913
+ };
19914
+ var getAssetsImpl = function getAssetsImpl(chain, ctx) {
19915
+ return getAssetsObjectImpl(chain, ctx).assets;
19644
19916
  };
19645
19917
  /**
19646
19918
  * Retrieves the complete list of assets for a specified chain, including relay chain asset, native, and other assets.
@@ -19649,9 +19921,7 @@ var getOtherAssets = function getOtherAssets(chain) {
19649
19921
  * @returns An array of objects of all assets associated with the chain.
19650
19922
  */
19651
19923
  var getAssets = function getAssets(chain) {
19652
- var _getAssetsObject = getAssetsObject(chain),
19653
- assets = _getAssetsObject.assets;
19654
- return assets;
19924
+ return getAssetsImpl(chain);
19655
19925
  };
19656
19926
  /**
19657
19927
  * Retrieves the symbols of all assets (relay chain, native, and other assets) for a specified chain.
@@ -19660,13 +19930,16 @@ var getAssets = function getAssets(chain) {
19660
19930
  * @returns An array of asset symbols.
19661
19931
  */
19662
19932
  var getAllAssetsSymbols = function getAllAssetsSymbols(chain) {
19663
- var _getAssetsObject2 = getAssetsObject(chain),
19664
- assets = _getAssetsObject2.assets;
19933
+ var _getAssetsObject = getAssetsObject(chain),
19934
+ assets = _getAssetsObject.assets;
19665
19935
  return assets.map(function (_ref) {
19666
19936
  var symbol = _ref.symbol;
19667
19937
  return symbol;
19668
19938
  });
19669
19939
  };
19940
+ var getNativeAssetSymbolImpl = function getNativeAssetSymbolImpl(chain, ctx) {
19941
+ return getAssetsObjectImpl(chain, ctx).nativeAssetSymbol;
19942
+ };
19670
19943
  /**
19671
19944
  * Retrieves the symbol of the native asset for a specified chain.
19672
19945
  *
@@ -19674,7 +19947,7 @@ var getAllAssetsSymbols = function getAllAssetsSymbols(chain) {
19674
19947
  * @returns The symbol of the native asset.
19675
19948
  */
19676
19949
  var getNativeAssetSymbol = function getNativeAssetSymbol(chain) {
19677
- return getAssetsObject(chain).nativeAssetSymbol;
19950
+ return getNativeAssetSymbolImpl(chain);
19678
19951
  };
19679
19952
  /**
19680
19953
  * Determines whether a specified chain supports an asset with the given symbol.
@@ -19716,24 +19989,34 @@ var hasSupportForAsset = function hasSupportForAsset(chain, symbol) {
19716
19989
  * @returns The number of decimals if the asset is found; otherwise, null.
19717
19990
  */
19718
19991
  var getAssetDecimals = function getAssetDecimals(chain, symbol) {
19719
- var _getAssetsObject3 = getAssetsObject(chain),
19720
- assets = _getAssetsObject3.assets;
19992
+ var _getAssetsObject2 = getAssetsObject(chain),
19993
+ assets = _getAssetsObject2.assets;
19721
19994
  var isMainNativeAsset = isSymbolMatch(symbol, getNativeAssetSymbol(chain));
19722
- if (isMainNativeAsset) return findNativeAssetInfoOrThrow(chain).decimals;
19995
+ if (isMainNativeAsset) return findNativeAssetInfoOrThrowImpl(chain).decimals;
19723
19996
  var asset = assets.find(function (o) {
19724
19997
  return o.symbol === symbol;
19725
19998
  });
19726
19999
  return (asset === null || asset === void 0 ? void 0 : asset.decimals) !== undefined ? asset.decimals : null;
19727
20000
  };
19728
- var hasDryRunSupport = function hasDryRunSupport(chain) {
20001
+ var hasDryRunSupportImpl = function hasDryRunSupportImpl(chain, ctx) {
19729
20002
  // These chains have DryRun but it's not working
19730
20003
  var DISABLED_CHAINS = ['Basilisk', 'Jamton'];
19731
- return getAssetsObject(chain).supportsDryRunApi && !DISABLED_CHAINS.includes(chain);
20004
+ return getAssetsObjectImpl(chain, ctx).supportsDryRunApi && !DISABLED_CHAINS.some(function (disabled) {
20005
+ return disabled === chain;
20006
+ });
19732
20007
  };
19733
- var hasXcmPaymentApiSupport = function hasXcmPaymentApiSupport(chain) {
20008
+ var hasDryRunSupport = function hasDryRunSupport(chain) {
20009
+ return hasDryRunSupportImpl(chain);
20010
+ };
20011
+ var hasXcmPaymentApiSupportImpl = function hasXcmPaymentApiSupportImpl(chain, ctx) {
19734
20012
  // These chains have XcmPaymentApi but it's not working
19735
20013
  var DISABLED_CHAINS = ['Basilisk', 'Jamton'];
19736
- return getAssetsObject(chain).supportsXcmPaymentApi && !DISABLED_CHAINS.includes(chain);
20014
+ return getAssetsObjectImpl(chain, ctx).supportsXcmPaymentApi && !DISABLED_CHAINS.some(function (disabled) {
20015
+ return disabled === chain;
20016
+ });
20017
+ };
20018
+ var hasXcmPaymentApiSupport = function hasXcmPaymentApiSupport(chain) {
20019
+ return hasXcmPaymentApiSupportImpl(chain);
19737
20020
  };
19738
20021
 
19739
20022
  var isAssetEqual = function isAssetEqual(asset1, asset2) {
@@ -19746,16 +20029,9 @@ var isAssetXcEqual = function isAssetXcEqual(asset1, asset2) {
19746
20029
  return isAssetEqual(asset1, asset2);
19747
20030
  };
19748
20031
 
19749
- /**
19750
- * Retrieves the list of assets that are supported for transfers between two specified chains.
19751
- *
19752
- * @param origin - The origin chain.
19753
- * @param destination - The destination chain.
19754
- * @returns An array of assets supported between the origin and destination chains.
19755
- */
19756
- var getSupportedAssets = function getSupportedAssets(origin, destination) {
19757
- var originAssets = getAssets(origin);
19758
- var destinationAssets = getAssets(destination);
20032
+ var getSupportedAssetsImpl = function getSupportedAssetsImpl(origin, destination, ctx) {
20033
+ var originAssets = getAssetsImpl(origin, ctx);
20034
+ var destinationAssets = getAssetsImpl(destination, ctx);
19759
20035
  var supportedAssets = originAssets.filter(function (asset) {
19760
20036
  return destinationAssets.some(function (a) {
19761
20037
  return isAssetXcEqual(a, asset);
@@ -19768,7 +20044,9 @@ var getSupportedAssets = function getSupportedAssets(origin, destination) {
19768
20044
  return isSystemAsset(asset);
19769
20045
  });
19770
20046
  if (isSubBridge) {
19771
- var nativeSymbols = [origin, destination].map(getNativeAssetSymbol);
20047
+ var nativeSymbols = [origin, destination].map(function (chain) {
20048
+ return getNativeAssetSymbolImpl(chain, ctx);
20049
+ });
19772
20050
  var filteredSystemAssets = systemAssets.filter(function (_ref) {
19773
20051
  var symbol = _ref.symbol;
19774
20052
  return nativeSymbols.includes(symbol);
@@ -19786,6 +20064,16 @@ var getSupportedAssets = function getSupportedAssets(origin, destination) {
19786
20064
  }
19787
20065
  return supportedAssets;
19788
20066
  };
20067
+ /**
20068
+ * Retrieves the list of assets that are supported for transfers between two specified chains.
20069
+ *
20070
+ * @param origin - The origin chain.
20071
+ * @param destination - The destination chain.
20072
+ * @returns An array of assets supported between the origin and destination chains.
20073
+ */
20074
+ var getSupportedAssets = function getSupportedAssets(origin, destination) {
20075
+ return getSupportedAssetsImpl(origin, destination);
20076
+ };
19789
20077
 
19790
20078
  var getSupportedDestinations = function getSupportedDestinations(origin, currency) {
19791
20079
  findAssetInfoOrThrow(origin, currency);
@@ -19812,4 +20100,4 @@ var getSupportedDestinations = function getSupportedDestinations(origin, currenc
19812
20100
  });
19813
20101
  };
19814
20102
 
19815
- export { DuplicateAssetError, DuplicateAssetIdError, Foreign, ForeignAbstract, InvalidCurrencyError, Native, Override, assertEdDefined, compareLocations, extractAssetLocation, findAssetInfo, findAssetInfoById, findAssetInfoByLoc, findAssetInfoBySymbol, findAssetInfoOnDest, findAssetInfoOrThrow, findAssetOnDestOrThrow, findBestMatches, findNativeAssetInfo, findNativeAssetInfoOrThrow, getAllAssetsSymbols, getAssetDecimals, getAssetId, getAssetLocation, getAssets, getAssetsObject, getEdFromAssetOrThrow, getExistentialDeposit, getExistentialDepositOrThrow, getFeeAssets, getNativeAssetSymbol, getNativeAssets, getOtherAssets, getRelayChainSymbol, getSupportedAssets, getSupportedDestinations, hasDryRunSupport, hasSupportForAsset, hasXcmPaymentApiSupport, isAssetEqual, isAssetXcEqual, isBridgedSystemAsset, isChainEvm, isOverrideLocationSpecifier, isStableCoinAsset, isSymbolMatch, isSymbolSpecifier, isSystemAsset, isTAsset, normalizeLocation, normalizeSymbol };
20103
+ export { CustomAssetConflictError, DuplicateAssetError, DuplicateAssetIdError, Foreign, ForeignAbstract, InvalidCurrencyError, Native, Override, assertEdDefined, canonicalizeLocation, compareLocations, extractAssetLocation, findAssetInfo, findAssetInfoById, findAssetInfoByLoc, findAssetInfoBySymbol, findAssetInfoImpl, findAssetInfoOnDest, findAssetInfoOnDestImpl, findAssetInfoOrThrow, findAssetInfoOrThrowImpl, findAssetOnDestOrThrow, findAssetOnDestOrThrowImpl, findBestMatches, findNativeAssetInfo, findNativeAssetInfoImpl, findNativeAssetInfoOrThrow, findNativeAssetInfoOrThrowImpl, getAllAssetsSymbols, getAssetDecimals, getAssetId, getAssetLocation, getAssets, getAssetsImpl, getAssetsObject, getAssetsObjectImpl, getEdFromAssetOrThrow, getExistentialDeposit, getExistentialDepositOrThrow, getFeeAssets, getNativeAssetSymbol, getNativeAssetSymbolImpl, getNativeAssets, getNativeAssetsImpl, getOtherAssets, getOtherAssetsImpl, getRelayChainSymbol, getRelayChainSymbolImpl, getSupportedAssets, getSupportedAssetsImpl, getSupportedDestinations, hasDryRunSupport, hasDryRunSupportImpl, hasSupportForAsset, hasXcmPaymentApiSupport, hasXcmPaymentApiSupportImpl, isAssetEqual, isAssetXcEqual, isBridgedSystemAsset, isChainEvm, isChainEvmImpl, isCustomAsset, isOverrideLocationSpecifier, isStableCoinAsset, isSymbolMatch, isSymbolSpecifier, isSystemAsset, isTAsset, normalizeCustomAssets, normalizeLocation, normalizeSymbol };