@lifi/sdk 3.0.2-beta.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/_cjs/core/EVM/EVMStepExecutor.js +12 -11
- package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_cjs/core/EVM/checkAllowance.js +5 -10
- package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/multisig.js +4 -3
- package/src/_cjs/core/EVM/multisig.js.map +1 -1
- package/src/_cjs/core/EVM/parseEVMErrors.js +38 -0
- package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -0
- package/src/_cjs/core/EVM/publicClient.js +8 -3
- package/src/_cjs/core/EVM/publicClient.js.map +1 -1
- package/src/_cjs/core/EVM/setAllowance.js +2 -3
- package/src/_cjs/core/EVM/setAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/switchChain.js +4 -3
- package/src/_cjs/core/EVM/switchChain.js.map +1 -1
- package/src/_cjs/core/Solana/SolanaStepExecutor.js +42 -24
- package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_cjs/core/Solana/connection.js.map +1 -1
- package/src/_cjs/core/Solana/parseSolanaErrors.js +33 -0
- package/src/_cjs/core/Solana/parseSolanaErrors.js.map +1 -0
- package/src/_cjs/core/checkBalance.js +2 -2
- package/src/_cjs/core/checkBalance.js.map +1 -1
- package/src/_cjs/core/stepComparison.js +3 -3
- package/src/_cjs/core/stepComparison.js.map +1 -1
- package/src/_cjs/core/waitForReceivingTransaction.js +1 -1
- package/src/_cjs/core/waitForReceivingTransaction.js.map +1 -1
- package/src/_cjs/errors/SDKError.js +48 -0
- package/src/_cjs/errors/SDKError.js.map +1 -0
- package/src/_cjs/errors/baseError.js +30 -0
- package/src/_cjs/errors/baseError.js.map +1 -0
- package/src/_cjs/errors/constants.js +48 -0
- package/src/_cjs/errors/constants.js.map +1 -0
- package/src/_cjs/errors/errors.js +48 -0
- package/src/_cjs/errors/errors.js.map +1 -0
- package/src/_cjs/errors/httpError.js +101 -0
- package/src/_cjs/errors/httpError.js.map +1 -0
- package/src/_cjs/errors/index.js +11 -0
- package/src/_cjs/errors/index.js.map +1 -0
- package/src/_cjs/errors/utils/baseErrorRootCause.js +21 -0
- package/src/_cjs/errors/utils/baseErrorRootCause.js.map +1 -0
- package/src/_cjs/errors/utils/rootCause.js +12 -0
- package/src/_cjs/errors/utils/rootCause.js.map +1 -0
- package/src/_cjs/helpers.js +13 -8
- package/src/_cjs/helpers.js.map +1 -1
- package/src/_cjs/index.js +2 -4
- package/src/_cjs/index.js.map +1 -1
- package/src/_cjs/request.js +37 -34
- package/src/_cjs/request.js.map +1 -1
- package/src/_cjs/services/api.js +61 -132
- package/src/_cjs/services/api.js.map +1 -1
- package/src/_cjs/services/balance.js +1 -1
- package/src/_cjs/services/balance.js.map +1 -1
- package/src/_cjs/types/request.js +3 -0
- package/src/_cjs/types/request.js.map +1 -0
- package/src/_cjs/utils/errors.js +0 -183
- package/src/_cjs/utils/errors.js.map +1 -1
- package/src/_cjs/utils/index.js +1 -2
- package/src/_cjs/utils/index.js.map +1 -1
- package/src/_cjs/version.js +1 -1
- package/src/_cjs/version.js.map +1 -1
- package/src/_esm/core/EVM/EVMStepExecutor.js +8 -7
- package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_esm/core/EVM/checkAllowance.js +5 -10
- package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
- package/src/_esm/core/EVM/multisig.js +2 -1
- package/src/_esm/core/EVM/multisig.js.map +1 -1
- package/src/_esm/core/EVM/parseEVMErrors.js +35 -0
- package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -0
- package/src/_esm/core/EVM/publicClient.js +9 -4
- package/src/_esm/core/EVM/publicClient.js.map +1 -1
- package/src/_esm/core/EVM/setAllowance.js +3 -5
- package/src/_esm/core/EVM/setAllowance.js.map +1 -1
- package/src/_esm/core/EVM/switchChain.js +2 -1
- package/src/_esm/core/EVM/switchChain.js.map +1 -1
- package/src/_esm/core/Solana/SolanaStepExecutor.js +52 -25
- package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_esm/core/Solana/connection.js +2 -3
- package/src/_esm/core/Solana/connection.js.map +1 -1
- package/src/_esm/core/Solana/parseSolanaErrors.js +29 -0
- package/src/_esm/core/Solana/parseSolanaErrors.js.map +1 -0
- package/src/_esm/core/checkBalance.js +2 -2
- package/src/_esm/core/checkBalance.js.map +1 -1
- package/src/_esm/core/stepComparison.js +3 -3
- package/src/_esm/core/stepComparison.js.map +1 -1
- package/src/_esm/core/waitForReceivingTransaction.js +1 -1
- package/src/_esm/core/waitForReceivingTransaction.js.map +1 -1
- package/src/_esm/errors/SDKError.js +47 -0
- package/src/_esm/errors/SDKError.js.map +1 -0
- package/src/_esm/errors/baseError.js +28 -0
- package/src/_esm/errors/baseError.js.map +1 -0
- package/src/_esm/errors/constants.js +45 -0
- package/src/_esm/errors/constants.js.map +1 -0
- package/src/_esm/errors/errors.js +38 -0
- package/src/_esm/errors/errors.js.map +1 -0
- package/src/_esm/errors/httpError.js +97 -0
- package/src/_esm/errors/httpError.js.map +1 -0
- package/src/_esm/errors/index.js +8 -0
- package/src/_esm/errors/index.js.map +1 -0
- package/src/_esm/errors/utils/baseErrorRootCause.js +16 -0
- package/src/_esm/errors/utils/baseErrorRootCause.js.map +1 -0
- package/src/_esm/errors/utils/rootCause.js +8 -0
- package/src/_esm/errors/utils/rootCause.js.map +1 -0
- package/src/_esm/helpers.js +16 -9
- package/src/_esm/helpers.js.map +1 -1
- package/src/_esm/index.js +2 -2
- package/src/_esm/index.js.map +1 -1
- package/src/_esm/request.js +38 -35
- package/src/_esm/request.js.map +1 -1
- package/src/_esm/services/api.js +61 -133
- package/src/_esm/services/api.js.map +1 -1
- package/src/_esm/services/balance.js +4 -4
- package/src/_esm/services/balance.js.map +1 -1
- package/src/_esm/types/request.js +2 -0
- package/src/_esm/types/request.js.map +1 -0
- package/src/_esm/utils/errors.js +1 -173
- package/src/_esm/utils/errors.js.map +1 -1
- package/src/_esm/utils/index.js +1 -2
- package/src/_esm/utils/index.js.map +1 -1
- package/src/_esm/version.js +1 -1
- package/src/_esm/version.js.map +1 -1
- package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
- package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/multisig.d.ts.map +1 -1
- package/src/_types/core/EVM/parseEVMErrors.d.ts +4 -0
- package/src/_types/core/EVM/parseEVMErrors.d.ts.map +1 -0
- package/src/_types/core/EVM/publicClient.d.ts.map +1 -1
- package/src/_types/core/EVM/setAllowance.d.ts +1 -2
- package/src/_types/core/EVM/setAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/switchChain.d.ts.map +1 -1
- package/src/_types/core/EVM/types.d.ts +3 -0
- package/src/_types/core/EVM/types.d.ts.map +1 -1
- package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
- package/src/_types/core/Solana/connection.d.ts +2 -3
- package/src/_types/core/Solana/connection.d.ts.map +1 -1
- package/src/_types/core/Solana/parseSolanaErrors.d.ts +4 -0
- package/src/_types/core/Solana/parseSolanaErrors.d.ts.map +1 -0
- package/src/_types/core/stepComparison.d.ts.map +1 -1
- package/src/_types/core/types.d.ts +3 -0
- package/src/_types/core/types.d.ts.map +1 -1
- package/src/_types/errors/SDKError.d.ts +12 -0
- package/src/_types/errors/SDKError.d.ts.map +1 -0
- package/src/_types/errors/baseError.d.ts +7 -0
- package/src/_types/errors/baseError.d.ts.map +1 -0
- package/src/_types/errors/constants.d.ts +43 -0
- package/src/_types/errors/constants.d.ts.map +1 -0
- package/src/_types/errors/errors.d.ts +24 -0
- package/src/_types/errors/errors.d.ts.map +1 -0
- package/src/_types/errors/httpError.d.ts +21 -0
- package/src/_types/errors/httpError.d.ts.map +1 -0
- package/src/_types/errors/index.d.ts +8 -0
- package/src/_types/errors/index.d.ts.map +1 -0
- package/src/_types/errors/utils/baseErrorRootCause.d.ts +4 -0
- package/src/_types/errors/utils/baseErrorRootCause.d.ts.map +1 -0
- package/src/_types/errors/utils/rootCause.d.ts +2 -0
- package/src/_types/errors/utils/rootCause.d.ts.map +1 -0
- package/src/_types/helpers.d.ts +5 -4
- package/src/_types/helpers.d.ts.map +1 -1
- package/src/_types/index.d.ts +2 -2
- package/src/_types/index.d.ts.map +1 -1
- package/src/_types/request.d.ts +1 -5
- package/src/_types/request.d.ts.map +1 -1
- package/src/_types/services/api.d.ts.map +1 -1
- package/src/_types/services/balance.d.ts +3 -3
- package/src/_types/types/request.d.ts +4 -0
- package/src/_types/types/request.d.ts.map +1 -0
- package/src/_types/utils/errors.d.ts +0 -109
- package/src/_types/utils/errors.d.ts.map +1 -1
- package/src/_types/utils/index.d.ts +1 -2
- package/src/_types/utils/index.d.ts.map +1 -1
- package/src/_types/version.d.ts +1 -1
- package/src/_types/version.d.ts.map +1 -1
- package/src/core/EVM/EVMStepExecutor.ts +14 -12
- package/src/core/EVM/checkAllowance.ts +5 -10
- package/src/core/EVM/multisig.ts +2 -1
- package/src/core/EVM/parseEVMErrors.ts +60 -0
- package/src/core/EVM/publicClient.ts +9 -4
- package/src/core/EVM/setAllowance.ts +2 -6
- package/src/core/EVM/switchChain.ts +2 -1
- package/src/core/EVM/types.ts +3 -0
- package/src/core/Solana/SolanaStepExecutor.ts +67 -34
- package/src/core/Solana/connection.ts +2 -3
- package/src/core/Solana/parseSolanaErrors.ts +45 -0
- package/src/core/checkBalance.ts +2 -2
- package/src/core/stepComparison.ts +3 -4
- package/src/core/types.ts +3 -0
- package/src/core/waitForReceivingTransaction.ts +1 -1
- package/src/errors/SDKError.ts +25 -0
- package/src/errors/baseError.ts +22 -0
- package/src/errors/constants.ts +45 -0
- package/src/errors/errors.ts +44 -0
- package/src/errors/httpError.ts +93 -0
- package/src/errors/index.ts +7 -0
- package/src/errors/utils/baseErrorRootCause.ts +18 -0
- package/src/errors/utils/rootCause.ts +7 -0
- package/src/helpers.ts +23 -16
- package/src/index.ts +2 -2
- package/src/request.ts +52 -38
- package/src/services/api.ts +109 -157
- package/src/services/balance.ts +4 -4
- package/src/types/request.ts +3 -0
- package/src/utils/errors.ts +0 -233
- package/src/utils/index.ts +1 -2
- package/src/version.ts +1 -1
- package/src/_cjs/utils/parseBackendError.js +0 -27
- package/src/_cjs/utils/parseBackendError.js.map +0 -1
- package/src/_cjs/utils/parseError.js +0 -69
- package/src/_cjs/utils/parseError.js.map +0 -1
- package/src/_esm/utils/parseBackendError.js +0 -24
- package/src/_esm/utils/parseBackendError.js.map +0 -1
- package/src/_esm/utils/parseError.js +0 -100
- package/src/_esm/utils/parseError.js.map +0 -1
- package/src/_types/utils/parseBackendError.d.ts +0 -3
- package/src/_types/utils/parseBackendError.d.ts.map +0 -1
- package/src/_types/utils/parseError.d.ts +0 -35
- package/src/_types/utils/parseError.d.ts.map +0 -1
- package/src/utils/parseBackendError.ts +0 -50
- package/src/utils/parseError.ts +0 -210
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseBackendError = void 0;
|
|
4
|
-
const errors_js_1 = require("./errors.js");
|
|
5
|
-
const parseBackendError = async (e) => {
|
|
6
|
-
let data;
|
|
7
|
-
try {
|
|
8
|
-
data = await e.response?.json();
|
|
9
|
-
}
|
|
10
|
-
catch (error) {
|
|
11
|
-
}
|
|
12
|
-
if (e.response?.status === 400) {
|
|
13
|
-
return new errors_js_1.ValidationError(data?.message || e.response?.statusText, undefined, e.stack);
|
|
14
|
-
}
|
|
15
|
-
if (e.response?.status === 404) {
|
|
16
|
-
return new errors_js_1.NotFoundError(data?.message || e.response?.statusText, undefined, e.stack);
|
|
17
|
-
}
|
|
18
|
-
if (e.response?.status === 409) {
|
|
19
|
-
return new errors_js_1.SlippageError(data?.message || e.response?.statusText, errors_js_1.ErrorMessage.SlippageError, e.stack);
|
|
20
|
-
}
|
|
21
|
-
if (e.response?.status === 500) {
|
|
22
|
-
return new errors_js_1.ServerError(data?.message || e.response?.statusText, undefined, e.stack);
|
|
23
|
-
}
|
|
24
|
-
return new errors_js_1.ServerError(errors_js_1.ErrorMessage.Default, undefined, e.stack);
|
|
25
|
-
};
|
|
26
|
-
exports.parseBackendError = parseBackendError;
|
|
27
|
-
//# sourceMappingURL=parseBackendError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseBackendError.js","sourceRoot":"","sources":["../../utils/parseBackendError.ts"],"names":[],"mappings":";;;AACA,2CAMoB;AAEb,MAAM,iBAAiB,GAAG,KAAK,EAAE,CAAM,EAAsB,EAAE;IACpE,IAAI,IAAI,CAAA;IACR,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;IAEjB,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,2BAAe,CACxB,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EACvC,SAAS,EACT,CAAC,CAAC,KAAK,CACR,CAAA;IACH,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,yBAAa,CACtB,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EACvC,SAAS,EACT,CAAC,CAAC,KAAK,CACR,CAAA;IACH,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,yBAAa,CACtB,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EACvC,wBAAY,CAAC,aAAa,EAC1B,CAAC,CAAC,KAAK,CACR,CAAA;IACH,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,uBAAW,CACpB,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EACvC,SAAS,EACT,CAAC,CAAC,KAAK,CACR,CAAA;IACH,CAAC;IAED,OAAO,IAAI,uBAAW,CAAC,wBAAY,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;AAClE,CAAC,CAAA;AAxCY,QAAA,iBAAiB,qBAwC7B"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseError = void 0;
|
|
4
|
-
const eth_rpc_errors_1 = require("eth-rpc-errors");
|
|
5
|
-
const helpers_js_1 = require("../helpers.js");
|
|
6
|
-
const errors_js_1 = require("./errors.js");
|
|
7
|
-
const getTransactionMessage_js_1 = require("./getTransactionMessage.js");
|
|
8
|
-
const parseError = async (e, step, process) => {
|
|
9
|
-
if (e instanceof errors_js_1.LiFiError) {
|
|
10
|
-
return e;
|
|
11
|
-
}
|
|
12
|
-
const errorCode = e.code || e.cause?.code;
|
|
13
|
-
switch (errorCode) {
|
|
14
|
-
case errors_js_1.EthersErrorType.CallExecption:
|
|
15
|
-
const defaultErrorMessage = await (0, getTransactionMessage_js_1.getTransactionNotSentMessage)(step, process);
|
|
16
|
-
try {
|
|
17
|
-
if (!step?.action.fromChainId) {
|
|
18
|
-
throw new Error('fromChainId is not defined.');
|
|
19
|
-
}
|
|
20
|
-
const response = await (0, helpers_js_1.fetchTxErrorDetails)(e.transactionHash, step?.action.fromChainId);
|
|
21
|
-
const errorMessage = response?.error_message ?? e.reason;
|
|
22
|
-
const isAllowanceError = response?.error_message?.includes(errors_js_1.EthersErrorMessage.ERC20Allowance) || e.reason?.includes(errors_js_1.EthersErrorMessage.ERC20Allowance);
|
|
23
|
-
if (isAllowanceError) {
|
|
24
|
-
return new errors_js_1.TransactionError(errors_js_1.LiFiErrorCode.AllowanceRequired, e.reason, errorMessage, e.stack);
|
|
25
|
-
}
|
|
26
|
-
throw new Error(e);
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
return new errors_js_1.ProviderError(errors_js_1.LiFiErrorCode.TransactionFailed, e.reason, defaultErrorMessage, e.stack);
|
|
30
|
-
}
|
|
31
|
-
case errors_js_1.EthersErrorType.InsufficientFunds:
|
|
32
|
-
return new errors_js_1.TransactionError(errors_js_1.LiFiErrorCode.InsufficientFunds, e.message, await (0, getTransactionMessage_js_1.getTransactionNotSentMessage)(step, process), e.stack);
|
|
33
|
-
case errors_js_1.EthersErrorType.ActionRejected:
|
|
34
|
-
case errors_js_1.MetaMaskProviderErrorCode.userRejectedRequest:
|
|
35
|
-
return new errors_js_1.TransactionError(errors_js_1.LiFiErrorCode.SignatureRejected, e.message, await (0, getTransactionMessage_js_1.getTransactionNotSentMessage)(step, process), e.stack);
|
|
36
|
-
case errors_js_1.LiFiErrorCode.TransactionUnprepared:
|
|
37
|
-
return new errors_js_1.TransactionError(errors_js_1.LiFiErrorCode.TransactionUnprepared, e.message, await (0, getTransactionMessage_js_1.getTransactionNotSentMessage)(step, process), e.stack);
|
|
38
|
-
case errors_js_1.LiFiErrorCode.ValidationError:
|
|
39
|
-
return new errors_js_1.TransactionError(errors_js_1.LiFiErrorCode.ValidationError, e.message, e.htmlMessage);
|
|
40
|
-
case errors_js_1.LiFiErrorCode.TransactionCanceled:
|
|
41
|
-
return new errors_js_1.TransactionError(errors_js_1.LiFiErrorCode.TransactionCanceled, e.message, e.htmlMessage);
|
|
42
|
-
case errors_js_1.LiFiErrorCode.ExchangeRateUpdateCanceled:
|
|
43
|
-
return new errors_js_1.TransactionError(errors_js_1.LiFiErrorCode.ExchangeRateUpdateCanceled, e.message, e.htmlMessage);
|
|
44
|
-
case errors_js_1.LiFiErrorCode.WalletChangedDuringExecution:
|
|
45
|
-
return new errors_js_1.TransactionError(errors_js_1.LiFiErrorCode.WalletChangedDuringExecution, e.message, e.htmlMessage);
|
|
46
|
-
default: {
|
|
47
|
-
if (errorCode && typeof errorCode === 'number') {
|
|
48
|
-
if (Object.values(eth_rpc_errors_1.errorCodes.rpc).includes(errorCode)) {
|
|
49
|
-
if (errorCode === eth_rpc_errors_1.errorCodes.rpc.internal &&
|
|
50
|
-
(e.message?.includes(errors_js_1.EthersErrorMessage.Underpriced) ||
|
|
51
|
-
e.message?.includes(errors_js_1.EthersErrorMessage.LowReplacementFee))) {
|
|
52
|
-
return new errors_js_1.RPCError(errors_js_1.LiFiErrorCode.TransactionUnderpriced, errors_js_1.ErrorMessage.TransactionUnderpriced, await (0, getTransactionMessage_js_1.getTransactionNotSentMessage)(step, process), e.stack);
|
|
53
|
-
}
|
|
54
|
-
if (e.message?.includes(errors_js_1.EthersErrorMessage.LowGas) ||
|
|
55
|
-
e.message?.includes(errors_js_1.EthersErrorMessage.OutOfGas)) {
|
|
56
|
-
return new errors_js_1.TransactionError(errors_js_1.LiFiErrorCode.GasLimitError, errors_js_1.ErrorMessage.GasLimitLow, await (0, getTransactionMessage_js_1.getTransactionNotSentMessage)(step, process), e.stack);
|
|
57
|
-
}
|
|
58
|
-
return new errors_js_1.RPCError(errorCode, (0, eth_rpc_errors_1.getMessageFromCode)(errorCode), await (0, getTransactionMessage_js_1.getTransactionNotSentMessage)(step, process), e.stack);
|
|
59
|
-
}
|
|
60
|
-
if (Object.values(eth_rpc_errors_1.errorCodes.provider).includes(errorCode)) {
|
|
61
|
-
return new errors_js_1.ProviderError(errorCode, (0, eth_rpc_errors_1.getMessageFromCode)(errorCode), await (0, getTransactionMessage_js_1.getTransactionNotSentMessage)(step, process), e.stack);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return new errors_js_1.UnknownError(errors_js_1.LiFiErrorCode.InternalError, e.message || errors_js_1.ErrorMessage.UnknownError, undefined, e.stack);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
exports.parseError = parseError;
|
|
69
|
-
//# sourceMappingURL=parseError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseError.js","sourceRoot":"","sources":["../../utils/parseError.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { ErrorMessage, NotFoundError, ServerError, SlippageError, ValidationError, } from './errors.js';
|
|
2
|
-
export const parseBackendError = async (e) => {
|
|
3
|
-
let data;
|
|
4
|
-
try {
|
|
5
|
-
data = await e.response?.json();
|
|
6
|
-
}
|
|
7
|
-
catch (error) {
|
|
8
|
-
// ignore
|
|
9
|
-
}
|
|
10
|
-
if (e.response?.status === 400) {
|
|
11
|
-
return new ValidationError(data?.message || e.response?.statusText, undefined, e.stack);
|
|
12
|
-
}
|
|
13
|
-
if (e.response?.status === 404) {
|
|
14
|
-
return new NotFoundError(data?.message || e.response?.statusText, undefined, e.stack);
|
|
15
|
-
}
|
|
16
|
-
if (e.response?.status === 409) {
|
|
17
|
-
return new SlippageError(data?.message || e.response?.statusText, ErrorMessage.SlippageError, e.stack);
|
|
18
|
-
}
|
|
19
|
-
if (e.response?.status === 500) {
|
|
20
|
-
return new ServerError(data?.message || e.response?.statusText, undefined, e.stack);
|
|
21
|
-
}
|
|
22
|
-
return new ServerError(ErrorMessage.Default, undefined, e.stack);
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=parseBackendError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseBackendError.js","sourceRoot":"","sources":["../../utils/parseBackendError.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAA;AAEpB,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,CAAM,EAAsB,EAAE;IACpE,IAAI,IAAI,CAAA;IACR,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS;IACX,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,eAAe,CACxB,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EACvC,SAAS,EACT,CAAC,CAAC,KAAK,CACR,CAAA;IACH,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,aAAa,CACtB,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EACvC,SAAS,EACT,CAAC,CAAC,KAAK,CACR,CAAA;IACH,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,aAAa,CACtB,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EACvC,YAAY,CAAC,aAAa,EAC1B,CAAC,CAAC,KAAK,CACR,CAAA;IACH,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,WAAW,CACpB,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EACvC,SAAS,EACT,CAAC,CAAC,KAAK,CACR,CAAA;IACH,CAAC;IAED,OAAO,IAAI,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;AAClE,CAAC,CAAA"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { errorCodes as MetaMaskErrorCodes, getMessageFromCode, } from 'eth-rpc-errors';
|
|
2
|
-
import { fetchTxErrorDetails } from '../helpers.js';
|
|
3
|
-
import { ErrorMessage, EthersErrorMessage, EthersErrorType, LiFiError, LiFiErrorCode, MetaMaskProviderErrorCode, ProviderError, RPCError, TransactionError, UnknownError, } from './errors.js';
|
|
4
|
-
import { getTransactionNotSentMessage } from './getTransactionMessage.js';
|
|
5
|
-
/**
|
|
6
|
-
* Available MetaMask error codes:
|
|
7
|
-
*
|
|
8
|
-
* export const errorCodes: ErrorCodes = {
|
|
9
|
-
rpc: {
|
|
10
|
-
invalidInput: -32000,
|
|
11
|
-
resourceNotFound: -32001,
|
|
12
|
-
resourceUnavailable: -32002,
|
|
13
|
-
transactionRejected: -32003,
|
|
14
|
-
methodNotSupported: -32004,
|
|
15
|
-
limitExceeded: -32005,
|
|
16
|
-
parse: -32700,
|
|
17
|
-
invalidRequest: -32600,
|
|
18
|
-
methodNotFound: -32601,
|
|
19
|
-
invalidParams: -32602,
|
|
20
|
-
internal: -32603,
|
|
21
|
-
},
|
|
22
|
-
provider: {
|
|
23
|
-
userRejectedRequest: 4001,
|
|
24
|
-
unauthorized: 4100,
|
|
25
|
-
unsupportedMethod: 4200,
|
|
26
|
-
disconnected: 4900,
|
|
27
|
-
chainDisconnected: 4901,
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
*
|
|
31
|
-
* For more information about error codes supported by metamask check
|
|
32
|
-
* https://github.com/MetaMask/eth-rpc-errors
|
|
33
|
-
* https://eips.ethereum.org/EIPS/eip-1474#error-codes
|
|
34
|
-
* https://eips.ethereum.org/EIPS/eip-1193#provider-errors
|
|
35
|
-
*/
|
|
36
|
-
export const parseError = async (e, step, process) => {
|
|
37
|
-
if (e instanceof LiFiError) {
|
|
38
|
-
return e;
|
|
39
|
-
}
|
|
40
|
-
const errorCode = e.code || e.cause?.code;
|
|
41
|
-
switch (errorCode) {
|
|
42
|
-
case EthersErrorType.CallExecption:
|
|
43
|
-
const defaultErrorMessage = await getTransactionNotSentMessage(step, process);
|
|
44
|
-
try {
|
|
45
|
-
if (!step?.action.fromChainId) {
|
|
46
|
-
throw new Error('fromChainId is not defined.');
|
|
47
|
-
}
|
|
48
|
-
const response = await fetchTxErrorDetails(e.transactionHash, step?.action.fromChainId);
|
|
49
|
-
const errorMessage = response?.error_message ?? e.reason;
|
|
50
|
-
const isAllowanceError = response?.error_message?.includes(EthersErrorMessage.ERC20Allowance) || e.reason?.includes(EthersErrorMessage.ERC20Allowance);
|
|
51
|
-
if (isAllowanceError) {
|
|
52
|
-
return new TransactionError(LiFiErrorCode.AllowanceRequired, e.reason, errorMessage, e.stack);
|
|
53
|
-
}
|
|
54
|
-
// Error messages other than allowance error will be handled in catch block
|
|
55
|
-
throw new Error(e);
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
return new ProviderError(LiFiErrorCode.TransactionFailed, e.reason, defaultErrorMessage, e.stack);
|
|
59
|
-
}
|
|
60
|
-
case EthersErrorType.InsufficientFunds:
|
|
61
|
-
return new TransactionError(LiFiErrorCode.InsufficientFunds, e.message, await getTransactionNotSentMessage(step, process), e.stack);
|
|
62
|
-
case EthersErrorType.ActionRejected:
|
|
63
|
-
case MetaMaskProviderErrorCode.userRejectedRequest:
|
|
64
|
-
return new TransactionError(LiFiErrorCode.SignatureRejected, e.message, await getTransactionNotSentMessage(step, process), e.stack);
|
|
65
|
-
case LiFiErrorCode.TransactionUnprepared:
|
|
66
|
-
return new TransactionError(LiFiErrorCode.TransactionUnprepared, e.message, await getTransactionNotSentMessage(step, process), e.stack);
|
|
67
|
-
case LiFiErrorCode.ValidationError:
|
|
68
|
-
return new TransactionError(LiFiErrorCode.ValidationError, e.message, e.htmlMessage);
|
|
69
|
-
case LiFiErrorCode.TransactionCanceled:
|
|
70
|
-
return new TransactionError(LiFiErrorCode.TransactionCanceled, e.message, e.htmlMessage);
|
|
71
|
-
case LiFiErrorCode.ExchangeRateUpdateCanceled:
|
|
72
|
-
return new TransactionError(LiFiErrorCode.ExchangeRateUpdateCanceled, e.message, e.htmlMessage);
|
|
73
|
-
case LiFiErrorCode.WalletChangedDuringExecution:
|
|
74
|
-
return new TransactionError(LiFiErrorCode.WalletChangedDuringExecution, e.message, e.htmlMessage);
|
|
75
|
-
default: {
|
|
76
|
-
if (errorCode && typeof errorCode === 'number') {
|
|
77
|
-
if (Object.values(MetaMaskErrorCodes.rpc).includes(errorCode)) {
|
|
78
|
-
// rpc errors
|
|
79
|
-
// underpriced errors are sent as internal errors, so we need to parse the message manually
|
|
80
|
-
if (errorCode === MetaMaskErrorCodes.rpc.internal &&
|
|
81
|
-
(e.message?.includes(EthersErrorMessage.Underpriced) ||
|
|
82
|
-
e.message?.includes(EthersErrorMessage.LowReplacementFee))) {
|
|
83
|
-
return new RPCError(LiFiErrorCode.TransactionUnderpriced, ErrorMessage.TransactionUnderpriced, await getTransactionNotSentMessage(step, process), e.stack);
|
|
84
|
-
}
|
|
85
|
-
if (e.message?.includes(EthersErrorMessage.LowGas) ||
|
|
86
|
-
e.message?.includes(EthersErrorMessage.OutOfGas)) {
|
|
87
|
-
return new TransactionError(LiFiErrorCode.GasLimitError, ErrorMessage.GasLimitLow, await getTransactionNotSentMessage(step, process), e.stack);
|
|
88
|
-
}
|
|
89
|
-
return new RPCError(errorCode, getMessageFromCode(errorCode), await getTransactionNotSentMessage(step, process), e.stack);
|
|
90
|
-
}
|
|
91
|
-
// provider errors
|
|
92
|
-
if (Object.values(MetaMaskErrorCodes.provider).includes(errorCode)) {
|
|
93
|
-
return new ProviderError(errorCode, getMessageFromCode(errorCode), await getTransactionNotSentMessage(step, process), e.stack);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return new UnknownError(LiFiErrorCode.InternalError, e.message || ErrorMessage.UnknownError, undefined, e.stack);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
//# sourceMappingURL=parseError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseError.js","sourceRoot":"","sources":["../../utils/parseError.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,IAAI,kBAAkB,EAChC,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,aAAa,EACb,yBAAyB,EACzB,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,YAAY,GACb,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,CAAM,EACN,IAAe,EACf,OAAiB,EACG,EAAE;IACtB,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAA;IAEzC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,eAAe,CAAC,aAAa;YAChC,MAAM,mBAAmB,GAAG,MAAM,4BAA4B,CAC5D,IAAI,EACJ,OAAO,CACR,CAAA;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;gBAChD,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CACxC,CAAC,CAAC,eAAe,EACjB,IAAI,EAAE,MAAM,CAAC,WAAW,CACzB,CAAA;gBAED,MAAM,YAAY,GAAG,QAAQ,EAAE,aAAa,IAAI,CAAC,CAAC,MAAM,CAAA;gBAExD,MAAM,gBAAgB,GACpB,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAC/B,kBAAkB,CAAC,cAAc,CAClC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAA;gBAE5D,IAAI,gBAAgB,EAAE,CAAC;oBACrB,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,iBAAiB,EAC/B,CAAC,CAAC,MAAM,EACR,YAAY,EACZ,CAAC,CAAC,KAAK,CACR,CAAA;gBACH,CAAC;gBAED,2EAA2E;gBAC3E,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,aAAa,CACtB,aAAa,CAAC,iBAAiB,EAC/B,CAAC,CAAC,MAAM,EACR,mBAAmB,EACnB,CAAC,CAAC,KAAK,CACR,CAAA;YACH,CAAC;QACH,KAAK,eAAe,CAAC,iBAAiB;YACpC,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,iBAAiB,EAC/B,CAAC,CAAC,OAAO,EACT,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,EACjD,CAAC,CAAC,KAAK,CACR,CAAA;QACH,KAAK,eAAe,CAAC,cAAc,CAAC;QACpC,KAAK,yBAAyB,CAAC,mBAAmB;YAChD,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,iBAAiB,EAC/B,CAAC,CAAC,OAAO,EACT,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,EACjD,CAAC,CAAC,KAAK,CACR,CAAA;QACH,KAAK,aAAa,CAAC,qBAAqB;YACtC,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,qBAAqB,EACnC,CAAC,CAAC,OAAO,EACT,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,EACjD,CAAC,CAAC,KAAK,CACR,CAAA;QACH,KAAK,aAAa,CAAC,eAAe;YAChC,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,eAAe,EAC7B,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,WAAW,CACd,CAAA;QACH,KAAK,aAAa,CAAC,mBAAmB;YACpC,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,mBAAmB,EACjC,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,WAAW,CACd,CAAA;QACH,KAAK,aAAa,CAAC,0BAA0B;YAC3C,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,0BAA0B,EACxC,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,WAAW,CACd,CAAA;QACH,KAAK,aAAa,CAAC,4BAA4B;YAC7C,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,4BAA4B,EAC1C,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,WAAW,CACd,CAAA;QACH,OAAO,CAAC,CAAC,CAAC;YACR,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC/C,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAgB,CAAC,EAAE,CAAC;oBACrE,aAAa;oBACb,2FAA2F;oBAC3F,IACE,SAAS,KAAK,kBAAkB,CAAC,GAAG,CAAC,QAAQ;wBAC7C,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,WAAW,CAAC;4BAClD,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,EAC5D,CAAC;wBACD,OAAO,IAAI,QAAQ,CACjB,aAAa,CAAC,sBAAsB,EACpC,YAAY,CAAC,sBAAsB,EACnC,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,EACjD,CAAC,CAAC,KAAK,CACR,CAAA;oBACH,CAAC;oBAED,IACE,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC;wBAC9C,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAChD,CAAC;wBACD,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,aAAa,EAC3B,YAAY,CAAC,WAAW,EACxB,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,EACjD,CAAC,CAAC,KAAK,CACR,CAAA;oBACH,CAAC;oBAED,OAAO,IAAI,QAAQ,CACjB,SAAS,EACT,kBAAkB,CAAC,SAAS,CAAC,EAC7B,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,EACjD,CAAC,CAAC,KAAK,CACR,CAAA;gBACH,CAAC;gBAED,kBAAkB;gBAClB,IACE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAgB,CAAC,EACrE,CAAC;oBACD,OAAO,IAAI,aAAa,CACtB,SAAS,EACT,kBAAkB,CAAC,SAAS,CAAC,EAC7B,MAAM,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,EACjD,CAAC,CAAC,KAAK,CACR,CAAA;gBACH,CAAC;YACH,CAAC;YACD,OAAO,IAAI,YAAY,CACrB,aAAa,CAAC,aAAa,EAC3B,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,YAAY,EACtC,SAAS,EACT,CAAC,CAAC,KAAK,CACR,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseBackendError.d.ts","sourceRoot":"","sources":["../../utils/parseBackendError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAS5C,eAAO,MAAM,iBAAiB,MAAa,GAAG,KAAG,OAAO,CAAC,SAAS,CAwCjE,CAAA"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { LiFiStep, Process } from '@lifi/types';
|
|
2
|
-
import { LiFiError } from './errors.js';
|
|
3
|
-
/**
|
|
4
|
-
* Available MetaMask error codes:
|
|
5
|
-
*
|
|
6
|
-
* export const errorCodes: ErrorCodes = {
|
|
7
|
-
rpc: {
|
|
8
|
-
invalidInput: -32000,
|
|
9
|
-
resourceNotFound: -32001,
|
|
10
|
-
resourceUnavailable: -32002,
|
|
11
|
-
transactionRejected: -32003,
|
|
12
|
-
methodNotSupported: -32004,
|
|
13
|
-
limitExceeded: -32005,
|
|
14
|
-
parse: -32700,
|
|
15
|
-
invalidRequest: -32600,
|
|
16
|
-
methodNotFound: -32601,
|
|
17
|
-
invalidParams: -32602,
|
|
18
|
-
internal: -32603,
|
|
19
|
-
},
|
|
20
|
-
provider: {
|
|
21
|
-
userRejectedRequest: 4001,
|
|
22
|
-
unauthorized: 4100,
|
|
23
|
-
unsupportedMethod: 4200,
|
|
24
|
-
disconnected: 4900,
|
|
25
|
-
chainDisconnected: 4901,
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
*
|
|
29
|
-
* For more information about error codes supported by metamask check
|
|
30
|
-
* https://github.com/MetaMask/eth-rpc-errors
|
|
31
|
-
* https://eips.ethereum.org/EIPS/eip-1474#error-codes
|
|
32
|
-
* https://eips.ethereum.org/EIPS/eip-1193#provider-errors
|
|
33
|
-
*/
|
|
34
|
-
export declare const parseError: (e: any, step?: LiFiStep, process?: Process) => Promise<LiFiError>;
|
|
35
|
-
//# sourceMappingURL=parseError.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseError.d.ts","sourceRoot":"","sources":["../../utils/parseError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAMpD,OAAO,EAIL,SAAS,EAOV,MAAM,aAAa,CAAA;AAGpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,eAAO,MAAM,UAAU,MAClB,GAAG,SACC,QAAQ,YACL,OAAO,KAChB,OAAO,CAAC,SAAS,CAyJnB,CAAA"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type { LiFiError } from './errors.js'
|
|
2
|
-
import {
|
|
3
|
-
ErrorMessage,
|
|
4
|
-
NotFoundError,
|
|
5
|
-
ServerError,
|
|
6
|
-
SlippageError,
|
|
7
|
-
ValidationError,
|
|
8
|
-
} from './errors.js'
|
|
9
|
-
|
|
10
|
-
export const parseBackendError = async (e: any): Promise<LiFiError> => {
|
|
11
|
-
let data
|
|
12
|
-
try {
|
|
13
|
-
data = await e.response?.json()
|
|
14
|
-
} catch (error) {
|
|
15
|
-
// ignore
|
|
16
|
-
}
|
|
17
|
-
if (e.response?.status === 400) {
|
|
18
|
-
return new ValidationError(
|
|
19
|
-
data?.message || e.response?.statusText,
|
|
20
|
-
undefined,
|
|
21
|
-
e.stack
|
|
22
|
-
)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (e.response?.status === 404) {
|
|
26
|
-
return new NotFoundError(
|
|
27
|
-
data?.message || e.response?.statusText,
|
|
28
|
-
undefined,
|
|
29
|
-
e.stack
|
|
30
|
-
)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (e.response?.status === 409) {
|
|
34
|
-
return new SlippageError(
|
|
35
|
-
data?.message || e.response?.statusText,
|
|
36
|
-
ErrorMessage.SlippageError,
|
|
37
|
-
e.stack
|
|
38
|
-
)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (e.response?.status === 500) {
|
|
42
|
-
return new ServerError(
|
|
43
|
-
data?.message || e.response?.statusText,
|
|
44
|
-
undefined,
|
|
45
|
-
e.stack
|
|
46
|
-
)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return new ServerError(ErrorMessage.Default, undefined, e.stack)
|
|
50
|
-
}
|
package/src/utils/parseError.ts
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import type { LiFiStep, Process } from '@lifi/types'
|
|
2
|
-
import {
|
|
3
|
-
errorCodes as MetaMaskErrorCodes,
|
|
4
|
-
getMessageFromCode,
|
|
5
|
-
} from 'eth-rpc-errors'
|
|
6
|
-
import { fetchTxErrorDetails } from '../helpers.js'
|
|
7
|
-
import {
|
|
8
|
-
ErrorMessage,
|
|
9
|
-
EthersErrorMessage,
|
|
10
|
-
EthersErrorType,
|
|
11
|
-
LiFiError,
|
|
12
|
-
LiFiErrorCode,
|
|
13
|
-
MetaMaskProviderErrorCode,
|
|
14
|
-
ProviderError,
|
|
15
|
-
RPCError,
|
|
16
|
-
TransactionError,
|
|
17
|
-
UnknownError,
|
|
18
|
-
} from './errors.js'
|
|
19
|
-
import { getTransactionNotSentMessage } from './getTransactionMessage.js'
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Available MetaMask error codes:
|
|
23
|
-
*
|
|
24
|
-
* export const errorCodes: ErrorCodes = {
|
|
25
|
-
rpc: {
|
|
26
|
-
invalidInput: -32000,
|
|
27
|
-
resourceNotFound: -32001,
|
|
28
|
-
resourceUnavailable: -32002,
|
|
29
|
-
transactionRejected: -32003,
|
|
30
|
-
methodNotSupported: -32004,
|
|
31
|
-
limitExceeded: -32005,
|
|
32
|
-
parse: -32700,
|
|
33
|
-
invalidRequest: -32600,
|
|
34
|
-
methodNotFound: -32601,
|
|
35
|
-
invalidParams: -32602,
|
|
36
|
-
internal: -32603,
|
|
37
|
-
},
|
|
38
|
-
provider: {
|
|
39
|
-
userRejectedRequest: 4001,
|
|
40
|
-
unauthorized: 4100,
|
|
41
|
-
unsupportedMethod: 4200,
|
|
42
|
-
disconnected: 4900,
|
|
43
|
-
chainDisconnected: 4901,
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
*
|
|
47
|
-
* For more information about error codes supported by metamask check
|
|
48
|
-
* https://github.com/MetaMask/eth-rpc-errors
|
|
49
|
-
* https://eips.ethereum.org/EIPS/eip-1474#error-codes
|
|
50
|
-
* https://eips.ethereum.org/EIPS/eip-1193#provider-errors
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
export const parseError = async (
|
|
54
|
-
e: any,
|
|
55
|
-
step?: LiFiStep,
|
|
56
|
-
process?: Process
|
|
57
|
-
): Promise<LiFiError> => {
|
|
58
|
-
if (e instanceof LiFiError) {
|
|
59
|
-
return e
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const errorCode = e.code || e.cause?.code
|
|
63
|
-
|
|
64
|
-
switch (errorCode) {
|
|
65
|
-
case EthersErrorType.CallExecption:
|
|
66
|
-
const defaultErrorMessage = await getTransactionNotSentMessage(
|
|
67
|
-
step,
|
|
68
|
-
process
|
|
69
|
-
)
|
|
70
|
-
try {
|
|
71
|
-
if (!step?.action.fromChainId) {
|
|
72
|
-
throw new Error('fromChainId is not defined.')
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const response = await fetchTxErrorDetails(
|
|
76
|
-
e.transactionHash,
|
|
77
|
-
step?.action.fromChainId
|
|
78
|
-
)
|
|
79
|
-
|
|
80
|
-
const errorMessage = response?.error_message ?? e.reason
|
|
81
|
-
|
|
82
|
-
const isAllowanceError =
|
|
83
|
-
response?.error_message?.includes(
|
|
84
|
-
EthersErrorMessage.ERC20Allowance
|
|
85
|
-
) || e.reason?.includes(EthersErrorMessage.ERC20Allowance)
|
|
86
|
-
|
|
87
|
-
if (isAllowanceError) {
|
|
88
|
-
return new TransactionError(
|
|
89
|
-
LiFiErrorCode.AllowanceRequired,
|
|
90
|
-
e.reason,
|
|
91
|
-
errorMessage,
|
|
92
|
-
e.stack
|
|
93
|
-
)
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// Error messages other than allowance error will be handled in catch block
|
|
97
|
-
throw new Error(e)
|
|
98
|
-
} catch (error) {
|
|
99
|
-
return new ProviderError(
|
|
100
|
-
LiFiErrorCode.TransactionFailed,
|
|
101
|
-
e.reason,
|
|
102
|
-
defaultErrorMessage,
|
|
103
|
-
e.stack
|
|
104
|
-
)
|
|
105
|
-
}
|
|
106
|
-
case EthersErrorType.InsufficientFunds:
|
|
107
|
-
return new TransactionError(
|
|
108
|
-
LiFiErrorCode.InsufficientFunds,
|
|
109
|
-
e.message,
|
|
110
|
-
await getTransactionNotSentMessage(step, process),
|
|
111
|
-
e.stack
|
|
112
|
-
)
|
|
113
|
-
case EthersErrorType.ActionRejected:
|
|
114
|
-
case MetaMaskProviderErrorCode.userRejectedRequest:
|
|
115
|
-
return new TransactionError(
|
|
116
|
-
LiFiErrorCode.SignatureRejected,
|
|
117
|
-
e.message,
|
|
118
|
-
await getTransactionNotSentMessage(step, process),
|
|
119
|
-
e.stack
|
|
120
|
-
)
|
|
121
|
-
case LiFiErrorCode.TransactionUnprepared:
|
|
122
|
-
return new TransactionError(
|
|
123
|
-
LiFiErrorCode.TransactionUnprepared,
|
|
124
|
-
e.message,
|
|
125
|
-
await getTransactionNotSentMessage(step, process),
|
|
126
|
-
e.stack
|
|
127
|
-
)
|
|
128
|
-
case LiFiErrorCode.ValidationError:
|
|
129
|
-
return new TransactionError(
|
|
130
|
-
LiFiErrorCode.ValidationError,
|
|
131
|
-
e.message,
|
|
132
|
-
e.htmlMessage
|
|
133
|
-
)
|
|
134
|
-
case LiFiErrorCode.TransactionCanceled:
|
|
135
|
-
return new TransactionError(
|
|
136
|
-
LiFiErrorCode.TransactionCanceled,
|
|
137
|
-
e.message,
|
|
138
|
-
e.htmlMessage
|
|
139
|
-
)
|
|
140
|
-
case LiFiErrorCode.ExchangeRateUpdateCanceled:
|
|
141
|
-
return new TransactionError(
|
|
142
|
-
LiFiErrorCode.ExchangeRateUpdateCanceled,
|
|
143
|
-
e.message,
|
|
144
|
-
e.htmlMessage
|
|
145
|
-
)
|
|
146
|
-
case LiFiErrorCode.WalletChangedDuringExecution:
|
|
147
|
-
return new TransactionError(
|
|
148
|
-
LiFiErrorCode.WalletChangedDuringExecution,
|
|
149
|
-
e.message,
|
|
150
|
-
e.htmlMessage
|
|
151
|
-
)
|
|
152
|
-
default: {
|
|
153
|
-
if (errorCode && typeof errorCode === 'number') {
|
|
154
|
-
if (Object.values(MetaMaskErrorCodes.rpc).includes(errorCode as any)) {
|
|
155
|
-
// rpc errors
|
|
156
|
-
// underpriced errors are sent as internal errors, so we need to parse the message manually
|
|
157
|
-
if (
|
|
158
|
-
errorCode === MetaMaskErrorCodes.rpc.internal &&
|
|
159
|
-
(e.message?.includes(EthersErrorMessage.Underpriced) ||
|
|
160
|
-
e.message?.includes(EthersErrorMessage.LowReplacementFee))
|
|
161
|
-
) {
|
|
162
|
-
return new RPCError(
|
|
163
|
-
LiFiErrorCode.TransactionUnderpriced,
|
|
164
|
-
ErrorMessage.TransactionUnderpriced,
|
|
165
|
-
await getTransactionNotSentMessage(step, process),
|
|
166
|
-
e.stack
|
|
167
|
-
)
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
if (
|
|
171
|
-
e.message?.includes(EthersErrorMessage.LowGas) ||
|
|
172
|
-
e.message?.includes(EthersErrorMessage.OutOfGas)
|
|
173
|
-
) {
|
|
174
|
-
return new TransactionError(
|
|
175
|
-
LiFiErrorCode.GasLimitError,
|
|
176
|
-
ErrorMessage.GasLimitLow,
|
|
177
|
-
await getTransactionNotSentMessage(step, process),
|
|
178
|
-
e.stack
|
|
179
|
-
)
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return new RPCError(
|
|
183
|
-
errorCode,
|
|
184
|
-
getMessageFromCode(errorCode),
|
|
185
|
-
await getTransactionNotSentMessage(step, process),
|
|
186
|
-
e.stack
|
|
187
|
-
)
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// provider errors
|
|
191
|
-
if (
|
|
192
|
-
Object.values(MetaMaskErrorCodes.provider).includes(errorCode as any)
|
|
193
|
-
) {
|
|
194
|
-
return new ProviderError(
|
|
195
|
-
errorCode,
|
|
196
|
-
getMessageFromCode(errorCode),
|
|
197
|
-
await getTransactionNotSentMessage(step, process),
|
|
198
|
-
e.stack
|
|
199
|
-
)
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
return new UnknownError(
|
|
203
|
-
LiFiErrorCode.InternalError,
|
|
204
|
-
e.message || ErrorMessage.UnknownError,
|
|
205
|
-
undefined,
|
|
206
|
-
e.stack
|
|
207
|
-
)
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|