@lifi/sdk 3.0.0-alpha.3 → 3.0.0-alpha.31

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 (448) hide show
  1. package/package.json +31 -86
  2. package/src/_cjs/config.js +48 -0
  3. package/src/_cjs/config.js.map +1 -0
  4. package/{dist/cjs → src/_cjs}/constants.js +3 -5
  5. package/src/_cjs/constants.js.map +1 -0
  6. package/src/_cjs/core/BaseStepExecutor.js +55 -0
  7. package/src/_cjs/core/BaseStepExecutor.js.map +1 -0
  8. package/src/_cjs/core/EVM/EVM.js +46 -0
  9. package/src/_cjs/core/EVM/EVM.js.map +1 -0
  10. package/src/_cjs/core/EVM/EVMStepExecutor.js +277 -0
  11. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -0
  12. package/{dist/cjs/types → src/_cjs/core/EVM}/abi.js +1 -0
  13. package/src/_cjs/core/EVM/abi.js.map +1 -0
  14. package/{dist/cjs/execution → src/_cjs/core/EVM}/checkAllowance.js +12 -12
  15. package/src/_cjs/core/EVM/checkAllowance.js.map +1 -0
  16. package/{dist/cjs/allowance → src/_cjs/core/EVM}/getAllowance.js +13 -17
  17. package/src/_cjs/core/EVM/getAllowance.js.map +1 -0
  18. package/{dist/cjs/balance/getBalance.js → src/_cjs/core/EVM/getEVMBalance.js} +20 -22
  19. package/src/_cjs/core/EVM/getEVMBalance.js.map +1 -0
  20. package/{dist/cjs/execution → src/_cjs/core/EVM}/multisig.js +7 -11
  21. package/src/_cjs/core/EVM/multisig.js.map +1 -0
  22. package/src/_cjs/core/EVM/publicClient.js +35 -0
  23. package/src/_cjs/core/EVM/publicClient.js.map +1 -0
  24. package/src/_cjs/core/EVM/setAllowance.js +71 -0
  25. package/src/_cjs/core/EVM/setAllowance.js.map +1 -0
  26. package/src/_cjs/core/EVM/switchChain.js +37 -0
  27. package/src/_cjs/core/EVM/switchChain.js.map +1 -0
  28. package/src/_cjs/core/EVM/types.js +9 -0
  29. package/src/_cjs/core/EVM/types.js.map +1 -0
  30. package/{dist/cjs/utils/getMaxPriorityFeePerGas.js → src/_cjs/core/EVM/utils.js} +13 -3
  31. package/src/_cjs/core/EVM/utils.js.map +1 -0
  32. package/src/_cjs/core/Solana/Solana.js +44 -0
  33. package/src/_cjs/core/Solana/Solana.js.map +1 -0
  34. package/src/_cjs/core/Solana/SolanaStepExecutor.js +157 -0
  35. package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -0
  36. package/src/_cjs/core/Solana/connection.js +18 -0
  37. package/src/_cjs/core/Solana/connection.js.map +1 -0
  38. package/src/_cjs/core/Solana/getSolanaBalance.js +60 -0
  39. package/src/_cjs/core/Solana/getSolanaBalance.js.map +1 -0
  40. package/src/_cjs/core/Solana/types.js +10 -0
  41. package/src/_cjs/core/Solana/types.js.map +1 -0
  42. package/src/_cjs/core/StatusManager.js +167 -0
  43. package/src/_cjs/core/StatusManager.js.map +1 -0
  44. package/{dist/cjs/execution → src/_cjs/core}/checkBalance.js +5 -5
  45. package/src/_cjs/core/checkBalance.js.map +1 -0
  46. package/src/_cjs/core/execution.js +134 -0
  47. package/src/_cjs/core/execution.js.map +1 -0
  48. package/src/_cjs/core/executionState.js +23 -0
  49. package/src/_cjs/core/executionState.js.map +1 -0
  50. package/src/_cjs/core/index.js +7 -0
  51. package/src/_cjs/core/index.js.map +1 -0
  52. package/src/_cjs/core/prepareRestart.js +23 -0
  53. package/src/_cjs/core/prepareRestart.js.map +1 -0
  54. package/src/_cjs/core/provider.js +15 -0
  55. package/src/_cjs/core/provider.js.map +1 -0
  56. package/src/_cjs/core/stepComparison.js +25 -0
  57. package/src/_cjs/core/stepComparison.js.map +1 -0
  58. package/{dist/cjs/allowance → src/_cjs/core}/types.js +1 -0
  59. package/src/_cjs/core/types.js.map +1 -0
  60. package/{dist/cjs/execution → src/_cjs/core}/utils.js +16 -10
  61. package/src/_cjs/core/utils.js.map +1 -0
  62. package/{dist/cjs/execution → src/_cjs/core}/waitForReceivingTransaction.js +11 -12
  63. package/src/_cjs/core/waitForReceivingTransaction.js.map +1 -0
  64. package/src/_cjs/createConfig.js +50 -0
  65. package/src/_cjs/createConfig.js.map +1 -0
  66. package/src/_cjs/helpers.js +57 -0
  67. package/src/_cjs/helpers.js.map +1 -0
  68. package/src/_cjs/index.js +20 -0
  69. package/src/_cjs/index.js.map +1 -0
  70. package/src/_cjs/package.json +1 -0
  71. package/src/_cjs/request.js +66 -0
  72. package/src/_cjs/request.js.map +1 -0
  73. package/src/_cjs/services/api.js +304 -0
  74. package/src/_cjs/services/api.js.map +1 -0
  75. package/src/_cjs/services/balance.js +49 -0
  76. package/src/_cjs/services/balance.js.map +1 -0
  77. package/{dist/cjs → src/_cjs}/typeguards.js +1 -0
  78. package/src/_cjs/typeguards.js.map +1 -0
  79. package/src/_cjs/types/index.js +5 -0
  80. package/src/_cjs/types/index.js.map +1 -0
  81. package/{dist/cjs/types/internal.types.js → src/_cjs/types/internal.js} +1 -0
  82. package/src/_cjs/types/internal.js.map +1 -0
  83. package/{dist/cjs → src/_cjs}/utils/errors.js +25 -3
  84. package/src/_cjs/utils/errors.js.map +1 -0
  85. package/src/_cjs/utils/getTransactionMessage.js +31 -0
  86. package/src/_cjs/utils/getTransactionMessage.js.map +1 -0
  87. package/src/_cjs/utils/index.js +9 -0
  88. package/src/_cjs/utils/index.js.map +1 -0
  89. package/{dist/cjs → src/_cjs}/utils/median.js +1 -0
  90. package/src/_cjs/utils/median.js.map +1 -0
  91. package/src/_cjs/utils/parseBackendError.js +27 -0
  92. package/src/_cjs/utils/parseBackendError.js.map +1 -0
  93. package/src/_cjs/utils/parseError.js +67 -0
  94. package/src/_cjs/utils/parseError.js.map +1 -0
  95. package/{dist/cjs → src/_cjs}/utils/utils.js +5 -11
  96. package/src/_cjs/utils/utils.js.map +1 -0
  97. package/{dist/cjs → src/_cjs}/version.js +2 -1
  98. package/src/_cjs/version.js.map +1 -0
  99. package/src/_esm/config.js +45 -0
  100. package/src/_esm/config.js.map +1 -0
  101. package/{dist → src/_esm}/constants.js +2 -4
  102. package/src/_esm/constants.js.map +1 -0
  103. package/src/_esm/core/BaseStepExecutor.js +52 -0
  104. package/src/_esm/core/BaseStepExecutor.js.map +1 -0
  105. package/src/_esm/core/EVM/EVM.js +42 -0
  106. package/src/_esm/core/EVM/EVM.js.map +1 -0
  107. package/src/_esm/core/EVM/EVMStepExecutor.js +305 -0
  108. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -0
  109. package/{dist/types → src/_esm/core/EVM}/abi.js +1 -0
  110. package/src/_esm/core/EVM/abi.js.map +1 -0
  111. package/{dist/execution → src/_esm/core/EVM}/checkAllowance.js +8 -6
  112. package/src/_esm/core/EVM/checkAllowance.js.map +1 -0
  113. package/{dist/allowance → src/_esm/core/EVM}/getAllowance.js +19 -6
  114. package/src/_esm/core/EVM/getAllowance.js.map +1 -0
  115. package/{dist/balance/getBalance.js → src/_esm/core/EVM/getEVMBalance.js} +10 -12
  116. package/src/_esm/core/EVM/getEVMBalance.js.map +1 -0
  117. package/{dist/execution → src/_esm/core/EVM}/multisig.js +5 -6
  118. package/src/_esm/core/EVM/multisig.js.map +1 -0
  119. package/src/_esm/core/EVM/publicClient.js +37 -0
  120. package/src/_esm/core/EVM/publicClient.js.map +1 -0
  121. package/{dist/allowance → src/_esm/core/EVM}/setAllowance.js +46 -11
  122. package/src/_esm/core/EVM/setAllowance.js.map +1 -0
  123. package/{dist/execution → src/_esm/core/EVM}/switchChain.js +5 -3
  124. package/src/_esm/core/EVM/switchChain.js.map +1 -0
  125. package/src/_esm/core/EVM/types.js +6 -0
  126. package/src/_esm/core/EVM/types.js.map +1 -0
  127. package/{dist/utils/getMaxPriorityFeePerGas.js → src/_esm/core/EVM/utils.js} +11 -1
  128. package/src/_esm/core/EVM/utils.js.map +1 -0
  129. package/src/_esm/core/Solana/Solana.js +40 -0
  130. package/src/_esm/core/Solana/Solana.js.map +1 -0
  131. package/src/_esm/core/Solana/SolanaStepExecutor.js +158 -0
  132. package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -0
  133. package/src/_esm/core/Solana/connection.js +19 -0
  134. package/src/_esm/core/Solana/connection.js.map +1 -0
  135. package/src/_esm/core/Solana/getSolanaBalance.js +56 -0
  136. package/src/_esm/core/Solana/getSolanaBalance.js.map +1 -0
  137. package/src/_esm/core/Solana/types.js +7 -0
  138. package/src/_esm/core/Solana/types.js.map +1 -0
  139. package/src/_esm/core/StatusManager.js +203 -0
  140. package/src/_esm/core/StatusManager.js.map +1 -0
  141. package/{dist/execution → src/_esm/core}/checkBalance.js +3 -2
  142. package/src/_esm/core/checkBalance.js.map +1 -0
  143. package/src/_esm/core/execution.js +173 -0
  144. package/src/_esm/core/execution.js.map +1 -0
  145. package/src/_esm/core/executionState.js +20 -0
  146. package/src/_esm/core/executionState.js.map +1 -0
  147. package/src/_esm/core/index.js +4 -0
  148. package/src/_esm/core/index.js.map +1 -0
  149. package/src/_esm/core/prepareRestart.js +64 -0
  150. package/src/_esm/core/prepareRestart.js.map +1 -0
  151. package/src/_esm/core/provider.js +11 -0
  152. package/src/_esm/core/provider.js.map +1 -0
  153. package/{dist/execution → src/_esm/core}/stepComparison.js +7 -5
  154. package/src/_esm/core/stepComparison.js.map +1 -0
  155. package/src/_esm/core/types.js +2 -0
  156. package/src/_esm/core/types.js.map +1 -0
  157. package/{dist/execution → src/_esm/core}/utils.js +14 -0
  158. package/src/_esm/core/utils.js.map +1 -0
  159. package/{dist/execution → src/_esm/core}/waitForReceivingTransaction.js +9 -7
  160. package/src/_esm/core/waitForReceivingTransaction.js.map +1 -0
  161. package/src/_esm/createConfig.js +47 -0
  162. package/src/_esm/createConfig.js.map +1 -0
  163. package/{dist → src/_esm}/helpers.js +5 -17
  164. package/src/_esm/helpers.js.map +1 -0
  165. package/src/_esm/index.js +12 -0
  166. package/src/_esm/index.js.map +1 -0
  167. package/src/_esm/package.json +1 -0
  168. package/{dist → src/_esm}/request.js +23 -13
  169. package/src/_esm/request.js.map +1 -0
  170. package/src/_esm/services/api.js +372 -0
  171. package/src/_esm/services/api.js.map +1 -0
  172. package/src/_esm/services/balance.js +65 -0
  173. package/src/_esm/services/balance.js.map +1 -0
  174. package/{dist → src/_esm}/typeguards.js +1 -0
  175. package/src/_esm/typeguards.js.map +1 -0
  176. package/src/_esm/types/index.js +2 -0
  177. package/src/_esm/types/index.js.map +1 -0
  178. package/src/_esm/types/internal.js +2 -0
  179. package/src/_esm/types/internal.js.map +1 -0
  180. package/{dist → src/_esm}/utils/errors.js +25 -0
  181. package/src/_esm/utils/errors.js.map +1 -0
  182. package/src/_esm/utils/getTransactionMessage.js +28 -0
  183. package/src/_esm/utils/getTransactionMessage.js.map +1 -0
  184. package/src/_esm/utils/index.js +6 -0
  185. package/src/_esm/utils/index.js.map +1 -0
  186. package/{dist → src/_esm}/utils/median.js +1 -0
  187. package/src/_esm/utils/median.js.map +1 -0
  188. package/src/_esm/utils/parseBackendError.js +24 -0
  189. package/src/_esm/utils/parseBackendError.js.map +1 -0
  190. package/{dist → src/_esm}/utils/parseError.js +4 -53
  191. package/src/_esm/utils/parseError.js.map +1 -0
  192. package/{dist → src/_esm}/utils/utils.js +2 -1
  193. package/src/_esm/utils/utils.js.map +1 -0
  194. package/src/_esm/version.js +3 -0
  195. package/src/_esm/version.js.map +1 -0
  196. package/src/_types/config.d.ts +11 -0
  197. package/src/_types/config.d.ts.map +1 -0
  198. package/{dist/cjs → src/_types}/constants.d.ts +2 -4
  199. package/src/_types/constants.d.ts.map +1 -0
  200. package/src/_types/core/BaseStepExecutor.d.ts +13 -0
  201. package/src/_types/core/BaseStepExecutor.d.ts.map +1 -0
  202. package/src/_types/core/EVM/EVM.d.ts +3 -0
  203. package/src/_types/core/EVM/EVM.d.ts.map +1 -0
  204. package/src/_types/core/EVM/EVMStepExecutor.d.ts +16 -0
  205. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -0
  206. package/{dist/cjs/types → src/_types/core/EVM}/abi.d.ts +1 -0
  207. package/src/_types/core/EVM/abi.d.ts.map +1 -0
  208. package/src/_types/core/EVM/checkAllowance.d.ts +6 -0
  209. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -0
  210. package/{dist/cjs/allowance → src/_types/core/EVM}/getAllowance.d.ts +15 -1
  211. package/src/_types/core/EVM/getAllowance.d.ts.map +1 -0
  212. package/src/_types/core/EVM/getEVMBalance.d.ts +3 -0
  213. package/src/_types/core/EVM/getEVMBalance.d.ts.map +1 -0
  214. package/src/_types/core/EVM/multisig.d.ts +6 -0
  215. package/src/_types/core/EVM/multisig.d.ts.map +1 -0
  216. package/src/_types/core/EVM/publicClient.d.ts +8 -0
  217. package/src/_types/core/EVM/publicClient.d.ts.map +1 -0
  218. package/src/_types/core/EVM/setAllowance.d.ts +25 -0
  219. package/src/_types/core/EVM/setAllowance.d.ts.map +1 -0
  220. package/{dist/cjs/execution → src/_types/core/EVM}/switchChain.d.ts +5 -4
  221. package/src/_types/core/EVM/switchChain.d.ts.map +1 -0
  222. package/src/_types/core/EVM/types.d.ts +57 -0
  223. package/src/_types/core/EVM/types.d.ts.map +1 -0
  224. package/src/_types/core/EVM/utils.d.ts +5 -0
  225. package/src/_types/core/EVM/utils.d.ts.map +1 -0
  226. package/src/_types/core/Solana/Solana.d.ts +3 -0
  227. package/src/_types/core/Solana/Solana.d.ts.map +1 -0
  228. package/src/_types/core/Solana/SolanaStepExecutor.d.ts +12 -0
  229. package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -0
  230. package/src/_types/core/Solana/connection.d.ts +8 -0
  231. package/src/_types/core/Solana/connection.d.ts.map +1 -0
  232. package/src/_types/core/Solana/getSolanaBalance.d.ts +3 -0
  233. package/src/_types/core/Solana/getSolanaBalance.d.ts.map +1 -0
  234. package/src/_types/core/Solana/types.d.ts +13 -0
  235. package/src/_types/core/Solana/types.d.ts.map +1 -0
  236. package/{dist/cjs/execution → src/_types/core}/StatusManager.d.ts +13 -16
  237. package/src/_types/core/StatusManager.d.ts.map +1 -0
  238. package/src/_types/core/checkBalance.d.ts +3 -0
  239. package/src/_types/core/checkBalance.d.ts.map +1 -0
  240. package/src/_types/core/execution.d.ts +42 -0
  241. package/src/_types/core/execution.d.ts.map +1 -0
  242. package/src/_types/core/executionState.d.ts +15 -0
  243. package/src/_types/core/executionState.d.ts.map +1 -0
  244. package/src/_types/core/index.d.ts +4 -0
  245. package/src/_types/core/index.d.ts.map +1 -0
  246. package/src/_types/core/prepareRestart.d.ts +3 -0
  247. package/src/_types/core/prepareRestart.d.ts.map +1 -0
  248. package/src/_types/core/provider.d.ts +3 -0
  249. package/src/_types/core/provider.d.ts.map +1 -0
  250. package/{dist/execution → src/_types/core}/stepComparison.d.ts +7 -4
  251. package/src/_types/core/stepComparison.d.ts.map +1 -0
  252. package/src/_types/core/types.d.ts +80 -0
  253. package/src/_types/core/types.d.ts.map +1 -0
  254. package/{dist/execution → src/_types/core}/utils.d.ts +5 -2
  255. package/src/_types/core/utils.d.ts.map +1 -0
  256. package/src/_types/core/waitForReceivingTransaction.d.ts +4 -0
  257. package/src/_types/core/waitForReceivingTransaction.d.ts.map +1 -0
  258. package/src/_types/createConfig.d.ts +7 -0
  259. package/src/_types/createConfig.d.ts.map +1 -0
  260. package/{dist → src/_types}/helpers.d.ts +4 -3
  261. package/src/_types/helpers.d.ts.map +1 -0
  262. package/src/_types/index.d.ts +12 -0
  263. package/src/_types/index.d.ts.map +1 -0
  264. package/{dist → src/_types}/request.d.ts +1 -0
  265. package/src/_types/request.d.ts.map +1 -0
  266. package/src/_types/services/api.d.ts +88 -0
  267. package/src/_types/services/api.d.ts.map +1 -0
  268. package/src/_types/services/balance.d.ts +30 -0
  269. package/src/_types/services/balance.d.ts.map +1 -0
  270. package/{dist/cjs → src/_types}/typeguards.d.ts +3 -2
  271. package/src/_types/typeguards.d.ts.map +1 -0
  272. package/src/_types/types/index.d.ts +2 -0
  273. package/src/_types/types/index.d.ts.map +1 -0
  274. package/src/_types/types/internal.d.ts +56 -0
  275. package/src/_types/types/internal.d.ts.map +1 -0
  276. package/{dist → src/_types}/utils/errors.d.ts +1 -0
  277. package/src/_types/utils/errors.d.ts.map +1 -0
  278. package/src/_types/utils/getTransactionMessage.d.ts +4 -0
  279. package/src/_types/utils/getTransactionMessage.d.ts.map +1 -0
  280. package/src/_types/utils/index.d.ts +6 -0
  281. package/src/_types/utils/index.d.ts.map +1 -0
  282. package/{dist/cjs → src/_types}/utils/median.d.ts +1 -0
  283. package/src/_types/utils/median.d.ts.map +1 -0
  284. package/src/_types/utils/parseBackendError.d.ts +3 -0
  285. package/src/_types/utils/parseBackendError.d.ts.map +1 -0
  286. package/{dist → src/_types}/utils/parseError.d.ts +4 -6
  287. package/src/_types/utils/parseError.d.ts.map +1 -0
  288. package/{dist → src/_types}/utils/utils.d.ts +1 -0
  289. package/src/_types/utils/utils.d.ts.map +1 -0
  290. package/src/_types/version.d.ts +3 -0
  291. package/src/_types/version.d.ts.map +1 -0
  292. package/src/config.ts +47 -0
  293. package/src/constants.ts +4 -0
  294. package/src/core/BaseStepExecutor.ts +40 -0
  295. package/src/core/EVM/EVM.ts +50 -0
  296. package/src/core/EVM/EVMStepExecutor.ts +473 -0
  297. package/src/core/EVM/abi.ts +47 -0
  298. package/src/core/EVM/checkAllowance.ts +152 -0
  299. package/src/core/EVM/getAllowance.ts +144 -0
  300. package/src/core/EVM/getEVMBalance.ts +118 -0
  301. package/src/core/EVM/multisig.ts +53 -0
  302. package/src/core/EVM/publicClient.ts +46 -0
  303. package/src/core/EVM/setAllowance.ts +144 -0
  304. package/src/core/EVM/switchChain.ts +76 -0
  305. package/src/core/EVM/types.ts +75 -0
  306. package/src/core/EVM/utils.ts +47 -0
  307. package/src/core/Solana/Solana.ts +46 -0
  308. package/src/core/Solana/SolanaStepExecutor.ts +253 -0
  309. package/src/core/Solana/connection.ts +19 -0
  310. package/src/core/Solana/getSolanaBalance.ts +72 -0
  311. package/src/core/Solana/types.ts +18 -0
  312. package/src/core/StatusManager.ts +243 -0
  313. package/src/core/checkBalance.ts +48 -0
  314. package/src/core/execution.ts +218 -0
  315. package/src/core/executionState.ts +39 -0
  316. package/src/core/index.ts +3 -0
  317. package/src/core/prepareRestart.ts +82 -0
  318. package/src/core/provider.ts +12 -0
  319. package/src/core/stepComparison.ts +51 -0
  320. package/src/core/types.ts +117 -0
  321. package/src/core/utils.ts +122 -0
  322. package/src/core/waitForReceivingTransaction.ts +74 -0
  323. package/src/createConfig.ts +56 -0
  324. package/src/helpers.ts +83 -0
  325. package/src/index.ts +11 -0
  326. package/src/request.ts +79 -0
  327. package/src/services/api.ts +507 -0
  328. package/src/services/balance.ts +93 -0
  329. package/src/typeguards.ts +89 -0
  330. package/src/types/index.ts +1 -0
  331. package/src/types/internal.ts +58 -0
  332. package/src/utils/errors.ts +231 -0
  333. package/src/utils/getTransactionMessage.ts +46 -0
  334. package/src/utils/index.ts +5 -0
  335. package/src/utils/median.ts +11 -0
  336. package/src/utils/parseBackendError.ts +50 -0
  337. package/src/utils/parseError.ts +204 -0
  338. package/src/utils/utils.ts +48 -0
  339. package/src/version.ts +2 -0
  340. package/dist/LiFi.d.ts +0 -171
  341. package/dist/LiFi.js +0 -246
  342. package/dist/allowance/getAllowance.d.ts +0 -6
  343. package/dist/allowance/index.d.ts +0 -3
  344. package/dist/allowance/index.js +0 -3
  345. package/dist/allowance/setAllowance.d.ts +0 -5
  346. package/dist/allowance/types.d.ts +0 -27
  347. package/dist/allowance/types.js +0 -1
  348. package/dist/balance/getBalance.d.ts +0 -2
  349. package/dist/balance/getTokenBalance.d.ts +0 -8
  350. package/dist/balance/getTokenBalance.js +0 -27
  351. package/dist/balance/index.d.ts +0 -2
  352. package/dist/balance/index.js +0 -2
  353. package/dist/cjs/LiFi.d.ts +0 -171
  354. package/dist/cjs/LiFi.js +0 -276
  355. package/dist/cjs/allowance/index.d.ts +0 -3
  356. package/dist/cjs/allowance/index.js +0 -19
  357. package/dist/cjs/allowance/setAllowance.d.ts +0 -5
  358. package/dist/cjs/allowance/setAllowance.js +0 -56
  359. package/dist/cjs/allowance/types.d.ts +0 -27
  360. package/dist/cjs/balance/getBalance.d.ts +0 -2
  361. package/dist/cjs/balance/getTokenBalance.d.ts +0 -8
  362. package/dist/cjs/balance/getTokenBalance.js +0 -33
  363. package/dist/cjs/balance/index.d.ts +0 -2
  364. package/dist/cjs/balance/index.js +0 -18
  365. package/dist/cjs/connectors.d.ts +0 -8
  366. package/dist/cjs/connectors.js +0 -75
  367. package/dist/cjs/execution/RouteExecutionManager.d.ts +0 -59
  368. package/dist/cjs/execution/RouteExecutionManager.js +0 -202
  369. package/dist/cjs/execution/StatusManager.js +0 -171
  370. package/dist/cjs/execution/StepExecutionManager.d.ts +0 -7
  371. package/dist/cjs/execution/StepExecutionManager.js +0 -267
  372. package/dist/cjs/execution/StepExecutor.d.ts +0 -15
  373. package/dist/cjs/execution/StepExecutor.js +0 -62
  374. package/dist/cjs/execution/checkAllowance.d.ts +0 -4
  375. package/dist/cjs/execution/checkBalance.d.ts +0 -2
  376. package/dist/cjs/execution/index.d.ts +0 -1
  377. package/dist/cjs/execution/index.js +0 -17
  378. package/dist/cjs/execution/multisig.d.ts +0 -4
  379. package/dist/cjs/execution/prepareRestart.d.ts +0 -3
  380. package/dist/cjs/execution/prepareRestart.js +0 -65
  381. package/dist/cjs/execution/stepComparison.d.ts +0 -14
  382. package/dist/cjs/execution/stepComparison.js +0 -37
  383. package/dist/cjs/execution/switchChain.js +0 -54
  384. package/dist/cjs/execution/utils.d.ts +0 -12
  385. package/dist/cjs/execution/waitForReceivingTransaction.d.ts +0 -3
  386. package/dist/cjs/helpers.d.ts +0 -18
  387. package/dist/cjs/helpers.js +0 -84
  388. package/dist/cjs/index.d.ts +0 -5
  389. package/dist/cjs/index.js +0 -24
  390. package/dist/cjs/request.d.ts +0 -9
  391. package/dist/cjs/request.js +0 -60
  392. package/dist/cjs/services/ApiService.d.ts +0 -17
  393. package/dist/cjs/services/ApiService.js +0 -326
  394. package/dist/cjs/services/ChainsService.d.ts +0 -11
  395. package/dist/cjs/services/ChainsService.js +0 -39
  396. package/dist/cjs/services/ConfigService.d.ts +0 -23
  397. package/dist/cjs/services/ConfigService.js +0 -101
  398. package/dist/cjs/types/index.d.ts +0 -4
  399. package/dist/cjs/types/index.js +0 -22
  400. package/dist/cjs/types/internal.types.d.ts +0 -142
  401. package/dist/cjs/utils/errors.d.ts +0 -107
  402. package/dist/cjs/utils/getMaxPriorityFeePerGas.d.ts +0 -2
  403. package/dist/cjs/utils/index.d.ts +0 -5
  404. package/dist/cjs/utils/index.js +0 -21
  405. package/dist/cjs/utils/parseError.d.ts +0 -37
  406. package/dist/cjs/utils/parseError.js +0 -157
  407. package/dist/cjs/utils/utils.d.ts +0 -10
  408. package/dist/cjs/version.d.ts +0 -2
  409. package/dist/connectors.d.ts +0 -8
  410. package/dist/connectors.js +0 -41
  411. package/dist/constants.d.ts +0 -6
  412. package/dist/execution/RouteExecutionManager.d.ts +0 -59
  413. package/dist/execution/RouteExecutionManager.js +0 -195
  414. package/dist/execution/StatusManager.d.ts +0 -67
  415. package/dist/execution/StatusManager.js +0 -167
  416. package/dist/execution/StepExecutionManager.d.ts +0 -7
  417. package/dist/execution/StepExecutionManager.js +0 -260
  418. package/dist/execution/StepExecutor.d.ts +0 -15
  419. package/dist/execution/StepExecutor.js +0 -58
  420. package/dist/execution/checkAllowance.d.ts +0 -4
  421. package/dist/execution/checkBalance.d.ts +0 -2
  422. package/dist/execution/index.d.ts +0 -1
  423. package/dist/execution/index.js +0 -1
  424. package/dist/execution/multisig.d.ts +0 -4
  425. package/dist/execution/prepareRestart.d.ts +0 -3
  426. package/dist/execution/prepareRestart.js +0 -61
  427. package/dist/execution/switchChain.d.ts +0 -21
  428. package/dist/execution/waitForReceivingTransaction.d.ts +0 -3
  429. package/dist/index.d.ts +0 -5
  430. package/dist/index.js +0 -6
  431. package/dist/services/ApiService.d.ts +0 -17
  432. package/dist/services/ApiService.js +0 -321
  433. package/dist/services/ChainsService.d.ts +0 -11
  434. package/dist/services/ChainsService.js +0 -33
  435. package/dist/services/ConfigService.d.ts +0 -23
  436. package/dist/services/ConfigService.js +0 -99
  437. package/dist/typeguards.d.ts +0 -4
  438. package/dist/types/abi.d.ts +0 -5
  439. package/dist/types/index.d.ts +0 -4
  440. package/dist/types/index.js +0 -4
  441. package/dist/types/internal.types.d.ts +0 -142
  442. package/dist/types/internal.types.js +0 -1
  443. package/dist/utils/getMaxPriorityFeePerGas.d.ts +0 -2
  444. package/dist/utils/index.d.ts +0 -5
  445. package/dist/utils/index.js +0 -5
  446. package/dist/utils/median.d.ts +0 -1
  447. package/dist/version.d.ts +0 -2
  448. package/dist/version.js +0 -2
