@lifi/sdk 3.0.2-beta.0 → 3.1.0-beta.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 +3 -4
- 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/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/_esm/core/EVM/EVMStepExecutor.js +8 -7
- package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_esm/core/EVM/checkAllowance.js +3 -4
- 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/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/_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/switchChain.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/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/core/EVM/EVMStepExecutor.ts +14 -12
- package/src/core/EVM/checkAllowance.ts +3 -4
- 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/switchChain.ts +2 -1
- 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/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
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
|
-
}
|