@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.
Files changed (201) hide show
  1. package/package.json +3 -3
  2. package/src/_cjs/core/EVM/EVMStepExecutor.js +12 -11
  3. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
  4. package/src/_cjs/core/EVM/checkAllowance.js +3 -4
  5. package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
  6. package/src/_cjs/core/EVM/multisig.js +4 -3
  7. package/src/_cjs/core/EVM/multisig.js.map +1 -1
  8. package/src/_cjs/core/EVM/parseEVMErrors.js +38 -0
  9. package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -0
  10. package/src/_cjs/core/EVM/publicClient.js +8 -3
  11. package/src/_cjs/core/EVM/publicClient.js.map +1 -1
  12. package/src/_cjs/core/EVM/switchChain.js +4 -3
  13. package/src/_cjs/core/EVM/switchChain.js.map +1 -1
  14. package/src/_cjs/core/Solana/SolanaStepExecutor.js +42 -24
  15. package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
  16. package/src/_cjs/core/Solana/connection.js.map +1 -1
  17. package/src/_cjs/core/Solana/parseSolanaErrors.js +33 -0
  18. package/src/_cjs/core/Solana/parseSolanaErrors.js.map +1 -0
  19. package/src/_cjs/core/checkBalance.js +2 -2
  20. package/src/_cjs/core/checkBalance.js.map +1 -1
  21. package/src/_cjs/core/stepComparison.js +3 -3
  22. package/src/_cjs/core/stepComparison.js.map +1 -1
  23. package/src/_cjs/core/waitForReceivingTransaction.js +1 -1
  24. package/src/_cjs/core/waitForReceivingTransaction.js.map +1 -1
  25. package/src/_cjs/errors/SDKError.js +48 -0
  26. package/src/_cjs/errors/SDKError.js.map +1 -0
  27. package/src/_cjs/errors/baseError.js +30 -0
  28. package/src/_cjs/errors/baseError.js.map +1 -0
  29. package/src/_cjs/errors/constants.js +48 -0
  30. package/src/_cjs/errors/constants.js.map +1 -0
  31. package/src/_cjs/errors/errors.js +48 -0
  32. package/src/_cjs/errors/errors.js.map +1 -0
  33. package/src/_cjs/errors/httpError.js +101 -0
  34. package/src/_cjs/errors/httpError.js.map +1 -0
  35. package/src/_cjs/errors/index.js +11 -0
  36. package/src/_cjs/errors/index.js.map +1 -0
  37. package/src/_cjs/errors/utils/baseErrorRootCause.js +21 -0
  38. package/src/_cjs/errors/utils/baseErrorRootCause.js.map +1 -0
  39. package/src/_cjs/errors/utils/rootCause.js +12 -0
  40. package/src/_cjs/errors/utils/rootCause.js.map +1 -0
  41. package/src/_cjs/helpers.js +13 -8
  42. package/src/_cjs/helpers.js.map +1 -1
  43. package/src/_cjs/index.js +2 -4
  44. package/src/_cjs/index.js.map +1 -1
  45. package/src/_cjs/request.js +37 -34
  46. package/src/_cjs/request.js.map +1 -1
  47. package/src/_cjs/services/api.js +61 -132
  48. package/src/_cjs/services/api.js.map +1 -1
  49. package/src/_cjs/services/balance.js +1 -1
  50. package/src/_cjs/services/balance.js.map +1 -1
  51. package/src/_cjs/types/request.js +3 -0
  52. package/src/_cjs/types/request.js.map +1 -0
  53. package/src/_cjs/utils/errors.js +0 -183
  54. package/src/_cjs/utils/errors.js.map +1 -1
  55. package/src/_cjs/utils/index.js +1 -2
  56. package/src/_cjs/utils/index.js.map +1 -1
  57. package/src/_cjs/version.js +1 -1
  58. package/src/_esm/core/EVM/EVMStepExecutor.js +8 -7
  59. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
  60. package/src/_esm/core/EVM/checkAllowance.js +3 -4
  61. package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
  62. package/src/_esm/core/EVM/multisig.js +2 -1
  63. package/src/_esm/core/EVM/multisig.js.map +1 -1
  64. package/src/_esm/core/EVM/parseEVMErrors.js +35 -0
  65. package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -0
  66. package/src/_esm/core/EVM/publicClient.js +9 -4
  67. package/src/_esm/core/EVM/publicClient.js.map +1 -1
  68. package/src/_esm/core/EVM/switchChain.js +2 -1
  69. package/src/_esm/core/EVM/switchChain.js.map +1 -1
  70. package/src/_esm/core/Solana/SolanaStepExecutor.js +52 -25
  71. package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
  72. package/src/_esm/core/Solana/connection.js +2 -3
  73. package/src/_esm/core/Solana/connection.js.map +1 -1
  74. package/src/_esm/core/Solana/parseSolanaErrors.js +29 -0
  75. package/src/_esm/core/Solana/parseSolanaErrors.js.map +1 -0
  76. package/src/_esm/core/checkBalance.js +2 -2
  77. package/src/_esm/core/checkBalance.js.map +1 -1
  78. package/src/_esm/core/stepComparison.js +3 -3
  79. package/src/_esm/core/stepComparison.js.map +1 -1
  80. package/src/_esm/core/waitForReceivingTransaction.js +1 -1
  81. package/src/_esm/core/waitForReceivingTransaction.js.map +1 -1
  82. package/src/_esm/errors/SDKError.js +47 -0
  83. package/src/_esm/errors/SDKError.js.map +1 -0
  84. package/src/_esm/errors/baseError.js +28 -0
  85. package/src/_esm/errors/baseError.js.map +1 -0
  86. package/src/_esm/errors/constants.js +45 -0
  87. package/src/_esm/errors/constants.js.map +1 -0
  88. package/src/_esm/errors/errors.js +38 -0
  89. package/src/_esm/errors/errors.js.map +1 -0
  90. package/src/_esm/errors/httpError.js +97 -0
  91. package/src/_esm/errors/httpError.js.map +1 -0
  92. package/src/_esm/errors/index.js +8 -0
  93. package/src/_esm/errors/index.js.map +1 -0
  94. package/src/_esm/errors/utils/baseErrorRootCause.js +16 -0
  95. package/src/_esm/errors/utils/baseErrorRootCause.js.map +1 -0
  96. package/src/_esm/errors/utils/rootCause.js +8 -0
  97. package/src/_esm/errors/utils/rootCause.js.map +1 -0
  98. package/src/_esm/helpers.js +16 -9
  99. package/src/_esm/helpers.js.map +1 -1
  100. package/src/_esm/index.js +2 -2
  101. package/src/_esm/index.js.map +1 -1
  102. package/src/_esm/request.js +38 -35
  103. package/src/_esm/request.js.map +1 -1
  104. package/src/_esm/services/api.js +61 -133
  105. package/src/_esm/services/api.js.map +1 -1
  106. package/src/_esm/services/balance.js +4 -4
  107. package/src/_esm/services/balance.js.map +1 -1
  108. package/src/_esm/types/request.js +2 -0
  109. package/src/_esm/types/request.js.map +1 -0
  110. package/src/_esm/utils/errors.js +1 -173
  111. package/src/_esm/utils/errors.js.map +1 -1
  112. package/src/_esm/utils/index.js +1 -2
  113. package/src/_esm/utils/index.js.map +1 -1
  114. package/src/_esm/version.js +1 -1
  115. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
  116. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
  117. package/src/_types/core/EVM/multisig.d.ts.map +1 -1
  118. package/src/_types/core/EVM/parseEVMErrors.d.ts +4 -0
  119. package/src/_types/core/EVM/parseEVMErrors.d.ts.map +1 -0
  120. package/src/_types/core/EVM/publicClient.d.ts.map +1 -1
  121. package/src/_types/core/EVM/switchChain.d.ts.map +1 -1
  122. package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
  123. package/src/_types/core/Solana/connection.d.ts +2 -3
  124. package/src/_types/core/Solana/connection.d.ts.map +1 -1
  125. package/src/_types/core/Solana/parseSolanaErrors.d.ts +4 -0
  126. package/src/_types/core/Solana/parseSolanaErrors.d.ts.map +1 -0
  127. package/src/_types/core/stepComparison.d.ts.map +1 -1
  128. package/src/_types/errors/SDKError.d.ts +12 -0
  129. package/src/_types/errors/SDKError.d.ts.map +1 -0
  130. package/src/_types/errors/baseError.d.ts +7 -0
  131. package/src/_types/errors/baseError.d.ts.map +1 -0
  132. package/src/_types/errors/constants.d.ts +43 -0
  133. package/src/_types/errors/constants.d.ts.map +1 -0
  134. package/src/_types/errors/errors.d.ts +24 -0
  135. package/src/_types/errors/errors.d.ts.map +1 -0
  136. package/src/_types/errors/httpError.d.ts +21 -0
  137. package/src/_types/errors/httpError.d.ts.map +1 -0
  138. package/src/_types/errors/index.d.ts +8 -0
  139. package/src/_types/errors/index.d.ts.map +1 -0
  140. package/src/_types/errors/utils/baseErrorRootCause.d.ts +4 -0
  141. package/src/_types/errors/utils/baseErrorRootCause.d.ts.map +1 -0
  142. package/src/_types/errors/utils/rootCause.d.ts +2 -0
  143. package/src/_types/errors/utils/rootCause.d.ts.map +1 -0
  144. package/src/_types/helpers.d.ts +5 -4
  145. package/src/_types/helpers.d.ts.map +1 -1
  146. package/src/_types/index.d.ts +2 -2
  147. package/src/_types/index.d.ts.map +1 -1
  148. package/src/_types/request.d.ts +1 -5
  149. package/src/_types/request.d.ts.map +1 -1
  150. package/src/_types/services/api.d.ts.map +1 -1
  151. package/src/_types/services/balance.d.ts +3 -3
  152. package/src/_types/types/request.d.ts +4 -0
  153. package/src/_types/types/request.d.ts.map +1 -0
  154. package/src/_types/utils/errors.d.ts +0 -109
  155. package/src/_types/utils/errors.d.ts.map +1 -1
  156. package/src/_types/utils/index.d.ts +1 -2
  157. package/src/_types/utils/index.d.ts.map +1 -1
  158. package/src/_types/version.d.ts +1 -1
  159. package/src/core/EVM/EVMStepExecutor.ts +14 -12
  160. package/src/core/EVM/checkAllowance.ts +3 -4
  161. package/src/core/EVM/multisig.ts +2 -1
  162. package/src/core/EVM/parseEVMErrors.ts +60 -0
  163. package/src/core/EVM/publicClient.ts +9 -4
  164. package/src/core/EVM/switchChain.ts +2 -1
  165. package/src/core/Solana/SolanaStepExecutor.ts +67 -34
  166. package/src/core/Solana/connection.ts +2 -3
  167. package/src/core/Solana/parseSolanaErrors.ts +45 -0
  168. package/src/core/checkBalance.ts +2 -2
  169. package/src/core/stepComparison.ts +3 -4
  170. package/src/core/waitForReceivingTransaction.ts +1 -1
  171. package/src/errors/SDKError.ts +25 -0
  172. package/src/errors/baseError.ts +22 -0
  173. package/src/errors/constants.ts +45 -0
  174. package/src/errors/errors.ts +44 -0
  175. package/src/errors/httpError.ts +93 -0
  176. package/src/errors/index.ts +7 -0
  177. package/src/errors/utils/baseErrorRootCause.ts +18 -0
  178. package/src/errors/utils/rootCause.ts +7 -0
  179. package/src/helpers.ts +23 -16
  180. package/src/index.ts +2 -2
  181. package/src/request.ts +52 -38
  182. package/src/services/api.ts +109 -157
  183. package/src/services/balance.ts +4 -4
  184. package/src/types/request.ts +3 -0
  185. package/src/utils/errors.ts +0 -233
  186. package/src/utils/index.ts +1 -2
  187. package/src/version.ts +1 -1
  188. package/src/_cjs/utils/parseBackendError.js +0 -27
  189. package/src/_cjs/utils/parseBackendError.js.map +0 -1
  190. package/src/_cjs/utils/parseError.js +0 -69
  191. package/src/_cjs/utils/parseError.js.map +0 -1
  192. package/src/_esm/utils/parseBackendError.js +0 -24
  193. package/src/_esm/utils/parseBackendError.js.map +0 -1
  194. package/src/_esm/utils/parseError.js +0 -100
  195. package/src/_esm/utils/parseError.js.map +0 -1
  196. package/src/_types/utils/parseBackendError.d.ts +0 -3
  197. package/src/_types/utils/parseBackendError.d.ts.map +0 -1
  198. package/src/_types/utils/parseError.d.ts +0 -35
  199. package/src/_types/utils/parseError.d.ts.map +0 -1
  200. package/src/utils/parseBackendError.ts +0 -50
  201. package/src/utils/parseError.ts +0 -210
@@ -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
- }