@enkryptcom/swap 0.0.3

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.js ADDED
@@ -0,0 +1,2115 @@
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithHoles(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _arrayWithoutHoles(arr) {
10
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
11
+ }
12
+ function _assertThisInitialized(self) {
13
+ if (self === void 0) {
14
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
15
+ }
16
+ return self;
17
+ }
18
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
19
+ try {
20
+ var info = gen[key](arg);
21
+ var value = info.value;
22
+ } catch (error) {
23
+ reject(error);
24
+ return;
25
+ }
26
+ if (info.done) {
27
+ resolve(value);
28
+ } else {
29
+ Promise.resolve(value).then(_next, _throw);
30
+ }
31
+ }
32
+ function _asyncToGenerator(fn) {
33
+ return function() {
34
+ var self = this, args = arguments;
35
+ return new Promise(function(resolve, reject) {
36
+ var gen = fn.apply(self, args);
37
+ function _next(value) {
38
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
39
+ }
40
+ function _throw(err) {
41
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
42
+ }
43
+ _next(undefined);
44
+ });
45
+ };
46
+ }
47
+ function _classCallCheck(instance, Constructor) {
48
+ if (!(instance instanceof Constructor)) {
49
+ throw new TypeError("Cannot call a class as a function");
50
+ }
51
+ }
52
+ function _defineProperties(target, props) {
53
+ for(var i = 0; i < props.length; i++){
54
+ var descriptor = props[i];
55
+ descriptor.enumerable = descriptor.enumerable || false;
56
+ descriptor.configurable = true;
57
+ if ("value" in descriptor) descriptor.writable = true;
58
+ Object.defineProperty(target, descriptor.key, descriptor);
59
+ }
60
+ }
61
+ function _createClass(Constructor, protoProps, staticProps) {
62
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
63
+ if (staticProps) _defineProperties(Constructor, staticProps);
64
+ return Constructor;
65
+ }
66
+ function _defineProperty(obj, key, value) {
67
+ if (key in obj) {
68
+ Object.defineProperty(obj, key, {
69
+ value: value,
70
+ enumerable: true,
71
+ configurable: true,
72
+ writable: true
73
+ });
74
+ } else {
75
+ obj[key] = value;
76
+ }
77
+ return obj;
78
+ }
79
+ function _getPrototypeOf(o) {
80
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
81
+ return o.__proto__ || Object.getPrototypeOf(o);
82
+ };
83
+ return _getPrototypeOf(o);
84
+ }
85
+ function _inherits(subClass, superClass) {
86
+ if (typeof superClass !== "function" && superClass !== null) {
87
+ throw new TypeError("Super expression must either be null or a function");
88
+ }
89
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
90
+ constructor: {
91
+ value: subClass,
92
+ writable: true,
93
+ configurable: true
94
+ }
95
+ });
96
+ if (superClass) _setPrototypeOf(subClass, superClass);
97
+ }
98
+ function _iterableToArray(iter) {
99
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
100
+ }
101
+ function _iterableToArrayLimit(arr, i) {
102
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
103
+ if (_i == null) return;
104
+ var _arr = [];
105
+ var _n = true;
106
+ var _d = false;
107
+ var _s, _e;
108
+ try {
109
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
110
+ _arr.push(_s.value);
111
+ if (i && _arr.length === i) break;
112
+ }
113
+ } catch (err) {
114
+ _d = true;
115
+ _e = err;
116
+ } finally{
117
+ try {
118
+ if (!_n && _i["return"] != null) _i["return"]();
119
+ } finally{
120
+ if (_d) throw _e;
121
+ }
122
+ }
123
+ return _arr;
124
+ }
125
+ function _nonIterableRest() {
126
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
127
+ }
128
+ function _nonIterableSpread() {
129
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
130
+ }
131
+ function _objectSpread(target) {
132
+ for(var i = 1; i < arguments.length; i++){
133
+ var source = arguments[i] != null ? arguments[i] : {};
134
+ var ownKeys = Object.keys(source);
135
+ if (typeof Object.getOwnPropertySymbols === "function") {
136
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
137
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
138
+ }));
139
+ }
140
+ ownKeys.forEach(function(key) {
141
+ _defineProperty(target, key, source[key]);
142
+ });
143
+ }
144
+ return target;
145
+ }
146
+ function ownKeys(object, enumerableOnly) {
147
+ var keys = Object.keys(object);
148
+ if (Object.getOwnPropertySymbols) {
149
+ var symbols = Object.getOwnPropertySymbols(object);
150
+ if (enumerableOnly) {
151
+ symbols = symbols.filter(function(sym) {
152
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
153
+ });
154
+ }
155
+ keys.push.apply(keys, symbols);
156
+ }
157
+ return keys;
158
+ }
159
+ function _objectSpreadProps(target, source) {
160
+ source = source != null ? source : {};
161
+ if (Object.getOwnPropertyDescriptors) {
162
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
163
+ } else {
164
+ ownKeys(Object(source)).forEach(function(key) {
165
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
166
+ });
167
+ }
168
+ return target;
169
+ }
170
+ function _possibleConstructorReturn(self, call) {
171
+ if (call && (_typeof(call) === "object" || typeof call === "function")) {
172
+ return call;
173
+ }
174
+ return _assertThisInitialized(self);
175
+ }
176
+ function _setPrototypeOf(o, p) {
177
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
178
+ o.__proto__ = p;
179
+ return o;
180
+ };
181
+ return _setPrototypeOf(o, p);
182
+ }
183
+ function _slicedToArray(arr, i) {
184
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
185
+ }
186
+ function _toConsumableArray(arr) {
187
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
188
+ }
189
+ var _typeof = function(obj) {
190
+ "@swc/helpers - typeof";
191
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
192
+ };
193
+ function _unsupportedIterableToArray(o, minLen) {
194
+ if (!o) return;
195
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
196
+ var n = Object.prototype.toString.call(o).slice(8, -1);
197
+ if (n === "Object" && o.constructor) n = o.constructor.name;
198
+ if (n === "Map" || n === "Set") return Array.from(n);
199
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
200
+ }
201
+ function _isNativeReflectConstruct() {
202
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
203
+ if (Reflect.construct.sham) return false;
204
+ if (typeof Proxy === "function") return true;
205
+ try {
206
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
207
+ return true;
208
+ } catch (e) {
209
+ return false;
210
+ }
211
+ }
212
+ function _createSuper(Derived) {
213
+ var hasNativeReflectConstruct = _isNativeReflectConstruct();
214
+ return function _createSuperInternal() {
215
+ var Super = _getPrototypeOf(Derived), result;
216
+ if (hasNativeReflectConstruct) {
217
+ var NewTarget = _getPrototypeOf(this).constructor;
218
+ result = Reflect.construct(Super, arguments, NewTarget);
219
+ } else {
220
+ result = Super.apply(this, arguments);
221
+ }
222
+ return _possibleConstructorReturn(this, result);
223
+ };
224
+ }
225
+ var __generator = this && this.__generator || function(thisArg, body) {
226
+ var f, y, t, g, _ = {
227
+ label: 0,
228
+ sent: function() {
229
+ if (t[0] & 1) throw t[1];
230
+ return t[1];
231
+ },
232
+ trys: [],
233
+ ops: []
234
+ };
235
+ return(g = {
236
+ next: verb(0),
237
+ "throw": verb(1),
238
+ "return": verb(2)
239
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
240
+ return this;
241
+ }), g);
242
+ function verb(n) {
243
+ return function(v) {
244
+ return step([
245
+ n,
246
+ v
247
+ ]);
248
+ };
249
+ }
250
+ function step(op) {
251
+ if (f) throw new TypeError("Generator is already executing.");
252
+ while(_)try {
253
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
254
+ if (y = 0, t) op = [
255
+ op[0] & 2,
256
+ t.value
257
+ ];
258
+ switch(op[0]){
259
+ case 0:
260
+ case 1:
261
+ t = op;
262
+ break;
263
+ case 4:
264
+ _.label++;
265
+ return {
266
+ value: op[1],
267
+ done: false
268
+ };
269
+ case 5:
270
+ _.label++;
271
+ y = op[1];
272
+ op = [
273
+ 0
274
+ ];
275
+ continue;
276
+ case 7:
277
+ op = _.ops.pop();
278
+ _.trys.pop();
279
+ continue;
280
+ default:
281
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
282
+ _ = 0;
283
+ continue;
284
+ }
285
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
286
+ _.label = op[1];
287
+ break;
288
+ }
289
+ if (op[0] === 6 && _.label < t[1]) {
290
+ _.label = t[1];
291
+ t = op;
292
+ break;
293
+ }
294
+ if (t && _.label < t[2]) {
295
+ _.label = t[2];
296
+ _.ops.push(op);
297
+ break;
298
+ }
299
+ if (t[2]) _.ops.pop();
300
+ _.trys.pop();
301
+ continue;
302
+ }
303
+ op = body.call(thisArg, _);
304
+ } catch (e) {
305
+ op = [
306
+ 6,
307
+ e
308
+ ];
309
+ y = 0;
310
+ } finally{
311
+ f = t = 0;
312
+ }
313
+ if (op[0] & 5) throw op[1];
314
+ return {
315
+ value: op[0] ? op[1] : void 0,
316
+ done: true
317
+ };
318
+ }
319
+ };
320
+ var __create = Object.create;
321
+ var __defProp = Object.defineProperty;
322
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
323
+ var __getOwnPropNames = Object.getOwnPropertyNames;
324
+ var __getProtoOf = Object.getPrototypeOf;
325
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
326
+ var __export = function(target, all) {
327
+ for(var name in all)__defProp(target, name, {
328
+ get: all[name],
329
+ enumerable: true
330
+ });
331
+ };
332
+ var __copyProps = function(to, from, except, desc) {
333
+ if (from && typeof from === "object" || typeof from === "function") {
334
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
335
+ try {
336
+ var _loop = function() {
337
+ var key = _step.value;
338
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
339
+ get: function() {
340
+ return from[key];
341
+ },
342
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
343
+ });
344
+ };
345
+ for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
346
+ } catch (err) {
347
+ _didIteratorError = true;
348
+ _iteratorError = err;
349
+ } finally{
350
+ try {
351
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
352
+ _iterator.return();
353
+ }
354
+ } finally{
355
+ if (_didIteratorError) {
356
+ throw _iteratorError;
357
+ }
358
+ }
359
+ }
360
+ }
361
+ return to;
362
+ };
363
+ var __toESM = function(mod, isNodeMode, target) {
364
+ return target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(// If the importer is in node compatibility mode or this is not an ESM
365
+ // file that has been converted to a CommonJS file using a Babel-
366
+ // compatible transform (i.e. "__esModule" has not been set), then set
367
+ // "default" to the CommonJS "module.exports" for node compatibility.
368
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
369
+ value: mod,
370
+ enumerable: true
371
+ }) : target, mod);
372
+ };
373
+ var __toCommonJS = function(mod) {
374
+ return __copyProps(__defProp({}, "__esModule", {
375
+ value: true
376
+ }), mod);
377
+ };
378
+ // src/index.ts
379
+ var src_exports = {};
380
+ __export(src_exports, {
381
+ NetworkType: function() {
382
+ return NetworkType;
383
+ },
384
+ SupportedNetworkName: function() {
385
+ return SupportedNetworkName;
386
+ },
387
+ SwapToken: function() {
388
+ return swapToken_default;
389
+ },
390
+ TransactionStatus: function() {
391
+ return TransactionStatus;
392
+ },
393
+ TransactionType: function() {
394
+ return TransactionType;
395
+ },
396
+ WalletIdentifier: function() {
397
+ return WalletIdentifier;
398
+ },
399
+ default: function() {
400
+ return src_default;
401
+ },
402
+ getNetworkInfoByName: function() {
403
+ return getNetworkInfoByName;
404
+ },
405
+ getSupportedNetworks: function() {
406
+ return getSupportedNetworks;
407
+ },
408
+ isSupportedNetwork: function() {
409
+ return isSupportedNetwork;
410
+ },
411
+ sortByRank: function() {
412
+ return sortByRank;
413
+ },
414
+ sortNativeToFront: function() {
415
+ return sortNativeToFront;
416
+ }
417
+ });
418
+ module.exports = __toCommonJS(src_exports);
419
+ var import_node_fetch3 = __toESM(require("node-fetch"));
420
+ var import_lodash = require("lodash");
421
+ var import_eventemitter3 = __toESM(require("eventemitter3"));
422
+ // src/configs.ts
423
+ var import_types2 = require("@enkryptcom/types");
424
+ var import_web3_utils = require("web3-utils");
425
+ // src/types/index.ts
426
+ var import_types = require("@enkryptcom/types");
427
+ var SupportedNetworkName = function(SupportedNetworkName3) {
428
+ SupportedNetworkName3[SupportedNetworkName3["Ethereum"] = import_types.NetworkNames.Ethereum] = "Ethereum";
429
+ SupportedNetworkName3[SupportedNetworkName3["Binance"] = import_types.NetworkNames.Binance] = "Binance";
430
+ SupportedNetworkName3[SupportedNetworkName3["Matic"] = import_types.NetworkNames.Matic] = "Matic";
431
+ SupportedNetworkName3[SupportedNetworkName3["Optimism"] = import_types.NetworkNames.Optimism] = "Optimism";
432
+ SupportedNetworkName3[SupportedNetworkName3["Polkadot"] = import_types.NetworkNames.Polkadot] = "Polkadot";
433
+ SupportedNetworkName3[SupportedNetworkName3["Kusama"] = import_types.NetworkNames.Kusama] = "Kusama";
434
+ SupportedNetworkName3[SupportedNetworkName3["Bitcoin"] = import_types.NetworkNames.Bitcoin] = "Bitcoin";
435
+ SupportedNetworkName3[SupportedNetworkName3["EthereumClassic"] = import_types.NetworkNames.EthereumClassic] = "EthereumClassic";
436
+ SupportedNetworkName3[SupportedNetworkName3["Moonbeam"] = import_types.NetworkNames.Moonbeam] = "Moonbeam";
437
+ SupportedNetworkName3[SupportedNetworkName3["Arbitrum"] = import_types.NetworkNames.Arbitrum] = "Arbitrum";
438
+ SupportedNetworkName3[SupportedNetworkName3["Gnosis"] = import_types.NetworkNames.Gnosis] = "Gnosis";
439
+ SupportedNetworkName3[SupportedNetworkName3["Avalanche"] = import_types.NetworkNames.Avalanche] = "Avalanche";
440
+ SupportedNetworkName3[SupportedNetworkName3["Fantom"] = import_types.NetworkNames.Fantom] = "Fantom";
441
+ SupportedNetworkName3[SupportedNetworkName3["Klaytn"] = import_types.NetworkNames.Klaytn] = "Klaytn";
442
+ SupportedNetworkName3[SupportedNetworkName3["Aurora"] = import_types.NetworkNames.Aurora] = "Aurora";
443
+ return SupportedNetworkName3;
444
+ }(SupportedNetworkName || {});
445
+ var NetworkType = /* @__PURE__ */ function(NetworkType2) {
446
+ NetworkType2["EVM"] = "evm";
447
+ NetworkType2["Substrate"] = "substrate";
448
+ NetworkType2["Bitcoin"] = "bitcoin";
449
+ return NetworkType2;
450
+ }(NetworkType || {});
451
+ var WalletIdentifier = /* @__PURE__ */ function(WalletIdentifier2) {
452
+ WalletIdentifier2["enkrypt"] = "enkrypt";
453
+ WalletIdentifier2["mew"] = "mew";
454
+ return WalletIdentifier2;
455
+ }(WalletIdentifier || {});
456
+ var TransactionStatus = /* @__PURE__ */ function(TransactionStatus2) {
457
+ TransactionStatus2["pending"] = "pending";
458
+ TransactionStatus2["failed"] = "failed";
459
+ TransactionStatus2["success"] = "success";
460
+ return TransactionStatus2;
461
+ }(TransactionStatus || {});
462
+ var TransactionType = /* @__PURE__ */ function(TransactionType2) {
463
+ TransactionType2["evm"] = "evm";
464
+ TransactionType2["generic"] = "generic";
465
+ return TransactionType2;
466
+ }(TransactionType || {});
467
+ var ProviderClass = function ProviderClass(_web3eth, network) {
468
+ "use strict";
469
+ _classCallCheck(this, ProviderClass);
470
+ this.network = network;
471
+ };
472
+ var _obj, _obj1, _obj2, _obj3;
473
+ // src/configs.ts
474
+ var FEE_CONFIGS = (_obj3 = {}, _defineProperty(_obj3, "oneInch" /* oneInch */ , (_obj = {}, _defineProperty(_obj, "enkrypt" /* enkrypt */ , {
475
+ referrer: "0x551d9d8eb02e1c713009da8f7c194870d651054a",
476
+ fee: 875e-5
477
+ }), _defineProperty(_obj, "mew" /* mew */ , {
478
+ referrer: "0x87A265C93D2A92C6EEEC002283bEaEbb4564Fd20",
479
+ fee: 0.025
480
+ }), _obj)), _defineProperty(_obj3, "paraswap" /* paraswap */ , (_obj1 = {}, _defineProperty(_obj1, "enkrypt" /* enkrypt */ , {
481
+ referrer: "0x9d24aceac6fbfb3f7ff4c751217d41afc12f43b6",
482
+ fee: 875e-5
483
+ }), _defineProperty(_obj1, "mew" /* mew */ , {
484
+ referrer: "0xb80a5ea0ec9732cc1875d088495df8c8782dd6b7",
485
+ fee: 0.025
486
+ }), _obj1)), _defineProperty(_obj3, "zerox" /* zerox */ , (_obj2 = {}, _defineProperty(_obj2, "enkrypt" /* enkrypt */ , {
487
+ referrer: "0x485a5ec817711874e49bc01d6c63a7ca9db33653",
488
+ fee: 875e-5
489
+ }), _defineProperty(_obj2, "mew" /* mew */ , {
490
+ referrer: "0xD6135f846dbC86d34E69F138b86E87d3eF2A56D0",
491
+ fee: 0.025
492
+ }), _obj2)), _obj3);
493
+ var _obj4;
494
+ var TOKEN_LISTS = (_obj4 = {}, _defineProperty(_obj4, import_types2.NetworkNames.Ethereum, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Ethereum, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.Binance, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Binance, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.Matic, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Matic, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.Optimism, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Optimism, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.Arbitrum, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Arbitrum, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.Aurora, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Aurora, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.Avalanche, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Avalanche, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.EthereumClassic, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.EthereumClassic, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.Fantom, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Fantom, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.Moonbeam, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Moonbeam, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.Gnosis, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Gnosis, ".json")), _defineProperty(_obj4, import_types2.NetworkNames.Klaytn, "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/".concat(SupportedNetworkName.Klaytn, ".json")), _obj4);
495
+ var CHANGELLY_LIST = "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/changelly.json";
496
+ var TOP_TOKEN_INFO_LIST = "https://raw.githubusercontent.com/enkryptcom/dynamic-data/main/swaplists/top-tokens.json";
497
+ var GAS_LIMITS = {
498
+ approval: (0, import_web3_utils.numberToHex)(3e5),
499
+ transferToken: (0, import_web3_utils.numberToHex)(3e5),
500
+ swap: (0, import_web3_utils.numberToHex)(1e6)
501
+ };
502
+ var NATIVE_TOKEN_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
503
+ var DEFAULT_SLIPPAGE = "0.5";
504
+ // src/providers/oneInch/index.ts
505
+ var import_web3_utils5 = require("web3-utils");
506
+ // src/utils/approvals.ts
507
+ var import_web3_eth = __toESM(require("web3-eth"));
508
+ var import_web3_utils2 = require("web3-utils");
509
+ // src/utils/abi/erc20.ts
510
+ var erc20_default = [
511
+ {
512
+ constant: false,
513
+ inputs: [
514
+ {
515
+ name: "_spender",
516
+ type: "address"
517
+ },
518
+ {
519
+ name: "_value",
520
+ type: "uint256"
521
+ }
522
+ ],
523
+ name: "approve",
524
+ outputs: [
525
+ {
526
+ name: "",
527
+ type: "bool"
528
+ }
529
+ ],
530
+ payable: false,
531
+ stateMutability: "nonpayable",
532
+ type: "function"
533
+ },
534
+ {
535
+ constant: true,
536
+ inputs: [
537
+ {
538
+ name: "_owner",
539
+ type: "address"
540
+ }
541
+ ],
542
+ name: "balanceOf",
543
+ outputs: [
544
+ {
545
+ name: "balance",
546
+ type: "uint256"
547
+ }
548
+ ],
549
+ payable: false,
550
+ stateMutability: "view",
551
+ type: "function"
552
+ },
553
+ {
554
+ constant: false,
555
+ inputs: [
556
+ {
557
+ name: "_to",
558
+ type: "address"
559
+ },
560
+ {
561
+ name: "_value",
562
+ type: "uint256"
563
+ }
564
+ ],
565
+ name: "transfer",
566
+ outputs: [
567
+ {
568
+ name: "",
569
+ type: "bool"
570
+ }
571
+ ],
572
+ payable: false,
573
+ stateMutability: "nonpayable",
574
+ type: "function"
575
+ },
576
+ {
577
+ constant: true,
578
+ inputs: [
579
+ {
580
+ name: "_owner",
581
+ type: "address"
582
+ },
583
+ {
584
+ name: "_spender",
585
+ type: "address"
586
+ }
587
+ ],
588
+ name: "allowance",
589
+ outputs: [
590
+ {
591
+ name: "",
592
+ type: "uint256"
593
+ }
594
+ ],
595
+ payable: false,
596
+ stateMutability: "view",
597
+ type: "function"
598
+ }
599
+ ];
600
+ // src/utils/approvals.ts
601
+ var TOKEN_AMOUNT_INFINITY_AND_BEYOND = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
602
+ var getAllowance = function(options) {
603
+ var contract = new options.web3eth.Contract(erc20_default, options.contract);
604
+ return contract.methods.allowance(options.owner, options.spender).call();
605
+ };
606
+ var getTransfer = function(options) {
607
+ var web3Eth = new import_web3_eth.default();
608
+ var contract = new web3Eth.Contract(erc20_default);
609
+ return {
610
+ from: options.from,
611
+ data: contract.methods.transfer(options.to, options.value).encodeABI(),
612
+ gasLimit: GAS_LIMITS.transferToken,
613
+ to: options.contract,
614
+ value: "0x0",
615
+ type: "evm" /* evm */
616
+ };
617
+ };
618
+ var getApproval = function(options) {
619
+ var web3Eth = new import_web3_eth.default();
620
+ var contract = new web3Eth.Contract(erc20_default);
621
+ return {
622
+ from: options.from,
623
+ data: contract.methods.approve(options.spender, options.value).encodeABI(),
624
+ gasLimit: GAS_LIMITS.approval,
625
+ to: options.contract,
626
+ value: "0x0",
627
+ type: "evm" /* evm */
628
+ };
629
+ };
630
+ var getAllowanceTransactions = function() {
631
+ var _ref = _asyncToGenerator(function(options) {
632
+ var transactions, approvedAmount, _;
633
+ return __generator(this, function(_state) {
634
+ switch(_state.label){
635
+ case 0:
636
+ transactions = [];
637
+ _ = (0, import_web3_utils2.toBN);
638
+ return [
639
+ 4,
640
+ getAllowance({
641
+ contract: options.fromToken.address,
642
+ owner: options.fromAddress,
643
+ spender: options.spender,
644
+ web3eth: options.web3eth
645
+ })
646
+ ];
647
+ case 1:
648
+ approvedAmount = _.apply(void 0, [
649
+ _state.sent()
650
+ ]);
651
+ if (approvedAmount.lt(options.amount)) {
652
+ if (approvedAmount.eqn(0)) {
653
+ transactions.push(getApproval({
654
+ from: options.fromAddress,
655
+ spender: options.spender,
656
+ value: options.infinityApproval ? TOKEN_AMOUNT_INFINITY_AND_BEYOND : options.amount.toString(),
657
+ contract: options.fromToken.address
658
+ }));
659
+ } else {
660
+ transactions.push(getApproval({
661
+ from: options.fromAddress,
662
+ spender: options.spender,
663
+ value: "0",
664
+ contract: options.fromToken.address
665
+ }));
666
+ transactions.push(getApproval({
667
+ from: options.fromAddress,
668
+ spender: options.spender,
669
+ value: options.infinityApproval ? TOKEN_AMOUNT_INFINITY_AND_BEYOND : options.amount.toString(),
670
+ contract: options.fromToken.address
671
+ }));
672
+ }
673
+ }
674
+ return [
675
+ 2,
676
+ transactions
677
+ ];
678
+ }
679
+ });
680
+ });
681
+ return function getAllowanceTransactions(options) {
682
+ return _ref.apply(this, arguments);
683
+ };
684
+ }();
685
+ // src/common/estimateGasList.ts
686
+ var import_node_fetch = __toESM(require("node-fetch"));
687
+ var import_web3_utils3 = require("web3-utils");
688
+ var _obj5;
689
+ var supportedNetworks = (_obj5 = {}, _defineProperty(_obj5, SupportedNetworkName.Ethereum, {
690
+ url: "https://estimategas.mewapi.io/eth"
691
+ }), _defineProperty(_obj5, SupportedNetworkName.Binance, {
692
+ url: "https://estimategas.mewapi.io/bsc"
693
+ }), _defineProperty(_obj5, SupportedNetworkName.Matic, {
694
+ url: "https://estimategas.mewapi.io/matic"
695
+ }), _defineProperty(_obj5, SupportedNetworkName.Arbitrum, {
696
+ url: "https://nodes.mewapi.io/rpc/arb"
697
+ }), _obj5);
698
+ var useStandardEstimate = function(transactions, network) {
699
+ return (0, import_node_fetch.default)(supportedNetworks[network].url, {
700
+ method: "POST",
701
+ body: JSON.stringify({
702
+ jsonrpc: "2.0",
703
+ id: 0,
704
+ method: "eth_estimateGas",
705
+ params: [
706
+ transactions[0]
707
+ ]
708
+ }),
709
+ headers: {
710
+ "Content-Type": "application/json"
711
+ }
712
+ }).then(function(res) {
713
+ if (res.ok) return res.json();
714
+ throw new Error("Something went wrong");
715
+ }).then(function(json) {
716
+ if (json.error) return {
717
+ isError: true,
718
+ errorMessage: json.error.message
719
+ };
720
+ var isApproval = transactions[0].data.startsWith("0x095ea7b3");
721
+ var genericTx0Gas = isApproval ? (0, import_web3_utils3.toBN)(GAS_LIMITS.approval) : (0, import_web3_utils3.toBN)(GAS_LIMITS.swap);
722
+ var tx0gas = (0, import_web3_utils3.toBN)(json.result);
723
+ if (genericTx0Gas.gt(tx0gas)) {
724
+ if (isApproval) {
725
+ return {
726
+ result: transactions.length === 2 ? [
727
+ json.result,
728
+ GAS_LIMITS.swap
729
+ ] : [
730
+ json.result,
731
+ GAS_LIMITS.approval,
732
+ GAS_LIMITS.swap
733
+ ]
734
+ };
735
+ }
736
+ return {
737
+ result: [
738
+ json.result
739
+ ]
740
+ };
741
+ }
742
+ var multiplier = tx0gas.div(genericTx0Gas);
743
+ if (isApproval) {
744
+ return {
745
+ result: transactions.length === 2 ? [
746
+ json.result,
747
+ (0, import_web3_utils3.numberToHex)((0, import_web3_utils3.toBN)(GAS_LIMITS.swap).mul(multiplier.addn(3)))
748
+ ] : [
749
+ json.result,
750
+ (0, import_web3_utils3.numberToHex)((0, import_web3_utils3.toBN)(GAS_LIMITS.approval).mul(multiplier)),
751
+ (0, import_web3_utils3.numberToHex)((0, import_web3_utils3.toBN)(GAS_LIMITS.swap).mul(multiplier.addn(3)))
752
+ ]
753
+ };
754
+ }
755
+ return {
756
+ result: [
757
+ json.result
758
+ ]
759
+ };
760
+ }).catch(function() {
761
+ return null;
762
+ });
763
+ };
764
+ var estimateGasList = function(transactions, network) {
765
+ if (!Object.keys(supportedNetworks).includes(network)) return null;
766
+ if (network === SupportedNetworkName.Arbitrum) return useStandardEstimate(transactions, network);
767
+ var strippedTxs = transactions.map(function(tx) {
768
+ var from = tx.from, to = tx.to, data = tx.data, value = tx.value;
769
+ return {
770
+ from: from,
771
+ to: to,
772
+ data: data,
773
+ value: value
774
+ };
775
+ });
776
+ return (0, import_node_fetch.default)(supportedNetworks[network].url, {
777
+ method: "POST",
778
+ body: JSON.stringify({
779
+ jsonrpc: "2.0",
780
+ id: 0,
781
+ method: "eth_estimateGasList",
782
+ params: [
783
+ strippedTxs
784
+ ]
785
+ }),
786
+ headers: {
787
+ "Content-Type": "application/json"
788
+ }
789
+ }).then(function(res) {
790
+ if (res.ok) return res.json();
791
+ throw new Error("Something went wrong");
792
+ }).then(function(json) {
793
+ if (json.error) return {
794
+ isError: true,
795
+ errorMessage: json.error.message
796
+ };
797
+ return {
798
+ result: json.result
799
+ };
800
+ }).catch(function() {
801
+ return null;
802
+ });
803
+ };
804
+ var estimateGasList_default = estimateGasList;
805
+ // src/utils/common.ts
806
+ var import_utils = require("@enkryptcom/utils");
807
+ var import_web3_utils4 = require("web3-utils");
808
+ var isPolkadotAddress = function(address, prefix) {
809
+ try {
810
+ return (0, import_utils.polkadotEncodeAddress)(address, prefix) === address;
811
+ } catch (e) {
812
+ return false;
813
+ }
814
+ };
815
+ var isEVMAddress = function(address) {
816
+ try {
817
+ return (0, import_web3_utils4.isAddress)(address);
818
+ } catch (e) {
819
+ return false;
820
+ }
821
+ };
822
+ var sortByRank = function(x, y) {
823
+ if (!x.rank) x.rank = 1e7;
824
+ if (!y.rank) y.rank = 1e7;
825
+ return x.rank - y.rank;
826
+ };
827
+ var sortNativeToFront = function(x, y) {
828
+ return(// eslint-disable-next-line no-nested-ternary
829
+ x.address === NATIVE_TOKEN_ADDRESS ? -1 : y.address === NATIVE_TOKEN_ADDRESS ? 1 : 0);
830
+ };
831
+ // src/providers/oneInch/index.ts
832
+ var ONEINCH_APPROVAL_ADDRESS = "0x1111111254eeb25477b68fb85ed929f73a960582";
833
+ var _obj6;
834
+ var supportedNetworks2 = (_obj6 = {}, _defineProperty(_obj6, SupportedNetworkName.Ethereum, {
835
+ approvalAddress: ONEINCH_APPROVAL_ADDRESS,
836
+ chainId: "1"
837
+ }), _defineProperty(_obj6, SupportedNetworkName.Binance, {
838
+ approvalAddress: ONEINCH_APPROVAL_ADDRESS,
839
+ chainId: "56"
840
+ }), _defineProperty(_obj6, SupportedNetworkName.Matic, {
841
+ approvalAddress: ONEINCH_APPROVAL_ADDRESS,
842
+ chainId: "137"
843
+ }), _defineProperty(_obj6, SupportedNetworkName.Optimism, {
844
+ approvalAddress: ONEINCH_APPROVAL_ADDRESS,
845
+ chainId: "10"
846
+ }), _defineProperty(_obj6, SupportedNetworkName.Avalanche, {
847
+ approvalAddress: ONEINCH_APPROVAL_ADDRESS,
848
+ chainId: "43114"
849
+ }), _defineProperty(_obj6, SupportedNetworkName.Fantom, {
850
+ approvalAddress: ONEINCH_APPROVAL_ADDRESS,
851
+ chainId: "250"
852
+ }), _defineProperty(_obj6, SupportedNetworkName.Klaytn, {
853
+ approvalAddress: ONEINCH_APPROVAL_ADDRESS,
854
+ chainId: "8217"
855
+ }), _defineProperty(_obj6, SupportedNetworkName.Aurora, {
856
+ approvalAddress: ONEINCH_APPROVAL_ADDRESS,
857
+ chainId: "1313161554"
858
+ }), _defineProperty(_obj6, SupportedNetworkName.Gnosis, {
859
+ approvalAddress: ONEINCH_APPROVAL_ADDRESS,
860
+ chainId: "100"
861
+ }), _defineProperty(_obj6, SupportedNetworkName.Arbitrum, {
862
+ approvalAddress: ONEINCH_APPROVAL_ADDRESS,
863
+ chainId: "42161"
864
+ }), _obj6);
865
+ var BASE_URL = "https://api.1inch.io/v5.0/";
866
+ var OneInch = /*#__PURE__*/ function(ProviderClass) {
867
+ "use strict";
868
+ _inherits(OneInch1, ProviderClass);
869
+ var _super = _createSuper(OneInch1);
870
+ function OneInch1(web3eth, network) {
871
+ _classCallCheck(this, OneInch1);
872
+ var _this;
873
+ _this = _super.call(this, web3eth, network);
874
+ _this.network = network;
875
+ _this.tokenList = [];
876
+ _this.web3eth = web3eth;
877
+ _this.name = "oneInch" /* oneInch */ ;
878
+ _this.fromTokens = {};
879
+ _this.toTokens = {};
880
+ return _this;
881
+ }
882
+ _createClass(OneInch1, [
883
+ {
884
+ key: "init",
885
+ value: function init(tokenList) {
886
+ var _this = this;
887
+ if (!OneInch.isSupported(this.network)) return;
888
+ tokenList.forEach(function(t) {
889
+ _this.fromTokens[t.address] = t;
890
+ if (!_this.toTokens[_this.network]) _this.toTokens[_this.network] = {};
891
+ _this.toTokens[_this.network][t.address] = _objectSpreadProps(_objectSpread({}, t), {
892
+ networkInfo: {
893
+ name: _this.network,
894
+ isAddress: function(address) {
895
+ return Promise.resolve(isEVMAddress(address));
896
+ }
897
+ }
898
+ });
899
+ });
900
+ }
901
+ },
902
+ {
903
+ key: "getFromTokens",
904
+ value: function getFromTokens() {
905
+ return this.fromTokens;
906
+ }
907
+ },
908
+ {
909
+ key: "getToTokens",
910
+ value: function getToTokens() {
911
+ return this.toTokens;
912
+ }
913
+ },
914
+ {
915
+ key: "getMinMaxAmount",
916
+ value: function getMinMaxAmount() {
917
+ return Promise.resolve({
918
+ minimumFrom: (0, import_web3_utils5.toBN)("1"),
919
+ maximumFrom: (0, import_web3_utils5.toBN)(TOKEN_AMOUNT_INFINITY_AND_BEYOND),
920
+ minimumTo: (0, import_web3_utils5.toBN)("1"),
921
+ maximumTo: (0, import_web3_utils5.toBN)(TOKEN_AMOUNT_INFINITY_AND_BEYOND)
922
+ });
923
+ }
924
+ },
925
+ {
926
+ key: "getOneInchSwap",
927
+ value: function getOneInchSwap(options, meta, accurateEstimate) {
928
+ if (!OneInch.isSupported(options.toToken.networkInfo.name) || this.network !== options.toToken.networkInfo.name) return Promise.resolve(null);
929
+ var feeConfig = FEE_CONFIGS[this.name][meta.walletIdentifier];
930
+ var params = new URLSearchParams({
931
+ fromTokenAddress: options.fromToken.address,
932
+ toTokenAddress: options.toToken.address,
933
+ amount: options.amount.toString(),
934
+ fromAddress: options.fromAddress,
935
+ destReceiver: options.toAddress,
936
+ slippage: meta.slippage ? meta.slippage : DEFAULT_SLIPPAGE,
937
+ fee: feeConfig ? (feeConfig.fee * 100).toFixed(3) : "0",
938
+ referrerAddress: feeConfig ? feeConfig.referrer : "",
939
+ disableEstimate: "true"
940
+ });
941
+ var _this = this;
942
+ return fetch("".concat(BASE_URL).concat(supportedNetworks2[this.network].chainId, "/swap?").concat(params.toString())).then(function(res) {
943
+ return res.json();
944
+ }).then(function() {
945
+ var _ref = _asyncToGenerator(function(response) {
946
+ var transactions, _transactions, approvalTxs, accurateGasEstimate;
947
+ return __generator(this, function(_state) {
948
+ switch(_state.label){
949
+ case 0:
950
+ if (response.error) {
951
+ console.error(response.error, response.description);
952
+ return [
953
+ 2,
954
+ Promise.resolve(null)
955
+ ];
956
+ }
957
+ transactions = [];
958
+ if (!(options.fromToken.address !== NATIVE_TOKEN_ADDRESS)) return [
959
+ 3,
960
+ 2
961
+ ];
962
+ return [
963
+ 4,
964
+ getAllowanceTransactions({
965
+ infinityApproval: meta.infiniteApproval,
966
+ spender: supportedNetworks2[_this.network].approvalAddress,
967
+ web3eth: _this.web3eth,
968
+ amount: options.amount,
969
+ fromAddress: options.fromAddress,
970
+ fromToken: options.fromToken
971
+ })
972
+ ];
973
+ case 1:
974
+ approvalTxs = _state.sent();
975
+ (_transactions = transactions).push.apply(_transactions, _toConsumableArray(approvalTxs));
976
+ _state.label = 2;
977
+ case 2:
978
+ transactions.push({
979
+ from: options.fromAddress,
980
+ gasLimit: GAS_LIMITS.swap,
981
+ to: response.tx.to,
982
+ value: (0, import_web3_utils5.numberToHex)(response.tx.value),
983
+ data: response.tx.data,
984
+ type: "evm" /* evm */
985
+ });
986
+ if (!accurateEstimate) return [
987
+ 3,
988
+ 4
989
+ ];
990
+ return [
991
+ 4,
992
+ estimateGasList_default(transactions, _this.network)
993
+ ];
994
+ case 3:
995
+ accurateGasEstimate = _state.sent();
996
+ if (accurateGasEstimate) {
997
+ if (accurateGasEstimate.isError) return [
998
+ 2,
999
+ null
1000
+ ];
1001
+ transactions.forEach(function(tx, idx) {
1002
+ tx.gasLimit = accurateGasEstimate.result[idx];
1003
+ });
1004
+ }
1005
+ _state.label = 4;
1006
+ case 4:
1007
+ return [
1008
+ 2,
1009
+ {
1010
+ transactions: transactions,
1011
+ toTokenAmount: (0, import_web3_utils5.toBN)(response.toTokenAmount),
1012
+ fromTokenAmount: (0, import_web3_utils5.toBN)(response.fromTokenAmount)
1013
+ }
1014
+ ];
1015
+ }
1016
+ });
1017
+ });
1018
+ return function(response) {
1019
+ return _ref.apply(this, arguments);
1020
+ };
1021
+ }());
1022
+ }
1023
+ },
1024
+ {
1025
+ key: "getQuote",
1026
+ value: function getQuote(options, meta) {
1027
+ var _this = this;
1028
+ return this.getOneInchSwap(options, meta, false).then(function() {
1029
+ var _ref = _asyncToGenerator(function(res) {
1030
+ var response, _tmp;
1031
+ return __generator(this, function(_state) {
1032
+ switch(_state.label){
1033
+ case 0:
1034
+ if (!res) return [
1035
+ 2,
1036
+ null
1037
+ ];
1038
+ _tmp = {
1039
+ fromTokenAmount: res.fromTokenAmount,
1040
+ toTokenAmount: res.toTokenAmount,
1041
+ provider: _this.name,
1042
+ quote: {
1043
+ meta: meta,
1044
+ options: options,
1045
+ provider: _this.name
1046
+ },
1047
+ totalGaslimit: res.transactions.reduce(function(total, curVal) {
1048
+ return total + (0, import_web3_utils5.toBN)(curVal.gasLimit).toNumber();
1049
+ }, 0)
1050
+ };
1051
+ return [
1052
+ 4,
1053
+ _this.getMinMaxAmount()
1054
+ ];
1055
+ case 1:
1056
+ response = (_tmp.minMax = _state.sent(), _tmp);
1057
+ return [
1058
+ 2,
1059
+ response
1060
+ ];
1061
+ }
1062
+ });
1063
+ });
1064
+ return function(res) {
1065
+ return _ref.apply(this, arguments);
1066
+ };
1067
+ }());
1068
+ }
1069
+ },
1070
+ {
1071
+ key: "getSwap",
1072
+ value: function getSwap(quote) {
1073
+ var _this = this;
1074
+ return this.getOneInchSwap(quote.options, quote.meta, true).then(function(res) {
1075
+ if (!res) return null;
1076
+ var feeConfig = FEE_CONFIGS[_this.name][quote.meta.walletIdentifier].fee || 0;
1077
+ var _this1 = _this;
1078
+ var response = {
1079
+ fromTokenAmount: res.fromTokenAmount,
1080
+ provider: _this.name,
1081
+ toTokenAmount: res.toTokenAmount,
1082
+ transactions: res.transactions,
1083
+ slippage: quote.meta.slippage || DEFAULT_SLIPPAGE,
1084
+ fee: feeConfig * 100,
1085
+ getStatusObject: function() {
1086
+ var _ref = _asyncToGenerator(function(options) {
1087
+ return __generator(this, function(_state) {
1088
+ return [
1089
+ 2,
1090
+ {
1091
+ options: options,
1092
+ provider: _this1.name
1093
+ }
1094
+ ];
1095
+ });
1096
+ });
1097
+ return function(options) {
1098
+ return _ref.apply(this, arguments);
1099
+ };
1100
+ }()
1101
+ };
1102
+ return response;
1103
+ });
1104
+ }
1105
+ },
1106
+ {
1107
+ key: "getStatus",
1108
+ value: function getStatus(options) {
1109
+ var _this = this;
1110
+ var promises = options.transactionHashes.map(function(hash) {
1111
+ return _this.web3eth.getTransactionReceipt(hash);
1112
+ });
1113
+ return Promise.all(promises).then(function(receipts) {
1114
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1115
+ try {
1116
+ for(var _iterator = receipts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1117
+ var receipt = _step.value;
1118
+ if (!receipt || receipt && !receipt.blockNumber) {
1119
+ return "pending" /* pending */ ;
1120
+ }
1121
+ if (receipt && !receipt.status) return "failed" /* failed */ ;
1122
+ }
1123
+ } catch (err) {
1124
+ _didIteratorError = true;
1125
+ _iteratorError = err;
1126
+ } finally{
1127
+ try {
1128
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1129
+ _iterator.return();
1130
+ }
1131
+ } finally{
1132
+ if (_didIteratorError) {
1133
+ throw _iteratorError;
1134
+ }
1135
+ }
1136
+ }
1137
+ return "success" /* success */ ;
1138
+ });
1139
+ }
1140
+ }
1141
+ ], [
1142
+ {
1143
+ key: "isSupported",
1144
+ value: function isSupported(network) {
1145
+ return Object.keys(supportedNetworks2).includes(network);
1146
+ }
1147
+ }
1148
+ ]);
1149
+ return OneInch1;
1150
+ }(ProviderClass);
1151
+ var oneInch_default = OneInch;
1152
+ // src/providers/changelly/index.ts
1153
+ var import_uuid = require("uuid");
1154
+ var import_node_fetch2 = __toESM(require("node-fetch"));
1155
+ var import_utils2 = require("@enkryptcom/utils");
1156
+ var import_web3_utils6 = require("web3-utils");
1157
+ var _obj7;
1158
+ // src/providers/changelly/supported.ts
1159
+ var supportedNetworks3 = (_obj7 = {}, _defineProperty(_obj7, SupportedNetworkName.Ethereum, {
1160
+ changellyName: "ethereum",
1161
+ isAddress: function(address) {
1162
+ return Promise.resolve(isEVMAddress(address));
1163
+ }
1164
+ }), _defineProperty(_obj7, SupportedNetworkName.Binance, {
1165
+ changellyName: "binance_smart_chain",
1166
+ isAddress: function(address) {
1167
+ return Promise.resolve(isEVMAddress(address));
1168
+ }
1169
+ }), _defineProperty(_obj7, SupportedNetworkName.Matic, {
1170
+ changellyName: "polygon",
1171
+ isAddress: function(address) {
1172
+ return Promise.resolve(isEVMAddress(address));
1173
+ }
1174
+ }), _defineProperty(_obj7, SupportedNetworkName.EthereumClassic, {
1175
+ changellyName: "ethereum_classic",
1176
+ isAddress: function(address) {
1177
+ return Promise.resolve(isEVMAddress(address));
1178
+ }
1179
+ }), _defineProperty(_obj7, SupportedNetworkName.Optimism, {
1180
+ changellyName: "optimism",
1181
+ isAddress: function(address) {
1182
+ return Promise.resolve(isEVMAddress(address));
1183
+ }
1184
+ }), _defineProperty(_obj7, SupportedNetworkName.Moonbeam, {
1185
+ changellyName: "glmr",
1186
+ isAddress: function(address) {
1187
+ return Promise.resolve(isEVMAddress(address));
1188
+ }
1189
+ }), _defineProperty(_obj7, SupportedNetworkName.Polkadot, {
1190
+ changellyName: "polkadot",
1191
+ isAddress: function(address) {
1192
+ return Promise.resolve(isPolkadotAddress(address, 0));
1193
+ }
1194
+ }), _defineProperty(_obj7, SupportedNetworkName.Kusama, {
1195
+ changellyName: "kusama",
1196
+ isAddress: function(address) {
1197
+ return Promise.resolve(isPolkadotAddress(address, 2));
1198
+ }
1199
+ }), _defineProperty(_obj7, SupportedNetworkName.Bitcoin, {
1200
+ changellyName: "bitcoin"
1201
+ }), _obj7);
1202
+ var supported_default = supportedNetworks3;
1203
+ // src/providers/changelly/index.ts
1204
+ var BASE_URL2 = "https://swap.mewapi.io/changelly";
1205
+ var Changelly = /*#__PURE__*/ function(ProviderClass) {
1206
+ "use strict";
1207
+ _inherits(Changelly1, ProviderClass);
1208
+ var _super = _createSuper(Changelly1);
1209
+ function Changelly1(_web3eth, network) {
1210
+ _classCallCheck(this, Changelly1);
1211
+ var _this;
1212
+ _this = _super.call(this, _web3eth, network);
1213
+ _this.network = network;
1214
+ _this.tokenList = [];
1215
+ _this.name = "changelly" /* changelly */ ;
1216
+ _this.fromTokens = {};
1217
+ _this.toTokens = {};
1218
+ _this.contractToTicker = {};
1219
+ return _this;
1220
+ }
1221
+ _createClass(Changelly1, [
1222
+ {
1223
+ key: "init",
1224
+ value: function init() {
1225
+ var _this = this;
1226
+ return _asyncToGenerator(function() {
1227
+ var changellyToNetwork, supportedChangellyNames;
1228
+ return __generator(this, function(_state) {
1229
+ switch(_state.label){
1230
+ case 0:
1231
+ if (!Changelly.isSupported(_this.network)) return [
1232
+ 2
1233
+ ];
1234
+ return [
1235
+ 4,
1236
+ (0, import_node_fetch2.default)(CHANGELLY_LIST).then(function(res) {
1237
+ return res.json();
1238
+ })
1239
+ ];
1240
+ case 1:
1241
+ _this.changellyList = _state.sent();
1242
+ changellyToNetwork = {};
1243
+ Object.keys(supported_default).forEach(function(net) {
1244
+ changellyToNetwork[supported_default[net].changellyName] = net;
1245
+ });
1246
+ supportedChangellyNames = Object.values(supported_default).map(function(s) {
1247
+ return s.changellyName;
1248
+ });
1249
+ _this.changellyList.forEach(function(cur) {
1250
+ if (!supportedChangellyNames.includes(cur.blockchain)) return;
1251
+ if (cur.enabledFrom && cur.fixRateEnabled && cur.token && changellyToNetwork[cur.blockchain] === _this.network) {
1252
+ _this.fromTokens[cur.token.address] = cur.token;
1253
+ }
1254
+ if (cur.enabledTo && cur.fixRateEnabled && cur.token) {
1255
+ if (!_this.toTokens[changellyToNetwork[cur.blockchain]]) _this.toTokens[changellyToNetwork[cur.blockchain]] = {};
1256
+ _this.toTokens[changellyToNetwork[cur.blockchain]][cur.token.address] = _objectSpreadProps(_objectSpread({}, cur.token), {
1257
+ networkInfo: {
1258
+ name: changellyToNetwork[cur.blockchain],
1259
+ isAddress: supported_default[changellyToNetwork[cur.blockchain]].isAddress ? supported_default[changellyToNetwork[cur.blockchain]].isAddress : function(address) {
1260
+ return _this.isValidAddress(address, cur.ticker);
1261
+ }
1262
+ }
1263
+ });
1264
+ }
1265
+ if (cur.token) _this.setTicker(cur.token, changellyToNetwork[cur.blockchain], cur.ticker);
1266
+ });
1267
+ return [
1268
+ 2
1269
+ ];
1270
+ }
1271
+ });
1272
+ })();
1273
+ }
1274
+ },
1275
+ {
1276
+ key: "setTicker",
1277
+ value: function setTicker(token, network, ticker) {
1278
+ this.contractToTicker["".concat(network, "-").concat(token.address)] = ticker;
1279
+ }
1280
+ },
1281
+ {
1282
+ key: "getTicker",
1283
+ value: function getTicker(token, network) {
1284
+ return this.contractToTicker["".concat(network, "-").concat(token.address)];
1285
+ }
1286
+ },
1287
+ {
1288
+ key: "changellyRequest",
1289
+ value: function changellyRequest(method, params) {
1290
+ return (0, import_node_fetch2.default)("".concat(BASE_URL2), {
1291
+ method: "POST",
1292
+ body: JSON.stringify({
1293
+ id: (0, import_uuid.v4)(),
1294
+ jsonrpc: "2.0",
1295
+ method: method,
1296
+ params: params
1297
+ }),
1298
+ headers: {
1299
+ "Content-Type": "application/json"
1300
+ }
1301
+ }).then(function(res) {
1302
+ return res.json();
1303
+ });
1304
+ }
1305
+ },
1306
+ {
1307
+ key: "isValidAddress",
1308
+ value: function isValidAddress(address, ticker) {
1309
+ return this.changellyRequest("validateAddress", {
1310
+ currency: ticker,
1311
+ address: address
1312
+ }).then(function(response) {
1313
+ if (response.error) return false;
1314
+ return response.result.result;
1315
+ });
1316
+ }
1317
+ },
1318
+ {
1319
+ key: "getFromTokens",
1320
+ value: function getFromTokens() {
1321
+ return this.fromTokens;
1322
+ }
1323
+ },
1324
+ {
1325
+ key: "getToTokens",
1326
+ value: function getToTokens() {
1327
+ if (Object.keys(this.fromTokens).length) return this.toTokens;
1328
+ return {};
1329
+ }
1330
+ },
1331
+ {
1332
+ key: "getMinMaxAmount",
1333
+ value: function getMinMaxAmount(param) {
1334
+ var fromToken = param.fromToken, toToken = param.toToken;
1335
+ var emptyResponse = {
1336
+ minimumFrom: (0, import_web3_utils6.toBN)("0"),
1337
+ maximumFrom: (0, import_web3_utils6.toBN)("0"),
1338
+ minimumTo: (0, import_web3_utils6.toBN)("0"),
1339
+ maximumTo: (0, import_web3_utils6.toBN)("0")
1340
+ };
1341
+ return this.changellyRequest("getFixRate", {
1342
+ from: this.getTicker(fromToken, this.network),
1343
+ to: this.getTicker(toToken, toToken.networkInfo.name)
1344
+ }).then(function(response) {
1345
+ if (response.error) return emptyResponse;
1346
+ var result = response.result;
1347
+ return {
1348
+ minimumFrom: (0, import_web3_utils6.toBN)((0, import_utils2.toBase)(result.minFrom, fromToken.decimals)),
1349
+ maximumFrom: (0, import_web3_utils6.toBN)((0, import_utils2.toBase)(result.maxFrom, fromToken.decimals)),
1350
+ minimumTo: (0, import_web3_utils6.toBN)((0, import_utils2.toBase)(result.minTo, toToken.decimals)),
1351
+ maximumTo: (0, import_web3_utils6.toBN)((0, import_utils2.toBase)(result.maxTo, toToken.decimals))
1352
+ };
1353
+ }).catch(function() {
1354
+ return emptyResponse;
1355
+ });
1356
+ }
1357
+ },
1358
+ {
1359
+ key: "getQuote",
1360
+ value: function getQuote(options, meta) {
1361
+ var _this = this;
1362
+ return _asyncToGenerator(function() {
1363
+ var minMax, quoteRequestAmount;
1364
+ return __generator(this, function(_state) {
1365
+ switch(_state.label){
1366
+ case 0:
1367
+ if (!Changelly.isSupported(options.toToken.networkInfo.name) || !Changelly.isSupported(_this.network) || !_this.getTicker(options.fromToken, _this.network) || !_this.getTicker(options.toToken, options.toToken.networkInfo.name)) return [
1368
+ 2,
1369
+ Promise.resolve(null)
1370
+ ];
1371
+ return [
1372
+ 4,
1373
+ _this.getMinMaxAmount({
1374
+ fromToken: options.fromToken,
1375
+ toToken: options.toToken
1376
+ })
1377
+ ];
1378
+ case 1:
1379
+ minMax = _state.sent();
1380
+ quoteRequestAmount = options.amount;
1381
+ if (quoteRequestAmount.lt(minMax.minimumFrom)) quoteRequestAmount = minMax.minimumFrom;
1382
+ else if (quoteRequestAmount.gt(minMax.maximumFrom)) quoteRequestAmount = minMax.maximumFrom;
1383
+ if (quoteRequestAmount.toString() === "0") return [
1384
+ 2,
1385
+ null
1386
+ ];
1387
+ return [
1388
+ 2,
1389
+ _this.changellyRequest("getFixRateForAmount", {
1390
+ from: _this.getTicker(options.fromToken, _this.network),
1391
+ to: _this.getTicker(options.toToken, options.toToken.networkInfo.name),
1392
+ amountFrom: (0, import_utils2.fromBase)(quoteRequestAmount.toString(), options.fromToken.decimals)
1393
+ }).then(function() {
1394
+ var _ref = _asyncToGenerator(function(response) {
1395
+ var result, evmGasLimit, retResponse;
1396
+ return __generator(this, function(_state) {
1397
+ if (response.error || !response.result.id) return [
1398
+ 2,
1399
+ null
1400
+ ];
1401
+ result = response.result;
1402
+ evmGasLimit = options.fromToken.address === NATIVE_TOKEN_ADDRESS && options.fromToken.type === "evm" /* EVM */ ? 21e3 : (0, import_web3_utils6.toBN)(GAS_LIMITS.transferToken).toNumber();
1403
+ retResponse = {
1404
+ fromTokenAmount: quoteRequestAmount,
1405
+ toTokenAmount: (0, import_web3_utils6.toBN)((0, import_utils2.toBase)(result.amountTo, options.toToken.decimals)),
1406
+ provider: _this.name,
1407
+ quote: {
1408
+ meta: _objectSpreadProps(_objectSpread({}, meta), {
1409
+ changellyQuoteId: result.id
1410
+ }),
1411
+ options: _objectSpreadProps(_objectSpread({}, options), {
1412
+ amount: quoteRequestAmount
1413
+ }),
1414
+ provider: _this.name
1415
+ },
1416
+ totalGaslimit: options.fromToken.type === "evm" /* EVM */ ? evmGasLimit : 0,
1417
+ minMax: minMax
1418
+ };
1419
+ return [
1420
+ 2,
1421
+ retResponse
1422
+ ];
1423
+ });
1424
+ });
1425
+ return function(response) {
1426
+ return _ref.apply(this, arguments);
1427
+ };
1428
+ }()).catch(function() {
1429
+ return null;
1430
+ })
1431
+ ];
1432
+ }
1433
+ });
1434
+ })();
1435
+ }
1436
+ },
1437
+ {
1438
+ key: "getSwap",
1439
+ value: function getSwap(quote) {
1440
+ if (!Changelly.isSupported(quote.options.toToken.networkInfo.name) || !Changelly.isSupported(this.network)) return Promise.resolve(null);
1441
+ var _this = this;
1442
+ return this.changellyRequest("createFixTransaction", {
1443
+ from: this.getTicker(quote.options.fromToken, this.network),
1444
+ to: this.getTicker(quote.options.toToken, quote.options.toToken.networkInfo.name),
1445
+ refundAddress: quote.options.fromAddress,
1446
+ address: quote.options.toAddress,
1447
+ amountFrom: (0, import_utils2.fromBase)(quote.options.amount.toString(), quote.options.fromToken.decimals),
1448
+ rateId: quote.meta.changellyQuoteId
1449
+ }).then(function() {
1450
+ var _ref = _asyncToGenerator(function(response) {
1451
+ var result, transaction, accurateGasEstimate, _accurateGasEstimate_result, txGaslimit, fee, retResponse;
1452
+ return __generator(this, function(_state) {
1453
+ switch(_state.label){
1454
+ case 0:
1455
+ if (response.error || !response.result.id) return [
1456
+ 2,
1457
+ null
1458
+ ];
1459
+ result = response.result;
1460
+ if (!(quote.options.fromToken.type === "evm" /* EVM */ )) return [
1461
+ 3,
1462
+ 2
1463
+ ];
1464
+ if (quote.options.fromToken.address === NATIVE_TOKEN_ADDRESS) transaction = {
1465
+ from: quote.options.fromAddress,
1466
+ data: "0x",
1467
+ gasLimit: (0, import_web3_utils6.numberToHex)(21e3),
1468
+ to: result.payinAddress,
1469
+ value: (0, import_web3_utils6.numberToHex)(quote.options.amount),
1470
+ type: "evm" /* evm */
1471
+ };
1472
+ else transaction = getTransfer({
1473
+ from: quote.options.fromAddress,
1474
+ contract: quote.options.fromToken.address,
1475
+ to: result.payinAddress,
1476
+ value: quote.options.amount.toString()
1477
+ });
1478
+ return [
1479
+ 4,
1480
+ estimateGasList_default([
1481
+ transaction
1482
+ ], _this.network)
1483
+ ];
1484
+ case 1:
1485
+ accurateGasEstimate = _state.sent();
1486
+ if (accurateGasEstimate) {
1487
+ if (accurateGasEstimate.isError) return [
1488
+ 2,
1489
+ null
1490
+ ];
1491
+ _accurateGasEstimate_result = _slicedToArray(accurateGasEstimate.result, 1), txGaslimit = _accurateGasEstimate_result[0];
1492
+ transaction.gasLimit = txGaslimit;
1493
+ }
1494
+ return [
1495
+ 3,
1496
+ 3
1497
+ ];
1498
+ case 2:
1499
+ transaction = {
1500
+ from: quote.options.fromAddress,
1501
+ to: result.payinAddress,
1502
+ value: (0, import_web3_utils6.numberToHex)(quote.options.amount),
1503
+ type: "generic" /* generic */
1504
+ };
1505
+ _state.label = 3;
1506
+ case 3:
1507
+ fee = 1;
1508
+ retResponse = {
1509
+ fromTokenAmount: quote.options.amount,
1510
+ provider: _this.name,
1511
+ toTokenAmount: (0, import_web3_utils6.toBN)((0, import_utils2.toBase)(result.amountTo, quote.options.toToken.decimals)),
1512
+ transactions: [
1513
+ transaction
1514
+ ],
1515
+ slippage: quote.meta.slippage || DEFAULT_SLIPPAGE,
1516
+ fee: fee,
1517
+ getStatusObject: function() {
1518
+ var _ref = _asyncToGenerator(function(options) {
1519
+ return __generator(this, function(_state) {
1520
+ return [
1521
+ 2,
1522
+ {
1523
+ options: _objectSpreadProps(_objectSpread({}, options), {
1524
+ swapId: result.id
1525
+ }),
1526
+ provider: _this.name
1527
+ }
1528
+ ];
1529
+ });
1530
+ });
1531
+ return function(options) {
1532
+ return _ref.apply(this, arguments);
1533
+ };
1534
+ }()
1535
+ };
1536
+ return [
1537
+ 2,
1538
+ retResponse
1539
+ ];
1540
+ }
1541
+ });
1542
+ });
1543
+ return function(response) {
1544
+ return _ref.apply(this, arguments);
1545
+ };
1546
+ }()).catch(function() {
1547
+ return null;
1548
+ });
1549
+ }
1550
+ },
1551
+ {
1552
+ key: "getStatus",
1553
+ value: function getStatus(options) {
1554
+ return this.changellyRequest("getStatus", {
1555
+ id: options.swapId
1556
+ }).then(function() {
1557
+ var _ref = _asyncToGenerator(function(response) {
1558
+ var completedStatuses, pendingStatuses, failedStatuses, status;
1559
+ return __generator(this, function(_state) {
1560
+ if (response.error) return [
1561
+ 2,
1562
+ "pending" /* pending */
1563
+ ];
1564
+ completedStatuses = [
1565
+ "finished"
1566
+ ];
1567
+ pendingStatuses = [
1568
+ "confirming",
1569
+ "exchanging",
1570
+ "sending",
1571
+ "waiting",
1572
+ "new"
1573
+ ];
1574
+ failedStatuses = [
1575
+ "failed",
1576
+ "refunded",
1577
+ "hold",
1578
+ "expired"
1579
+ ];
1580
+ status = response.result;
1581
+ if (pendingStatuses.includes(status)) return [
1582
+ 2,
1583
+ "pending" /* pending */
1584
+ ];
1585
+ if (completedStatuses.includes(status)) return [
1586
+ 2,
1587
+ "success" /* success */
1588
+ ];
1589
+ if (failedStatuses.includes(status)) return [
1590
+ 2,
1591
+ "failed" /* failed */
1592
+ ];
1593
+ return [
1594
+ 2,
1595
+ "pending" /* pending */
1596
+ ];
1597
+ });
1598
+ });
1599
+ return function(response) {
1600
+ return _ref.apply(this, arguments);
1601
+ };
1602
+ }());
1603
+ }
1604
+ }
1605
+ ], [
1606
+ {
1607
+ key: "isSupported",
1608
+ value: function isSupported(network) {
1609
+ return Object.keys(supported_default).includes(network);
1610
+ }
1611
+ }
1612
+ ]);
1613
+ return Changelly1;
1614
+ }(ProviderClass);
1615
+ var changelly_default = Changelly;
1616
+ // src/common/supportedNetworks.ts
1617
+ var import_types9 = require("@enkryptcom/types");
1618
+ var _obj8;
1619
+ var NetworkDetails = (_obj8 = {}, _defineProperty(_obj8, SupportedNetworkName.Bitcoin, {
1620
+ id: SupportedNetworkName.Bitcoin,
1621
+ decimals: 8,
1622
+ logoURI: "https://assets.coingecko.com/coins/images/1/thumb/bitcoin.png",
1623
+ name: "Bitcoin",
1624
+ symbol: "BTC",
1625
+ cgId: "bitcoin",
1626
+ rank: 1,
1627
+ signerType: [
1628
+ import_types9.SignerType.secp256k1btc
1629
+ ],
1630
+ type: "bitcoin" /* Bitcoin */
1631
+ }), _defineProperty(_obj8, SupportedNetworkName.Ethereum, {
1632
+ id: SupportedNetworkName.Ethereum,
1633
+ cgId: "ethereum",
1634
+ decimals: 18,
1635
+ logoURI: "https://tokens.1inch.io/0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.png",
1636
+ name: "Ethereum",
1637
+ symbol: "ETH",
1638
+ rank: 2,
1639
+ signerType: [
1640
+ import_types9.SignerType.secp256k1
1641
+ ],
1642
+ type: "evm" /* EVM */
1643
+ }), _defineProperty(_obj8, SupportedNetworkName.Binance, {
1644
+ id: SupportedNetworkName.Binance,
1645
+ cgId: "binancecoin",
1646
+ decimals: 18,
1647
+ logoURI: "https://tokens.1inch.io/0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c_1.png",
1648
+ name: "BNB",
1649
+ symbol: "BNB",
1650
+ rank: 3,
1651
+ signerType: [
1652
+ import_types9.SignerType.secp256k1
1653
+ ],
1654
+ type: "evm" /* EVM */
1655
+ }), _defineProperty(_obj8, SupportedNetworkName.Matic, {
1656
+ id: SupportedNetworkName.Matic,
1657
+ cgId: "matic-network",
1658
+ decimals: 18,
1659
+ logoURI: "https://tokens.1inch.io/0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0.png",
1660
+ name: "Polygon",
1661
+ symbol: "MATIC",
1662
+ rank: 4,
1663
+ signerType: [
1664
+ import_types9.SignerType.secp256k1
1665
+ ],
1666
+ type: "evm" /* EVM */
1667
+ }), _defineProperty(_obj8, SupportedNetworkName.Optimism, {
1668
+ id: SupportedNetworkName.Optimism,
1669
+ cgId: "optimism",
1670
+ decimals: 18,
1671
+ logoURI: "https://tokens.1inch.io/0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.png",
1672
+ name: "Optimism",
1673
+ symbol: "ETH",
1674
+ rank: 5,
1675
+ signerType: [
1676
+ import_types9.SignerType.secp256k1
1677
+ ],
1678
+ type: "evm" /* EVM */
1679
+ }), _defineProperty(_obj8, SupportedNetworkName.Arbitrum, {
1680
+ id: SupportedNetworkName.Arbitrum,
1681
+ cgId: "ethereum",
1682
+ decimals: 18,
1683
+ logoURI: "https://tokens.1inch.io/0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.png",
1684
+ name: "Arbitrum",
1685
+ symbol: "ETH",
1686
+ rank: 6,
1687
+ signerType: [
1688
+ import_types9.SignerType.secp256k1
1689
+ ],
1690
+ type: "evm" /* EVM */
1691
+ }), _defineProperty(_obj8, SupportedNetworkName.Gnosis, {
1692
+ id: SupportedNetworkName.Gnosis,
1693
+ cgId: "dai",
1694
+ decimals: 18,
1695
+ logoURI: "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x6B175474E89094C44Da98b954EedeAC495271d0F/logo.png",
1696
+ name: "Gnosis",
1697
+ symbol: "xDAI",
1698
+ rank: 7,
1699
+ signerType: [
1700
+ import_types9.SignerType.secp256k1
1701
+ ],
1702
+ type: "evm" /* EVM */
1703
+ }), _defineProperty(_obj8, SupportedNetworkName.Avalanche, {
1704
+ id: SupportedNetworkName.Avalanche,
1705
+ cgId: "avalanche-2",
1706
+ decimals: 18,
1707
+ logoURI: "https://tokens.1inch.io/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7.png",
1708
+ name: "Avalanche",
1709
+ symbol: "AVAX",
1710
+ rank: 8,
1711
+ signerType: [
1712
+ import_types9.SignerType.secp256k1
1713
+ ],
1714
+ type: "evm" /* EVM */
1715
+ }), _defineProperty(_obj8, SupportedNetworkName.Fantom, {
1716
+ id: SupportedNetworkName.Fantom,
1717
+ cgId: "fantom",
1718
+ decimals: 18,
1719
+ logoURI: "https://tokens.1inch.io/0x4e15361fd6b4bb609fa63c81a2be19d873717870.png",
1720
+ name: "Fantom",
1721
+ symbol: "FTM",
1722
+ rank: 9,
1723
+ signerType: [
1724
+ import_types9.SignerType.secp256k1
1725
+ ],
1726
+ type: "evm" /* EVM */
1727
+ }), _defineProperty(_obj8, SupportedNetworkName.Klaytn, {
1728
+ id: SupportedNetworkName.Klaytn,
1729
+ cgId: "klay-token",
1730
+ decimals: 18,
1731
+ logoURI: "https://tokens.1inch.io/0xe4f05a66ec68b54a58b17c22107b02e0232cc817.png",
1732
+ name: "Klaytn",
1733
+ symbol: "KLAY",
1734
+ rank: 10,
1735
+ signerType: [
1736
+ import_types9.SignerType.secp256k1
1737
+ ],
1738
+ type: "evm" /* EVM */
1739
+ }), _defineProperty(_obj8, SupportedNetworkName.Moonbeam, {
1740
+ id: SupportedNetworkName.Moonbeam,
1741
+ cgId: "moonbeam",
1742
+ decimals: 18,
1743
+ logoURI: "https://assets.coingecko.com/coins/images/22459/thumb/glmr.png",
1744
+ name: "Moonbeam",
1745
+ symbol: "GLMR",
1746
+ rank: 11,
1747
+ signerType: [
1748
+ import_types9.SignerType.secp256k1
1749
+ ],
1750
+ type: "evm" /* EVM */
1751
+ }), _defineProperty(_obj8, SupportedNetworkName.Kusama, {
1752
+ id: SupportedNetworkName.Kusama,
1753
+ decimals: 12,
1754
+ logoURI: "https://assets.coingecko.com/coins/images/9568/thumb/m4zRhP5e_400x400.jpg",
1755
+ name: "Kusama",
1756
+ symbol: "ksm",
1757
+ cgId: "kusama",
1758
+ rank: 12,
1759
+ signerType: [
1760
+ import_types9.SignerType.sr25519,
1761
+ import_types9.SignerType.ed25519
1762
+ ],
1763
+ type: "substrate" /* Substrate */
1764
+ }), _defineProperty(_obj8, SupportedNetworkName.Polkadot, {
1765
+ id: SupportedNetworkName.Polkadot,
1766
+ decimals: 10,
1767
+ logoURI: "https://assets.coingecko.com/coins/images/12171/thumb/polkadot.png",
1768
+ name: "Polkadot",
1769
+ symbol: "DOT",
1770
+ cgId: "polkadot",
1771
+ rank: 13,
1772
+ signerType: [
1773
+ import_types9.SignerType.sr25519,
1774
+ import_types9.SignerType.ed25519
1775
+ ],
1776
+ type: "substrate" /* Substrate */
1777
+ }), _defineProperty(_obj8, SupportedNetworkName.EthereumClassic, {
1778
+ id: SupportedNetworkName.EthereumClassic,
1779
+ cgId: "ethereum-classic",
1780
+ decimals: 18,
1781
+ logoURI: "https://assets.coingecko.com/coins/images/453/thumb/ethereum-classic-logo.png",
1782
+ name: "Ethereum Classic",
1783
+ signerType: [
1784
+ import_types9.SignerType.secp256k1
1785
+ ],
1786
+ type: "evm" /* EVM */ ,
1787
+ rank: 14,
1788
+ symbol: "ETC"
1789
+ }), _defineProperty(_obj8, SupportedNetworkName.Aurora, {
1790
+ id: SupportedNetworkName.Aurora,
1791
+ cgId: "ethereum",
1792
+ decimals: 18,
1793
+ logoURI: "https://tokens.1inch.io/0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee.png",
1794
+ name: "Ethereum",
1795
+ signerType: [
1796
+ import_types9.SignerType.secp256k1
1797
+ ],
1798
+ type: "evm" /* EVM */ ,
1799
+ rank: 15,
1800
+ symbol: "ETH"
1801
+ }), _obj8);
1802
+ var isSupportedNetwork = function(networkName) {
1803
+ return !!NetworkDetails[networkName];
1804
+ };
1805
+ var getSupportedNetworks = function() {
1806
+ return Object.values(NetworkDetails);
1807
+ };
1808
+ var getNetworkInfoByName = function(networkName) {
1809
+ return NetworkDetails[networkName];
1810
+ };
1811
+ var supportedNetworks_default = NetworkDetails;
1812
+ // src/swapToken.ts
1813
+ var import_utils3 = require("@enkryptcom/utils");
1814
+ var import_bignumber = __toESM(require("bignumber.js"));
1815
+ var import_web3_utils7 = require("web3-utils");
1816
+ var SwapToken = /*#__PURE__*/ function() {
1817
+ "use strict";
1818
+ function SwapToken(token) {
1819
+ _classCallCheck(this, SwapToken);
1820
+ this.token = token;
1821
+ }
1822
+ _createClass(SwapToken, [
1823
+ {
1824
+ key: "setBalance",
1825
+ value: function setBalance(balance) {
1826
+ this.token.balance = balance;
1827
+ }
1828
+ },
1829
+ {
1830
+ key: "getBalanceReadable",
1831
+ value: function getBalanceReadable() {
1832
+ if (!this.token.balance) return "0";
1833
+ return this.toReadable(this.token.balance);
1834
+ }
1835
+ },
1836
+ {
1837
+ key: "getBalanceRaw",
1838
+ value: function getBalanceRaw() {
1839
+ if (!this.token.balance) return (0, import_web3_utils7.toBN)("0");
1840
+ return this.token.balance;
1841
+ }
1842
+ },
1843
+ {
1844
+ key: "toReadable",
1845
+ value: function toReadable(amount) {
1846
+ return (0, import_utils3.fromBase)(amount.toString(), this.token.decimals);
1847
+ }
1848
+ },
1849
+ {
1850
+ key: "toRaw",
1851
+ value: function toRaw(amount) {
1852
+ return (0, import_web3_utils7.toBN)((0, import_utils3.toBase)(amount, this.token.decimals));
1853
+ }
1854
+ },
1855
+ {
1856
+ key: "getFiatTotal",
1857
+ value: function getFiatTotal() {
1858
+ if (!this.token.balance || !this.token.price) return 0;
1859
+ return (0, import_bignumber.default)(this.getBalanceReadable()).times(this.token.price).toNumber();
1860
+ }
1861
+ },
1862
+ {
1863
+ key: "getFiatValue",
1864
+ value: function getFiatValue() {
1865
+ if (!this.token.price) return 0;
1866
+ return this.token.price;
1867
+ }
1868
+ },
1869
+ {
1870
+ key: "getReadableToFiat",
1871
+ value: function getReadableToFiat(value) {
1872
+ if (!this.token.price) return 0;
1873
+ return (0, import_bignumber.default)(value).times(this.token.price).toNumber();
1874
+ }
1875
+ },
1876
+ {
1877
+ key: "getRawToFiat",
1878
+ value: function getRawToFiat(value) {
1879
+ if (!this.token.price) return 0;
1880
+ return (0, import_bignumber.default)(this.toReadable(value)).times(this.token.price).toNumber();
1881
+ }
1882
+ }
1883
+ ]);
1884
+ return SwapToken;
1885
+ }();
1886
+ var swapToken_default = SwapToken;
1887
+ // src/index.ts
1888
+ var Swap = /*#__PURE__*/ function(_import_eventemitter3_default) {
1889
+ "use strict";
1890
+ _inherits(Swap, _import_eventemitter3_default);
1891
+ var _super = _createSuper(Swap);
1892
+ function Swap(options) {
1893
+ _classCallCheck(this, Swap);
1894
+ var _this;
1895
+ _this = _super.call(this);
1896
+ _this.network = options.network;
1897
+ _this.evmOptions = options.evmOptions ? options.evmOptions : {
1898
+ infiniteApproval: true
1899
+ };
1900
+ _this.api = options.api;
1901
+ _this.walletId = options.walletIdentifier;
1902
+ _this.providerClasses = [
1903
+ oneInch_default,
1904
+ changelly_default
1905
+ ];
1906
+ _this.topTokenInfo = {
1907
+ contractsToId: {},
1908
+ topTokens: {},
1909
+ trendingTokens: {}
1910
+ };
1911
+ _this.tokenList = {
1912
+ all: [],
1913
+ top: [],
1914
+ trending: []
1915
+ };
1916
+ _this.toTokens = {
1917
+ all: {},
1918
+ top: {},
1919
+ trending: {}
1920
+ };
1921
+ _this.fromTokens = {
1922
+ all: [],
1923
+ top: [],
1924
+ trending: []
1925
+ };
1926
+ _this.initPromise = _this.init();
1927
+ return _this;
1928
+ }
1929
+ _createClass(Swap, [
1930
+ {
1931
+ key: "init",
1932
+ value: function init() {
1933
+ var _this = this;
1934
+ return _asyncToGenerator(function() {
1935
+ var allFromTokens, native, allToTokens;
1936
+ return __generator(this, function(_state) {
1937
+ switch(_state.label){
1938
+ case 0:
1939
+ if (!TOKEN_LISTS[_this.network]) return [
1940
+ 3,
1941
+ 2
1942
+ ];
1943
+ return [
1944
+ 4,
1945
+ (0, import_node_fetch3.default)(TOKEN_LISTS[_this.network]).then(function(res) {
1946
+ return res.json();
1947
+ })
1948
+ ];
1949
+ case 1:
1950
+ _this.tokenList = _state.sent();
1951
+ _state.label = 2;
1952
+ case 2:
1953
+ return [
1954
+ 4,
1955
+ (0, import_node_fetch3.default)(TOP_TOKEN_INFO_LIST).then(function(res) {
1956
+ return res.json();
1957
+ })
1958
+ ];
1959
+ case 3:
1960
+ _this.topTokenInfo = _state.sent();
1961
+ _this.providers = _this.providerClasses.map(function(Provider) {
1962
+ return new Provider(_this.api, _this.network);
1963
+ });
1964
+ return [
1965
+ 4,
1966
+ Promise.all(_this.providers.map(function(Provider) {
1967
+ return Provider.init(_this.tokenList.all);
1968
+ }))
1969
+ ];
1970
+ case 4:
1971
+ _state.sent();
1972
+ allFromTokens = {};
1973
+ _toConsumableArray(_this.providers).reverse().forEach(function(p) {
1974
+ Object.assign(allFromTokens, p.getFromTokens());
1975
+ });
1976
+ _this.fromTokens = {
1977
+ all: Object.values(allFromTokens).sort(sortNativeToFront),
1978
+ top: _this.tokenList.top.filter(function(topt) {
1979
+ return !!allFromTokens[topt.address];
1980
+ }),
1981
+ trending: _this.tokenList.trending.filter(function(trendt) {
1982
+ return !!allFromTokens[trendt.address];
1983
+ })
1984
+ };
1985
+ native = _this.fromTokens.all.shift();
1986
+ _this.fromTokens.all.sort(sortByRank);
1987
+ _this.fromTokens.all.unshift(native);
1988
+ allToTokens = {};
1989
+ _toConsumableArray(_this.providers).reverse().forEach(function(p) {
1990
+ (0, import_lodash.merge)(allToTokens, p.getToTokens());
1991
+ });
1992
+ Object.keys(allToTokens).forEach(function(nName) {
1993
+ var values = Object.values(allToTokens[nName]);
1994
+ values.sort(sortNativeToFront);
1995
+ var nativeTo = values.shift();
1996
+ values.sort(sortByRank);
1997
+ values.unshift(nativeTo);
1998
+ values.forEach(function(val) {
1999
+ if (val.cgId && _this.topTokenInfo.topTokens[val.cgId]) {
2000
+ if (!_this.toTokens.top[nName]) _this.toTokens.top[nName] = [];
2001
+ _this.toTokens.top[nName].push(_objectSpreadProps(_objectSpread({}, val), {
2002
+ rank: _this.topTokenInfo.topTokens[val.cgId].rank
2003
+ }));
2004
+ }
2005
+ if (val.cgId && _this.topTokenInfo.trendingTokens[val.cgId]) {
2006
+ if (!_this.toTokens.trending[nName]) _this.toTokens.trending[nName] = [];
2007
+ _this.toTokens.trending[nName].push(_objectSpreadProps(_objectSpread({}, val), {
2008
+ rank: _this.topTokenInfo.trendingTokens[val.cgId]
2009
+ }));
2010
+ }
2011
+ });
2012
+ if (_this.toTokens.top[nName]) _this.toTokens.top[nName].sort(sortByRank);
2013
+ if (_this.toTokens.trending[nName]) _this.toTokens.trending[nName].sort(sortByRank);
2014
+ _this.toTokens.all[nName] = values;
2015
+ });
2016
+ return [
2017
+ 2
2018
+ ];
2019
+ }
2020
+ });
2021
+ })();
2022
+ }
2023
+ },
2024
+ {
2025
+ key: "getFromTokens",
2026
+ value: function getFromTokens() {
2027
+ return this.fromTokens;
2028
+ }
2029
+ },
2030
+ {
2031
+ key: "getToTokens",
2032
+ value: function getToTokens() {
2033
+ return this.toTokens;
2034
+ }
2035
+ },
2036
+ {
2037
+ key: "getQuotes",
2038
+ value: function getQuotes(options) {
2039
+ var _this = this;
2040
+ return _asyncToGenerator(function() {
2041
+ var response;
2042
+ return __generator(this, function(_state) {
2043
+ switch(_state.label){
2044
+ case 0:
2045
+ return [
2046
+ 4,
2047
+ Promise.all(_this.providers.map(function(Provider) {
2048
+ return Provider.getQuote(options, {
2049
+ infiniteApproval: _this.evmOptions.infiniteApproval,
2050
+ walletIdentifier: _this.walletId
2051
+ }).then(function(res) {
2052
+ if (!res) return res;
2053
+ _this.emit("quote-update" /* QuoteUpdate */ , res.toTokenAmount);
2054
+ return res;
2055
+ });
2056
+ }))
2057
+ ];
2058
+ case 1:
2059
+ response = _state.sent();
2060
+ return [
2061
+ 2,
2062
+ response.filter(function(res) {
2063
+ return res !== null;
2064
+ }).sort(function(a, b) {
2065
+ return b.toTokenAmount.gt(a.toTokenAmount) ? 1 : -1;
2066
+ })
2067
+ ];
2068
+ }
2069
+ });
2070
+ })();
2071
+ }
2072
+ },
2073
+ {
2074
+ key: "getSwap",
2075
+ value: function getSwap(quote) {
2076
+ var provider = this.providers.find(function(p) {
2077
+ return p.name === quote.provider;
2078
+ });
2079
+ return provider.getSwap(quote);
2080
+ }
2081
+ },
2082
+ {
2083
+ key: "getStatus",
2084
+ value: function getStatus(options) {
2085
+ var provider = this.providers.find(function(p) {
2086
+ return p.name === options.provider;
2087
+ });
2088
+ return provider.getStatus(options.options);
2089
+ }
2090
+ }
2091
+ ], [
2092
+ {
2093
+ key: "networkNameToInfo",
2094
+ value: function networkNameToInfo(networkName) {
2095
+ return supportedNetworks_default[networkName];
2096
+ }
2097
+ }
2098
+ ]);
2099
+ return Swap;
2100
+ }(import_eventemitter3.default);
2101
+ var src_default = Swap;
2102
+ // Annotate the CommonJS export names for ESM import in node:
2103
+ 0 && (module.exports = {
2104
+ NetworkType: NetworkType,
2105
+ SupportedNetworkName: SupportedNetworkName,
2106
+ SwapToken: SwapToken,
2107
+ TransactionStatus: TransactionStatus,
2108
+ TransactionType: TransactionType,
2109
+ WalletIdentifier: WalletIdentifier,
2110
+ getNetworkInfoByName: getNetworkInfoByName,
2111
+ getSupportedNetworks: getSupportedNetworks,
2112
+ isSupportedNetwork: isSupportedNetwork,
2113
+ sortByRank: sortByRank,
2114
+ sortNativeToFront: sortNativeToFront
2115
+ });