@@ -0,0 +1,58 @@
1
+ import type { ChainId, RouteOptions } from '@lifi/types'
2
+ import type { SDKProvider } from '../core/types.js'
3
+
4
+ export interface SDKConfig {
5
+ integrator: string
6
+ apiUrl: string
7
+ apiKey?: string
8
+ userId?: string
9
+ disableVersionCheck?: boolean
10
+ widgetVersion?: string
11
+ routeOptions?: RouteOptions
12
+ providers?: SDKProvider[]
13
+ rpcUrls: Partial<Record<ChainId, string[]>>
14
+ }
15
+
16
+ export interface SDKOptions extends Partial<Omit<SDKConfig, 'integrator'>> {
17
+ integrator: string
18
+ }
19
+
20
+ export interface TenderlyResponse {
21
+ hash: string
22
+ block_hash: string
23
+ block_number: number
24
+ from: string
25
+ gas: number
26
+ gas_price: number
27
+ gas_fee_cap: number
28
+ gas_tip_cap: number
29
+ cumulative_gas_used: number
30
+ gas_used: number
31
+ effective_gas_price: number
32
+ input: string
33
+ nonce: number
34
+ to: string
35
+ index: number
36
+ value: string
37
+ access_list: unknown
38
+ status: boolean
39
+ addresses: string[]
40
+ contract_ids: string[]
41
+ network_id: string
42
+ timestamp: string
43
+ function_selector: string
44
+ l1_block_number: number
45
+ l1_timestamp: number
46
+ deposit_tx: boolean
47
+ system_tx: boolean
48
+ mint: number
49
+ sig: {
50
+ v: string
51
+ r: string
52
+ s: string
53
+ }
54
+ error_message: string
55
+ method: string
56
+ decoded_input: unknown
57
+ call_trace: unknown
58
+ }
@@ -0,0 +1,231 @@
1
+ enum ErrorType {
2
+ RPCError = 'RPCError',
3
+ ProviderError = 'ProviderError',
4
+ ServerError = 'ServerError',
5
+ TransactionError = 'TransactionError',
6
+ ValidationError = 'ValidationError',
7
+ NotFoundError = 'NotFoundError',
8
+ UnknownError = 'UnknownError',
9
+ SlippageError = 'SlippageError',
10
+ }
11
+
12
+ export enum LiFiErrorCode {
13
+ InternalError = 1000,
14
+ ValidationError = 1001,
15
+ TransactionUnderpriced = 1002,
16
+ TransactionFailed = 1003,
17
+ Timeout = 1004,
18
+ ProviderUnavailable = 1005,
19
+ NotFound = 1006,
20
+ ChainSwitchError = 1007,
21
+ TransactionUnprepared = 1008,
22
+ GasLimitError = 1009,
23
+ TransactionCanceled = 1010,
24
+ SlippageError = 1011,
25
+ SignatureRejected = 1012,
26
+ BalanceError = 1013,
27
+ AllowanceRequired = 1014,
28
+ InsufficientFunds = 1015,
29
+ ExchangeRateUpdateCanceled = 1016,
30
+ }
31
+
32
+ export enum EthersErrorType {
33
+ ActionRejected = 'ACTION_REJECTED',
34
+ CallExecption = 'CALL_EXCEPTION',
35
+ InsufficientFunds = 'INSUFFICIENT_FUNDS',
36
+ }
37
+
38
+ export enum EthersErrorMessage {
39
+ ERC20Allowance = 'ERC20: transfer amount exceeds allowance',
40
+ LowGas = 'intrinsic gas too low',
41
+ OutOfGas = 'out of gas',
42
+ Underpriced = 'underpriced',
43
+ LowReplacementFee = 'replacement fee too low',
44
+ }
45
+
46
+ export enum ErrorMessage {
47
+ UnknownError = 'Unknown error occurred.',
48
+ SlippageError = 'The slippage is larger than the defined threshold. Please request a new route to get a fresh quote.',
49
+ GasLimitLow = 'Gas limit is too low.',
50
+ TransactionUnderpriced = 'Transaction is underpriced.',
51
+ Default = 'Something went wrong.',
52
+ }
53
+
54
+ export enum MetaMaskRPCErrorCode {
55
+ invalidInput = -32000,
56
+ resourceNotFound = -32001,
57
+ resourceUnavailable = -32002,
58
+ transactionRejected = -32003,
59
+ methodNotSupported = -32004,
60
+ limitExceeded = -32005,
61
+ parse = -32700,
62
+ invalidRequest = -32600,
63
+ methodNotFound = -32601,
64
+ invalidParams = -32602,
65
+ internal = -32603,
66
+ }
67
+
68
+ export enum MetaMaskProviderErrorCode {
69
+ userRejectedRequest = 4001,
70
+ unauthorized = 4100,
71
+ unsupportedMethod = 4200,
72
+ disconnected = 4900,
73
+ chainDisconnected = 4901,
74
+ }
75
+
76
+ export type ErrorCode =
77
+ | LiFiErrorCode
78
+ | MetaMaskRPCErrorCode
79
+ | MetaMaskProviderErrorCode
80
+
81
+ export class LiFiError extends Error {
82
+ code: ErrorCode
83
+ htmlMessage?: string
84
+
85
+ constructor(
86
+ type: ErrorType,
87
+ code: number,
88
+ message: string,
89
+ htmlMessage?: string,
90
+ stack?: string
91
+ ) {
92
+ super(message)
93
+
94
+ // Set the prototype explicitly: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
95
+ Object.setPrototypeOf(this, LiFiError.prototype)
96
+
97
+ this.code = code
98
+
99
+ // 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
100
+ this.name = type.toString()
101
+
102
+ this.htmlMessage = htmlMessage
103
+
104
+ // 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
105
+ if (stack) {
106
+ this.stack = stack
107
+ }
108
+ }
109
+ }
110
+
111
+ export class RPCError extends LiFiError {
112
+ constructor(
113
+ code: ErrorCode,
114
+ message: string,
115
+ htmlMessage?: string,
116
+ stack?: string
117
+ ) {
118
+ super(ErrorType.RPCError, code, message, htmlMessage, stack)
119
+ }
120
+ }
121
+
122
+ export class ProviderError extends LiFiError {
123
+ constructor(
124
+ code: ErrorCode,
125
+ message: string,
126
+ htmlMessage?: string,
127
+ stack?: string
128
+ ) {
129
+ super(ErrorType.ProviderError, code, message, htmlMessage, stack)
130
+ }
131
+ }
132
+
133
+ export class ServerError extends LiFiError {
134
+ constructor(message: string, htmlMessage?: string, stack?: string) {
135
+ super(
136
+ ErrorType.ServerError,
137
+ LiFiErrorCode.InternalError,
138
+ message,
139
+ htmlMessage,
140
+ stack
141
+ )
142
+ }
143
+ }
144
+
145
+ export class ValidationError extends LiFiError {
146
+ constructor(message: string, htmlMessage?: string, stack?: string) {
147
+ super(
148
+ ErrorType.ValidationError,
149
+ LiFiErrorCode.ValidationError,
150
+ message,
151
+ htmlMessage,
152
+ stack
153
+ )
154
+ }
155
+ }
156
+
157
+ export class TransactionError extends LiFiError {
158
+ constructor(
159
+ code: ErrorCode,
160
+ message: string,
161
+ htmlMessage?: string,
162
+ stack?: string
163
+ ) {
164
+ super(ErrorType.TransactionError, code, message, htmlMessage, stack)
165
+ }
166
+ }
167
+
168
+ export class SlippageError extends LiFiError {
169
+ constructor(message: string, htmlMessage?: string, stack?: string) {
170
+ super(
171
+ ErrorType.SlippageError,
172
+ LiFiErrorCode.SlippageError,
173
+ message,
174
+ htmlMessage,
175
+ stack
176
+ )
177
+ }
178
+ }
179
+
180
+ export class BalanceError extends LiFiError {
181
+ constructor(message: string, htmlMessage?: string, stack?: string) {
182
+ super(
183
+ ErrorType.ValidationError,
184
+ LiFiErrorCode.BalanceError,
185
+ message,
186
+ htmlMessage,
187
+ stack
188
+ )
189
+ }
190
+ }
191
+
192
+ export class NotFoundError extends LiFiError {
193
+ constructor(message: string, htmlMessage?: string, stack?: string) {
194
+ super(
195
+ ErrorType.NotFoundError,
196
+ LiFiErrorCode.NotFound,
197
+ message,
198
+ htmlMessage,
199
+ stack
200
+ )
201
+ }
202
+ }
203
+
204
+ export class UnknownError extends LiFiError {
205
+ constructor(
206
+ code: ErrorCode,
207
+ message: string,
208
+ htmlMessage?: string,
209
+ stack?: string
210
+ ) {
211
+ super(ErrorType.UnknownError, code, message, htmlMessage, stack)
212
+ }
213
+ }
214
+
215
+ export class HTTPError extends Error {
216
+ public response: Response
217
+ public status: number
218
+
219
+ constructor(response: Response) {
220
+ const code = response.status || response.status === 0 ? response.status : ''
221
+ const title = response.statusText || ''
222
+ const status = `${code} ${title}`.trim()
223
+ const reason = status ? `status code ${status}` : 'an unknown error'
224
+
225
+ super(`Request failed with ${reason}`)
226
+
227
+ this.name = 'HTTPError'
228
+ this.response = response
229
+ this.status = response.status
230
+ }
231
+ }
@@ -0,0 +1,46 @@
1
+ import type { LiFiStep, Process } from '@lifi/types'
2
+ import { formatUnits } from 'viem'
3
+ import { config } from '../config.js'
4
+
5
+ export const getTransactionNotSentMessage = async (
6
+ step?: LiFiStep,
7
+ process?: Process
8
+ ): Promise<string> => {
9
+ let transactionNotSend =
10
+ 'Transaction was not sent, your funds are still in your wallet'
11
+
12
+ // add information about funds if available
13
+ if (step) {
14
+ const chain = await config.getChainById(step.action.fromChainId)
15
+
16
+ transactionNotSend += ` (${formatUnits(
17
+ BigInt(step.action.fromAmount),
18
+ step.action.fromToken.decimals
19
+ )} ${step.action.fromToken.symbol} on ${chain.name})`
20
+ }
21
+
22
+ transactionNotSend +=
23
+ ", please retry.<br/>If it still doesn't work, it is safe to delete this transfer and start a new one."
24
+
25
+ // add transaction explorer link if available
26
+ transactionNotSend +=
27
+ process && process.txLink
28
+ ? `<br>You can check the failed transaction&nbsp;<a href="${process.txLink}" target="_blank" rel="nofollow noreferrer">here</a>.`
29
+ : ''
30
+
31
+ return transactionNotSend
32
+ }
33
+
34
+ export const getTransactionFailedMessage = async (
35
+ step: LiFiStep,
36
+ txLink?: string
37
+ ): Promise<string> => {
38
+ const chain = await config.getChainById(step.action.toChainId)
39
+
40
+ const baseString = `It appears that your transaction may not have been successful.
41
+ However, to confirm this, please check your ${chain.name} wallet for ${step.action.toToken.symbol}.`
42
+ return txLink
43
+ ? `${baseString}
44
+ You can also check the&nbsp;<a href="${txLink}" target="_blank" rel="nofollow noreferrer">block explorer</a> for more information.`
45
+ : baseString
46
+ }
@@ -0,0 +1,5 @@
1
+ export * from './errors.js'
2
+ export * from './getTransactionMessage.js'
3
+ export * from './median.js'
4
+ export * from './parseError.js'
5
+ export * from './utils.js'
@@ -0,0 +1,11 @@
1
+ export const median = (arr: bigint[]): bigint | undefined => {
2
+ if (!arr.length) {
3
+ return
4
+ }
5
+ const s = [...arr].sort((a, b) => (a > b ? 1 : a < b ? -1 : 0))
6
+ const mid = Math.floor(s.length / 2)
7
+ if (s.length % 2 === 0) {
8
+ return (s[mid - 1] + s[mid]) / 2n
9
+ }
10
+ return s[mid]
11
+ }
@@ -0,0 +1,50 @@
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
+ }
@@ -0,0 +1,204 @@
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
+ default: {
147
+ if (errorCode && typeof errorCode === 'number') {
148
+ if (Object.values(MetaMaskErrorCodes.rpc).includes(errorCode as any)) {
149
+ // rpc errors
150
+ // underpriced errors are sent as internal errors, so we need to parse the message manually
151
+ if (
152
+ errorCode === MetaMaskErrorCodes.rpc.internal &&
153
+ (e.message?.includes(EthersErrorMessage.Underpriced) ||
154
+ e.message?.includes(EthersErrorMessage.LowReplacementFee))
155
+ ) {
156
+ return new RPCError(
157
+ LiFiErrorCode.TransactionUnderpriced,
158
+ ErrorMessage.TransactionUnderpriced,
159
+ await getTransactionNotSentMessage(step, process),
160
+ e.stack
161
+ )
162
+ }
163
+
164
+ if (
165
+ e.message?.includes(EthersErrorMessage.LowGas) ||
166
+ e.message?.includes(EthersErrorMessage.OutOfGas)
167
+ ) {
168
+ return new TransactionError(
169
+ LiFiErrorCode.GasLimitError,
170
+ ErrorMessage.GasLimitLow,
171
+ await getTransactionNotSentMessage(step, process),
172
+ e.stack
173
+ )
174
+ }
175
+
176
+ return new RPCError(
177
+ errorCode,
178
+ getMessageFromCode(errorCode),
179
+ await getTransactionNotSentMessage(step, process),
180
+ e.stack
181
+ )
182
+ }
183
+
184
+ // provider errors
185
+ if (
186
+ Object.values(MetaMaskErrorCodes.provider).includes(errorCode as any)
187
+ ) {
188
+ return new ProviderError(
189
+ errorCode,
190
+ getMessageFromCode(errorCode),
191
+ await getTransactionNotSentMessage(step, process),
192
+ e.stack
193
+ )
194
+ }
195
+ }
196
+ return new UnknownError(
197
+ LiFiErrorCode.InternalError,
198
+ e.message || ErrorMessage.UnknownError,
199
+ undefined,
200
+ e.stack
201
+ )
202
+ }
203
+ }
204
+ }
@@ -0,0 +1,48 @@
1
+ import { AddressZero, AlternativeAddressZero } from '../constants.js'
2
+
3
+ export const wait = (ms: number): Promise<undefined> => {
4
+ return new Promise((resolve) => {
5
+ setTimeout(resolve, ms)
6
+ })
7
+ }
8
+
9
+ /**
10
+ * Repeatedly calls a given asynchronous function until it resolves with a value
11
+ * @param toRepeat The function that should be repeated
12
+ * @param timeout The timeout in milliseconds between retries, defaults to 5000
13
+ * @returns The result of the toRepeat function
14
+ */
15
+ export const repeatUntilDone = async <T>(
16
+ toRepeat: () => Promise<T | undefined>,
17
+ timeout = 5000
18
+ ): Promise<T> => {
19
+ let result: T | undefined
20
+
21
+ while (!result) {
22
+ result = await toRepeat()
23
+ if (!result) {
24
+ await wait(timeout)
25
+ }
26
+ }
27
+
28
+ return result
29
+ }
30
+
31
+ export const isZeroAddress = (address: string): boolean => {
32
+ if (address === AddressZero || address === AlternativeAddressZero) {
33
+ return true
34
+ }
35
+ return false
36
+ }
37
+
38
+ export const isNativeTokenAddress = (address: string): boolean => {
39
+ if (
40
+ address === AddressZero ||
41
+ address === AlternativeAddressZero ||
42
+ // CELO native token
43
+ address === '0x471ece3750da237f93b8e339c536989b8978a438'
44
+ ) {
45
+ return true
46
+ }
47
+ return false
48
+ }
package/src/version.ts ADDED
@@ -0,0 +1,2 @@
1
+ export const name = '@lifi/sdk'
2
+ export const version = '3.0.0-alpha.31'