@lifi/sdk 1.1.0 → 1.1.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/CHANGELOG.md +21 -0
- package/dist/Lifi.d.ts +1 -1
- package/dist/Lifi.js +179 -285
- package/dist/allowance/index.js +56 -148
- package/dist/allowance/utils.js +51 -116
- package/dist/balances/index.js +29 -92
- package/dist/balances/utils.js +108 -218
- package/dist/connectors.js +50 -133
- package/dist/execution/StatusManager.js +38 -40
- package/dist/execution/StepExecutor.js +54 -123
- package/dist/execution/allowance.execute.js +77 -143
- package/dist/execution/balanceCheck.execute.js +29 -74
- package/dist/execution/bridges/bridge.execute.js +132 -221
- package/dist/execution/exchanges/swap.execute.js +142 -225
- package/dist/execution/index.js +1 -17
- package/dist/execution/stepComparison.js +22 -61
- package/dist/execution/switchChain.js +33 -81
- package/dist/execution/utils.js +60 -119
- package/dist/helpers.js +15 -53
- package/dist/index.js +6 -25
- package/dist/services/ApiService.js +248 -385
- package/dist/services/ChainsService.js +29 -89
- package/dist/services/ConfigService.js +47 -86
- package/dist/typeguards.js +13 -21
- package/dist/types/ERC20.js +1 -4
- package/dist/types/index.js +4 -22
- package/dist/types/internal.types.js +1 -2
- package/dist/utils/errors.js +47 -93
- package/dist/utils/getProvider.js +3 -7
- package/dist/utils/multicall.js +61 -117
- package/dist/utils/parseError.js +73 -141
- package/dist/utils/preRestart.js +14 -21
- package/dist/utils/utils.js +47 -130
- package/package.json +3 -3
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,101 +7,42 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
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;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
var errors_1 = require("../utils/errors");
|
|
43
|
-
var ApiService_1 = __importDefault(require("./ApiService"));
|
|
44
|
-
var ChainsService = /** @class */ (function () {
|
|
45
|
-
function ChainsService() {
|
|
10
|
+
import { ValidationError } from '../utils/errors';
|
|
11
|
+
import ApiService from './ApiService';
|
|
12
|
+
export default class ChainsService {
|
|
13
|
+
constructor() {
|
|
46
14
|
this.chains = [];
|
|
47
15
|
this.loadingPromise = this.loadAvailableChains();
|
|
48
16
|
}
|
|
49
|
-
|
|
50
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
51
|
-
|
|
52
|
-
return __generator(this, function (_b) {
|
|
53
|
-
switch (_b.label) {
|
|
54
|
-
case 0:
|
|
55
|
-
_a = this;
|
|
56
|
-
return [4 /*yield*/, ApiService_1.default.getChains()];
|
|
57
|
-
case 1:
|
|
58
|
-
_a.chains = _b.sent();
|
|
59
|
-
return [2 /*return*/];
|
|
60
|
-
}
|
|
61
|
-
});
|
|
17
|
+
loadAvailableChains() {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
this.chains = yield ApiService.getChains();
|
|
62
20
|
});
|
|
63
|
-
}
|
|
64
|
-
|
|
21
|
+
}
|
|
22
|
+
static getInstance() {
|
|
65
23
|
if (!this.instance) {
|
|
66
24
|
this.instance = new ChainsService();
|
|
67
25
|
}
|
|
68
26
|
return this.instance;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
_a.label = 2;
|
|
81
|
-
case 2:
|
|
82
|
-
chain = this.chains.find(function (chain) { return chain.id === chainId; });
|
|
83
|
-
if (!chain) {
|
|
84
|
-
throw new errors_1.ValidationError("Unknown chainId passed: ".concat(chainId, "."));
|
|
85
|
-
}
|
|
86
|
-
return [2 /*return*/, chain];
|
|
87
|
-
}
|
|
88
|
-
});
|
|
27
|
+
}
|
|
28
|
+
getChainById(chainId) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
if (this.loadingPromise) {
|
|
31
|
+
yield this.loadingPromise;
|
|
32
|
+
}
|
|
33
|
+
const chain = this.chains.find((chain) => chain.id === chainId);
|
|
34
|
+
if (!chain) {
|
|
35
|
+
throw new ValidationError(`Unknown chainId passed: ${chainId}.`);
|
|
36
|
+
}
|
|
37
|
+
return chain;
|
|
89
38
|
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return [4 /*yield*/, this.loadingPromise];
|
|
98
|
-
case 1:
|
|
99
|
-
_a.sent();
|
|
100
|
-
_a.label = 2;
|
|
101
|
-
case 2: return [2 /*return*/, this.chains];
|
|
102
|
-
}
|
|
103
|
-
});
|
|
39
|
+
}
|
|
40
|
+
getChains() {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
if (this.loadingPromise) {
|
|
43
|
+
yield this.loadingPromise;
|
|
44
|
+
}
|
|
45
|
+
return this.chains;
|
|
104
46
|
});
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
}());
|
|
108
|
-
exports.default = ChainsService;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,127 +7,89 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
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;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
var types_1 = require("../types");
|
|
40
|
-
var DefaultExecutionSettings = {
|
|
10
|
+
import { ChainId, } from '../types';
|
|
11
|
+
const DefaultExecutionSettings = {
|
|
41
12
|
/* eslint-disable-next-line @typescript-eslint/no-empty-function */
|
|
42
|
-
updateCallback:
|
|
43
|
-
switchChainHook:
|
|
44
|
-
acceptSlippageUpdateHook:
|
|
13
|
+
updateCallback: () => { },
|
|
14
|
+
switchChainHook: () => Promise.resolve(undefined),
|
|
15
|
+
acceptSlippageUpdateHook: () => Promise.resolve(undefined),
|
|
45
16
|
infiniteApproval: false,
|
|
46
17
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var _this = this;
|
|
18
|
+
export default class ConfigService {
|
|
19
|
+
constructor() {
|
|
50
20
|
this.resolveSetupPromise = undefined;
|
|
51
21
|
/**
|
|
52
22
|
* This call immediately returns the current config. It does not make sure that all chain data is already loaded
|
|
53
23
|
* Use this if you need access to basic information like API urls or settings
|
|
54
24
|
*/
|
|
55
|
-
this.getConfig =
|
|
56
|
-
return
|
|
25
|
+
this.getConfig = () => {
|
|
26
|
+
return this.config;
|
|
57
27
|
};
|
|
58
28
|
/**
|
|
59
29
|
* This call waits for all setup promises to be done.
|
|
60
30
|
* Use this if you need access to chain data (RPCs or multicalls)
|
|
61
31
|
*/
|
|
62
|
-
this.getConfigAsync =
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
_a.sent();
|
|
68
|
-
return [2 /*return*/, this.config];
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}); };
|
|
72
|
-
this.updateConfig = function (configUpdate) {
|
|
32
|
+
this.getConfigAsync = () => __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
yield this.setupPromise;
|
|
34
|
+
return this.config;
|
|
35
|
+
});
|
|
36
|
+
this.updateConfig = (configUpdate) => {
|
|
73
37
|
// API
|
|
74
|
-
|
|
38
|
+
this.config.apiUrl = configUpdate.apiUrl || this.config.apiUrl;
|
|
75
39
|
// RPCS
|
|
76
|
-
|
|
40
|
+
this.config.rpcs = Object.assign(this.config.rpcs, configUpdate.rpcs);
|
|
77
41
|
// MULTICALL
|
|
78
|
-
|
|
42
|
+
this.config.multicallAddresses = Object.assign(this.config.multicallAddresses, configUpdate.multicallAddresses);
|
|
79
43
|
// SETTINGS
|
|
80
|
-
|
|
44
|
+
this.config.defaultExecutionSettings = Object.assign(this.config.defaultExecutionSettings, configUpdate.defaultExecutionSettings);
|
|
81
45
|
// OPTIONS
|
|
82
|
-
|
|
83
|
-
return
|
|
46
|
+
this.config.defaultRouteOptions = Object.assign(this.config.defaultRouteOptions, configUpdate.defaultRouteOptions);
|
|
47
|
+
return this.config;
|
|
84
48
|
};
|
|
85
|
-
this.updateChains =
|
|
49
|
+
this.updateChains = (chains) => {
|
|
86
50
|
var _a;
|
|
87
|
-
for (
|
|
88
|
-
|
|
89
|
-
var chainId = chain.id;
|
|
51
|
+
for (const chain of chains) {
|
|
52
|
+
const chainId = chain.id;
|
|
90
53
|
// set RPCs if they were not configured by the user before
|
|
91
|
-
if (!
|
|
92
|
-
|
|
54
|
+
if (!this.config.rpcs[chainId].length) {
|
|
55
|
+
this.config.rpcs[chainId] = chain.metamask.rpcUrls;
|
|
93
56
|
}
|
|
94
57
|
// set multicall addresses if they exist and were not configured by the user before
|
|
95
|
-
if (chain.multicallAddress && !
|
|
96
|
-
|
|
58
|
+
if (chain.multicallAddress && !this.config.multicallAddresses[chainId]) {
|
|
59
|
+
this.config.multicallAddresses[chainId] = chain.multicallAddress;
|
|
97
60
|
}
|
|
98
61
|
}
|
|
99
|
-
(_a =
|
|
100
|
-
return
|
|
62
|
+
(_a = this.resolveSetupPromise) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
63
|
+
return this.config;
|
|
101
64
|
};
|
|
102
65
|
this.config = ConfigService.getDefaultConfig();
|
|
103
|
-
this.setupPromise = new Promise(
|
|
104
|
-
|
|
66
|
+
this.setupPromise = new Promise((resolve) => {
|
|
67
|
+
this.resolveSetupPromise = resolve;
|
|
105
68
|
});
|
|
106
69
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
values.forEach(
|
|
70
|
+
static chainIdToObject(val) {
|
|
71
|
+
const result = {};
|
|
72
|
+
const values = Object.values(ChainId);
|
|
73
|
+
values.forEach((chainId) => {
|
|
111
74
|
if (typeof chainId !== 'string') {
|
|
112
75
|
result[chainId] = val ? JSON.parse(JSON.stringify(val)) : val;
|
|
113
76
|
}
|
|
114
77
|
});
|
|
115
78
|
return result;
|
|
116
|
-
}
|
|
117
|
-
|
|
79
|
+
}
|
|
80
|
+
static getInstance() {
|
|
118
81
|
if (!this.instance) {
|
|
119
82
|
this.instance = new ConfigService();
|
|
120
83
|
}
|
|
121
84
|
return this.instance;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
ConfigService.getDefaultConfig = () => {
|
|
88
|
+
return {
|
|
89
|
+
apiUrl: 'https://li.quest/v1/',
|
|
90
|
+
rpcs: ConfigService.chainIdToObject([]),
|
|
91
|
+
multicallAddresses: ConfigService.chainIdToObject(undefined),
|
|
92
|
+
defaultExecutionSettings: DefaultExecutionSettings,
|
|
93
|
+
defaultRouteOptions: {},
|
|
122
94
|
};
|
|
123
|
-
|
|
124
|
-
return {
|
|
125
|
-
apiUrl: 'https://li.quest/v1/',
|
|
126
|
-
rpcs: ConfigService.chainIdToObject([]),
|
|
127
|
-
multicallAddresses: ConfigService.chainIdToObject(undefined),
|
|
128
|
-
defaultExecutionSettings: DefaultExecutionSettings,
|
|
129
|
-
defaultRouteOptions: {},
|
|
130
|
-
};
|
|
131
|
-
};
|
|
132
|
-
return ConfigService;
|
|
133
|
-
}());
|
|
134
|
-
exports.default = ConfigService;
|
|
95
|
+
};
|
package/dist/typeguards.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.isToken = exports.isStep = exports.isRoutesRequest = void 0;
|
|
4
|
-
var isRoutesRequest = function (routesRequest) {
|
|
5
|
-
var fromChainId = routesRequest.fromChainId, fromAmount = routesRequest.fromAmount, fromTokenAddress = routesRequest.fromTokenAddress, toChainId = routesRequest.toChainId, toTokenAddress = routesRequest.toTokenAddress, options = routesRequest.options;
|
|
1
|
+
export const isRoutesRequest = (routesRequest) => {
|
|
2
|
+
const { fromChainId, fromAmount, fromTokenAddress, toChainId, toTokenAddress, options, } = routesRequest;
|
|
6
3
|
return (typeof fromChainId === 'number' &&
|
|
7
4
|
typeof fromAmount === 'string' &&
|
|
8
5
|
fromAmount !== '' &&
|
|
@@ -13,31 +10,27 @@ var isRoutesRequest = function (routesRequest) {
|
|
|
13
10
|
toTokenAddress !== '' &&
|
|
14
11
|
(!options || isRoutesOptions(options)));
|
|
15
12
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
20
|
-
var isStep = function (step) {
|
|
21
|
-
var id = step.id, type = step.type, tool = step.tool, action = step.action, estimate = step.estimate;
|
|
13
|
+
const isRoutesOptions = (routeOptions) => !(routeOptions === null || routeOptions === void 0 ? void 0 : routeOptions.slippage) || typeof routeOptions.slippage === 'number';
|
|
14
|
+
export const isStep = (step) => {
|
|
15
|
+
const { id, type, tool, action, estimate } = step;
|
|
22
16
|
return (typeof id === 'string' &&
|
|
23
17
|
['swap', 'cross', 'lifi'].includes(type) &&
|
|
24
18
|
typeof tool === 'string' &&
|
|
25
19
|
isAction(action) &&
|
|
26
20
|
isEstimate(estimate));
|
|
27
21
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var fromChainId = action.fromChainId, fromAmount = action.fromAmount, fromToken = action.fromToken, toChainId = action.toChainId, toToken = action.toToken, slippage = action.slippage;
|
|
22
|
+
const isAction = (action) => {
|
|
23
|
+
const { fromChainId, fromAmount, fromToken, toChainId, toToken, slippage } = action;
|
|
31
24
|
return (typeof fromChainId === 'number' &&
|
|
32
25
|
typeof fromAmount === 'string' &&
|
|
33
26
|
fromAmount !== '' &&
|
|
34
|
-
|
|
27
|
+
isToken(fromToken) &&
|
|
35
28
|
typeof toChainId === 'number' &&
|
|
36
|
-
|
|
29
|
+
isToken(toToken) &&
|
|
37
30
|
typeof slippage === 'number');
|
|
38
31
|
};
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
const isEstimate = (estimate) => {
|
|
33
|
+
const { fromAmount, toAmount, toAmountMin, approvalAddress } = estimate;
|
|
41
34
|
return (typeof fromAmount === 'string' &&
|
|
42
35
|
fromAmount !== '' &&
|
|
43
36
|
typeof toAmount === 'string' &&
|
|
@@ -46,10 +39,9 @@ var isEstimate = function (estimate) {
|
|
|
46
39
|
toAmountMin !== '' &&
|
|
47
40
|
typeof approvalAddress === 'string');
|
|
48
41
|
};
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
export const isToken = (token) => {
|
|
43
|
+
const { address, decimals, chainId } = token;
|
|
51
44
|
return (typeof address === 'string' &&
|
|
52
45
|
typeof decimals === 'number' &&
|
|
53
46
|
typeof chainId === 'number');
|
|
54
47
|
};
|
|
55
|
-
exports.isToken = isToken;
|
package/dist/types/ERC20.js
CHANGED
package/dist/types/index.js
CHANGED
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.LifiError = void 0;
|
|
18
|
-
__exportStar(require("@lifi/types"), exports);
|
|
19
|
-
var errors_1 = require("../utils/errors");
|
|
20
|
-
Object.defineProperty(exports, "LifiError", { enumerable: true, get: function () { return errors_1.LifiError; } });
|
|
21
|
-
__exportStar(require("./ERC20"), exports);
|
|
22
|
-
__exportStar(require("./internal.types"), exports);
|
|
1
|
+
export * from '@lifi/types';
|
|
2
|
+
export { LifiError } from '../utils/errors';
|
|
3
|
+
export * from './ERC20';
|
|
4
|
+
export * from './internal.types';
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
package/dist/utils/errors.js
CHANGED
|
@@ -1,21 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.UnknownError = exports.NotFoundError = exports.SlippageError = exports.TransactionError = exports.ValidationError = exports.ServerError = exports.ProviderError = exports.RPCError = exports.LifiError = exports.MetaMaskProviderErrorCode = exports.MetaMaskRPCErrorCode = exports.LifiErrorCode = void 0;
|
|
19
1
|
var ErrorType;
|
|
20
2
|
(function (ErrorType) {
|
|
21
3
|
ErrorType["RPCError"] = "RPCError";
|
|
@@ -27,7 +9,7 @@ var ErrorType;
|
|
|
27
9
|
ErrorType["UnknownError"] = "UnknownError";
|
|
28
10
|
ErrorType["SlippageError"] = "SlippageError";
|
|
29
11
|
})(ErrorType || (ErrorType = {}));
|
|
30
|
-
var LifiErrorCode;
|
|
12
|
+
export var LifiErrorCode;
|
|
31
13
|
(function (LifiErrorCode) {
|
|
32
14
|
LifiErrorCode[LifiErrorCode["InternalError"] = 1000] = "InternalError";
|
|
33
15
|
LifiErrorCode[LifiErrorCode["ValidationError"] = 1001] = "ValidationError";
|
|
@@ -41,8 +23,8 @@ var LifiErrorCode;
|
|
|
41
23
|
LifiErrorCode[LifiErrorCode["SlippageNotMet"] = 1008] = "SlippageNotMet";
|
|
42
24
|
LifiErrorCode[LifiErrorCode["SlippageError"] = 1008] = "SlippageError";
|
|
43
25
|
LifiErrorCode[LifiErrorCode["GasLimitError"] = 1009] = "GasLimitError";
|
|
44
|
-
})(LifiErrorCode
|
|
45
|
-
var MetaMaskRPCErrorCode;
|
|
26
|
+
})(LifiErrorCode || (LifiErrorCode = {}));
|
|
27
|
+
export var MetaMaskRPCErrorCode;
|
|
46
28
|
(function (MetaMaskRPCErrorCode) {
|
|
47
29
|
MetaMaskRPCErrorCode[MetaMaskRPCErrorCode["invalidInput"] = -32000] = "invalidInput";
|
|
48
30
|
MetaMaskRPCErrorCode[MetaMaskRPCErrorCode["resourceNotFound"] = -32001] = "resourceNotFound";
|
|
@@ -55,95 +37,67 @@ var MetaMaskRPCErrorCode;
|
|
|
55
37
|
MetaMaskRPCErrorCode[MetaMaskRPCErrorCode["methodNotFound"] = -32601] = "methodNotFound";
|
|
56
38
|
MetaMaskRPCErrorCode[MetaMaskRPCErrorCode["invalidParams"] = -32602] = "invalidParams";
|
|
57
39
|
MetaMaskRPCErrorCode[MetaMaskRPCErrorCode["internal"] = -32603] = "internal";
|
|
58
|
-
})(MetaMaskRPCErrorCode
|
|
59
|
-
var MetaMaskProviderErrorCode;
|
|
40
|
+
})(MetaMaskRPCErrorCode || (MetaMaskRPCErrorCode = {}));
|
|
41
|
+
export var MetaMaskProviderErrorCode;
|
|
60
42
|
(function (MetaMaskProviderErrorCode) {
|
|
61
43
|
MetaMaskProviderErrorCode[MetaMaskProviderErrorCode["userRejectedRequest"] = 4001] = "userRejectedRequest";
|
|
62
44
|
MetaMaskProviderErrorCode[MetaMaskProviderErrorCode["unauthorized"] = 4100] = "unauthorized";
|
|
63
45
|
MetaMaskProviderErrorCode[MetaMaskProviderErrorCode["unsupportedMethod"] = 4200] = "unsupportedMethod";
|
|
64
46
|
MetaMaskProviderErrorCode[MetaMaskProviderErrorCode["disconnected"] = 4900] = "disconnected";
|
|
65
47
|
MetaMaskProviderErrorCode[MetaMaskProviderErrorCode["chainDisconnected"] = 4901] = "chainDisconnected";
|
|
66
|
-
})(MetaMaskProviderErrorCode
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
var _this = _super.call(this, message) || this;
|
|
48
|
+
})(MetaMaskProviderErrorCode || (MetaMaskProviderErrorCode = {}));
|
|
49
|
+
export class LifiError extends Error {
|
|
50
|
+
constructor(type, code, message, htmlMessage, stack) {
|
|
51
|
+
super(message);
|
|
71
52
|
// Set the prototype explicitly: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
|
|
72
|
-
Object.setPrototypeOf(
|
|
73
|
-
|
|
53
|
+
Object.setPrototypeOf(this, LifiError.prototype);
|
|
54
|
+
this.code = code;
|
|
74
55
|
// the name property is used by toString(). It is a string and we can't use our custom ErrorTypes, that's why we have to cast
|
|
75
|
-
|
|
76
|
-
|
|
56
|
+
this.name = type.toString();
|
|
57
|
+
this.htmlMessage = htmlMessage;
|
|
77
58
|
// passing a stack allows us to preserve the stack from errors that we caught and just want to transform in one of our custom errors
|
|
78
59
|
if (stack) {
|
|
79
|
-
|
|
60
|
+
this.stack = stack;
|
|
80
61
|
}
|
|
81
|
-
return _this;
|
|
82
62
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
__extends(RPCError, _super);
|
|
88
|
-
function RPCError(code, message, htmlMessage, stack) {
|
|
89
|
-
return _super.call(this, ErrorType.RPCError, code, message, htmlMessage, stack) || this;
|
|
63
|
+
}
|
|
64
|
+
export class RPCError extends LifiError {
|
|
65
|
+
constructor(code, message, htmlMessage, stack) {
|
|
66
|
+
super(ErrorType.RPCError, code, message, htmlMessage, stack);
|
|
90
67
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
__extends(ProviderError, _super);
|
|
96
|
-
function ProviderError(code, message, htmlMessage, stack) {
|
|
97
|
-
return _super.call(this, ErrorType.ProviderError, code, message, htmlMessage, stack) || this;
|
|
68
|
+
}
|
|
69
|
+
export class ProviderError extends LifiError {
|
|
70
|
+
constructor(code, message, htmlMessage, stack) {
|
|
71
|
+
super(ErrorType.ProviderError, code, message, htmlMessage, stack);
|
|
98
72
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
__extends(ServerError, _super);
|
|
104
|
-
function ServerError(message, htmlMessage, stack) {
|
|
105
|
-
return _super.call(this, ErrorType.ServerError, LifiErrorCode.InternalError, message, htmlMessage, stack) || this;
|
|
73
|
+
}
|
|
74
|
+
export class ServerError extends LifiError {
|
|
75
|
+
constructor(message, htmlMessage, stack) {
|
|
76
|
+
super(ErrorType.ServerError, LifiErrorCode.InternalError, message, htmlMessage, stack);
|
|
106
77
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
__extends(ValidationError, _super);
|
|
112
|
-
function ValidationError(message, htmlMessage, stack) {
|
|
113
|
-
return _super.call(this, ErrorType.ValidationError, LifiErrorCode.ValidationError, message, htmlMessage, stack) || this;
|
|
78
|
+
}
|
|
79
|
+
export class ValidationError extends LifiError {
|
|
80
|
+
constructor(message, htmlMessage, stack) {
|
|
81
|
+
super(ErrorType.ValidationError, LifiErrorCode.ValidationError, message, htmlMessage, stack);
|
|
114
82
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
__extends(TransactionError, _super);
|
|
120
|
-
function TransactionError(code, message, htmlMessage, stack) {
|
|
121
|
-
return _super.call(this, ErrorType.TransactionError, code, message, htmlMessage, stack) || this;
|
|
83
|
+
}
|
|
84
|
+
export class TransactionError extends LifiError {
|
|
85
|
+
constructor(code, message, htmlMessage, stack) {
|
|
86
|
+
super(ErrorType.TransactionError, code, message, htmlMessage, stack);
|
|
122
87
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
__extends(SlippageError, _super);
|
|
128
|
-
function SlippageError(message, htmlMessage, stack) {
|
|
129
|
-
return _super.call(this, ErrorType.SlippageError, LifiErrorCode.SlippageError, message, htmlMessage, stack) || this;
|
|
88
|
+
}
|
|
89
|
+
export class SlippageError extends LifiError {
|
|
90
|
+
constructor(message, htmlMessage, stack) {
|
|
91
|
+
super(ErrorType.SlippageError, LifiErrorCode.SlippageError, message, htmlMessage, stack);
|
|
130
92
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
__extends(NotFoundError, _super);
|
|
136
|
-
function NotFoundError(message, htmlMessage, stack) {
|
|
137
|
-
return _super.call(this, ErrorType.NotFoundError, LifiErrorCode.NotFound, message, htmlMessage, stack) || this;
|
|
93
|
+
}
|
|
94
|
+
export class NotFoundError extends LifiError {
|
|
95
|
+
constructor(message, htmlMessage, stack) {
|
|
96
|
+
super(ErrorType.NotFoundError, LifiErrorCode.NotFound, message, htmlMessage, stack);
|
|
138
97
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
__extends(UnknownError, _super);
|
|
144
|
-
function UnknownError(code, message, htmlMessage, stack) {
|
|
145
|
-
return _super.call(this, ErrorType.UnknownError, code, message, htmlMessage, stack) || this;
|
|
98
|
+
}
|
|
99
|
+
export class UnknownError extends LifiError {
|
|
100
|
+
constructor(code, message, htmlMessage, stack) {
|
|
101
|
+
super(ErrorType.UnknownError, code, message, htmlMessage, stack);
|
|
146
102
|
}
|
|
147
|
-
|
|
148
|
-
}(LifiError));
|
|
149
|
-
exports.UnknownError = UnknownError;
|
|
103
|
+
}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getProvider = void 0;
|
|
4
|
-
var errors_1 = require("./errors");
|
|
5
|
-
var getProvider = function (signer) {
|
|
1
|
+
import { LifiErrorCode, ProviderError } from './errors';
|
|
2
|
+
export const getProvider = (signer) => {
|
|
6
3
|
if (!signer.provider) {
|
|
7
|
-
throw new
|
|
4
|
+
throw new ProviderError(LifiErrorCode.ProviderUnavailable, 'No provider available in signer.');
|
|
8
5
|
}
|
|
9
6
|
return signer.provider;
|
|
10
7
|
};
|
|
11
|
-
exports.getProvider = getProvider;
|