@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/LICENSE +21 -0
- package/README.md +3 -0
- package/dist/index.d.ts +214 -0
- package/dist/index.js +2115 -0
- package/dist/index.mjs +1337 -0
- package/package.json +62 -0
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
|
+
});
|