@lifi/sdk 4.0.0-beta.1 → 4.0.0-beta.11

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 (653) hide show
  1. package/dist/cjs/actions/getChains.d.ts +17 -4
  2. package/dist/cjs/actions/getChains.js +22 -19
  3. package/dist/cjs/actions/getChains.js.map +1 -1
  4. package/dist/cjs/actions/getConnections.d.ts +15 -3
  5. package/dist/cjs/actions/getConnections.js +30 -35
  6. package/dist/cjs/actions/getConnections.js.map +1 -1
  7. package/dist/cjs/actions/getContractCallsQuote.d.ts +16 -3
  8. package/dist/cjs/actions/getContractCallsQuote.js +41 -42
  9. package/dist/cjs/actions/getContractCallsQuote.js.map +1 -1
  10. package/dist/cjs/actions/getGasRecommendation.d.ts +16 -3
  11. package/dist/cjs/actions/getGasRecommendation.js +20 -19
  12. package/dist/cjs/actions/getGasRecommendation.js.map +1 -1
  13. package/dist/cjs/actions/getNameServiceAddress.d.ts +15 -3
  14. package/dist/cjs/actions/getNameServiceAddress.js +25 -27
  15. package/dist/cjs/actions/getNameServiceAddress.js.map +1 -1
  16. package/dist/cjs/actions/getQuote.d.ts +18 -5
  17. package/dist/cjs/actions/getQuote.js +32 -46
  18. package/dist/cjs/actions/getQuote.js.map +1 -1
  19. package/dist/cjs/actions/getRelayedTransactionStatus.d.ts +16 -3
  20. package/dist/cjs/actions/getRelayedTransactionStatus.js +26 -26
  21. package/dist/cjs/actions/getRelayedTransactionStatus.js.map +1 -1
  22. package/dist/cjs/actions/getRelayerQuote.d.ts +17 -4
  23. package/dist/cjs/actions/getRelayerQuote.js +40 -45
  24. package/dist/cjs/actions/getRelayerQuote.js.map +1 -1
  25. package/dist/cjs/actions/getRoutes.d.ts +16 -3
  26. package/dist/cjs/actions/getRoutes.js +28 -23
  27. package/dist/cjs/actions/getRoutes.js.map +1 -1
  28. package/dist/cjs/actions/getStatus.d.ts +17 -4
  29. package/dist/cjs/actions/getStatus.js +18 -14
  30. package/dist/cjs/actions/getStatus.js.map +1 -1
  31. package/dist/cjs/actions/getStepTransaction.d.ts +16 -3
  32. package/dist/cjs/actions/getStepTransaction.js +32 -33
  33. package/dist/cjs/actions/getStepTransaction.js.map +1 -1
  34. package/dist/cjs/actions/getToken.d.ts +17 -3
  35. package/dist/cjs/actions/getToken.js +22 -18
  36. package/dist/cjs/actions/getToken.js.map +1 -1
  37. package/dist/cjs/actions/getTokenBalance.d.ts +17 -3
  38. package/dist/cjs/actions/getTokenBalance.js +16 -6
  39. package/dist/cjs/actions/getTokenBalance.js.map +1 -1
  40. package/dist/cjs/actions/getTokenBalances.d.ts +17 -3
  41. package/dist/cjs/actions/getTokenBalances.js +12 -13
  42. package/dist/cjs/actions/getTokenBalances.js.map +1 -1
  43. package/dist/cjs/actions/getTokenBalancesByChain.d.ts +19 -5
  44. package/dist/cjs/actions/getTokenBalancesByChain.js +22 -37
  45. package/dist/cjs/actions/getTokenBalancesByChain.js.map +1 -1
  46. package/dist/cjs/actions/getTokens.d.ts +18 -6
  47. package/dist/cjs/actions/getTokens.js +14 -18
  48. package/dist/cjs/actions/getTokens.js.map +1 -1
  49. package/dist/cjs/actions/getTools.d.ts +15 -3
  50. package/dist/cjs/actions/getTools.js +17 -14
  51. package/dist/cjs/actions/getTools.js.map +1 -1
  52. package/dist/cjs/actions/getTransactionHistory.d.ts +26 -3
  53. package/dist/cjs/actions/getTransactionHistory.js +27 -21
  54. package/dist/cjs/actions/getTransactionHistory.js.map +1 -1
  55. package/dist/cjs/actions/getWalletBalances.d.ts +16 -3
  56. package/dist/cjs/actions/getWalletBalances.js +16 -12
  57. package/dist/cjs/actions/getWalletBalances.js.map +1 -1
  58. package/dist/cjs/actions/index.d.ts +171 -39
  59. package/dist/cjs/actions/index.js +49 -47
  60. package/dist/cjs/actions/index.js.map +1 -1
  61. package/dist/cjs/actions/patchContractCalls.d.ts +14 -9
  62. package/dist/cjs/actions/patchContractCalls.js +11 -12
  63. package/dist/cjs/actions/patchContractCalls.js.map +1 -1
  64. package/dist/cjs/actions/relayTransaction.d.ts +16 -3
  65. package/dist/cjs/actions/relayTransaction.js +30 -34
  66. package/dist/cjs/actions/relayTransaction.js.map +1 -1
  67. package/dist/cjs/client/createClient.d.ts +7 -2
  68. package/dist/cjs/client/createClient.js +67 -75
  69. package/dist/cjs/client/createClient.js.map +1 -1
  70. package/dist/cjs/client/getClientStorage.d.ts +14 -8
  71. package/dist/cjs/client/getClientStorage.js +44 -47
  72. package/dist/cjs/client/getClientStorage.js.map +1 -1
  73. package/dist/cjs/core/BaseStepExecutionTask.d.ts +9 -4
  74. package/dist/cjs/core/BaseStepExecutionTask.js +9 -8
  75. package/dist/cjs/core/BaseStepExecutionTask.js.map +1 -1
  76. package/dist/cjs/core/BaseStepExecutor.d.ts +23 -18
  77. package/dist/cjs/core/BaseStepExecutor.js +67 -77
  78. package/dist/cjs/core/BaseStepExecutor.js.map +1 -1
  79. package/dist/cjs/core/StatusManager.d.ts +80 -21
  80. package/dist/cjs/core/StatusManager.js +158 -136
  81. package/dist/cjs/core/StatusManager.js.map +1 -1
  82. package/dist/cjs/core/TaskPipeline.d.ts +11 -6
  83. package/dist/cjs/core/TaskPipeline.js +19 -25
  84. package/dist/cjs/core/TaskPipeline.js.map +1 -1
  85. package/dist/cjs/core/actionMessages.d.ts +9 -4
  86. package/dist/cjs/core/actionMessages.js +72 -74
  87. package/dist/cjs/core/actionMessages.js.map +1 -1
  88. package/dist/cjs/core/execution.d.ts +48 -8
  89. package/dist/cjs/core/execution.js +131 -133
  90. package/dist/cjs/core/execution.js.map +1 -1
  91. package/dist/cjs/core/executionState.d.ts +17 -13
  92. package/dist/cjs/core/executionState.js +27 -27
  93. package/dist/cjs/core/executionState.js.map +1 -1
  94. package/dist/cjs/core/prepareRestart.d.ts +7 -2
  95. package/dist/cjs/core/prepareRestart.js +17 -18
  96. package/dist/cjs/core/prepareRestart.js.map +1 -1
  97. package/dist/cjs/core/storage.d.ts +18 -14
  98. package/dist/cjs/core/storage.js +32 -33
  99. package/dist/cjs/core/storage.js.map +1 -1
  100. package/dist/cjs/core/tasks/CheckBalanceTask.d.ts +18 -4
  101. package/dist/cjs/core/tasks/CheckBalanceTask.js +33 -24
  102. package/dist/cjs/core/tasks/CheckBalanceTask.js.map +1 -1
  103. package/dist/cjs/core/tasks/PrepareTransactionTask.d.ts +9 -4
  104. package/dist/cjs/core/tasks/PrepareTransactionTask.js +28 -34
  105. package/dist/cjs/core/tasks/PrepareTransactionTask.js.map +1 -1
  106. package/dist/cjs/core/tasks/WaitForTransactionStatusTask.d.ts +12 -7
  107. package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js +61 -71
  108. package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js.map +1 -1
  109. package/dist/cjs/core/tasks/helpers/checkBalance.d.ts +30 -3
  110. package/dist/cjs/core/tasks/helpers/checkBalance.js +105 -34
  111. package/dist/cjs/core/tasks/helpers/checkBalance.js.map +1 -1
  112. package/dist/cjs/core/tasks/helpers/getTransactionRequestData.d.ts +7 -2
  113. package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js +21 -26
  114. package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js.map +1 -1
  115. package/dist/cjs/core/tasks/helpers/stepComparison.d.ts +21 -4
  116. package/dist/cjs/core/tasks/helpers/stepComparison.js +28 -21
  117. package/dist/cjs/core/tasks/helpers/stepComparison.js.map +1 -1
  118. package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.d.ts +9 -4
  119. package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.js +45 -53
  120. package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.js.map +1 -1
  121. package/dist/cjs/core/utils.d.ts +17 -91
  122. package/dist/cjs/core/utils.js +37 -38
  123. package/dist/cjs/core/utils.js.map +1 -1
  124. package/dist/cjs/errors/SDKError.d.ts +16 -11
  125. package/dist/cjs/errors/SDKError.js +22 -21
  126. package/dist/cjs/errors/SDKError.js.map +1 -1
  127. package/dist/cjs/errors/baseError.d.ts +10 -5
  128. package/dist/cjs/errors/baseError.js +17 -18
  129. package/dist/cjs/errors/baseError.js.map +1 -1
  130. package/dist/cjs/errors/constants.d.ts +52 -48
  131. package/dist/cjs/errors/constants.js +60 -56
  132. package/dist/cjs/errors/constants.js.map +1 -1
  133. package/dist/cjs/errors/errors.d.ts +38 -28
  134. package/dist/cjs/errors/errors.js +57 -51
  135. package/dist/cjs/errors/errors.js.map +1 -1
  136. package/dist/cjs/errors/httpError.d.ts +21 -17
  137. package/dist/cjs/errors/httpError.js +62 -65
  138. package/dist/cjs/errors/httpError.js.map +1 -1
  139. package/dist/cjs/errors/utils/baseErrorRootCause.d.ts +8 -3
  140. package/dist/cjs/errors/utils/baseErrorRootCause.js +12 -15
  141. package/dist/cjs/errors/utils/baseErrorRootCause.js.map +1 -1
  142. package/dist/cjs/errors/utils/rootCause.d.ts +5 -1
  143. package/dist/cjs/errors/utils/rootCause.js +7 -8
  144. package/dist/cjs/errors/utils/rootCause.js.map +1 -1
  145. package/dist/cjs/index.d.ts +55 -55
  146. package/dist/cjs/index.js +130 -138
  147. package/dist/cjs/types/actions.d.ts +12 -7
  148. package/dist/cjs/types/actions.js +0 -3
  149. package/dist/cjs/types/core.d.ts +181 -172
  150. package/dist/cjs/types/core.js +0 -3
  151. package/dist/cjs/types/execution.d.ts +25 -19
  152. package/dist/cjs/types/execution.js +0 -3
  153. package/dist/cjs/types/request.d.ts +6 -2
  154. package/dist/cjs/types/request.js +0 -3
  155. package/dist/cjs/utils/checkPackageUpdates.d.ts +5 -1
  156. package/dist/cjs/utils/checkPackageUpdates.js +11 -16
  157. package/dist/cjs/utils/checkPackageUpdates.js.map +1 -1
  158. package/dist/cjs/utils/convertQuoteToRoute.d.ts +20 -5
  159. package/dist/cjs/utils/convertQuoteToRoute.js +72 -85
  160. package/dist/cjs/utils/convertQuoteToRoute.js.map +1 -1
  161. package/dist/cjs/utils/decode.d.ts +5 -1
  162. package/dist/cjs/utils/decode.js +5 -10
  163. package/dist/cjs/utils/decode.js.map +1 -1
  164. package/dist/cjs/utils/fetchTxErrorDetails.d.ts +5 -1
  165. package/dist/cjs/utils/fetchTxErrorDetails.js +9 -9
  166. package/dist/cjs/utils/fetchTxErrorDetails.js.map +1 -1
  167. package/dist/cjs/utils/formatUnits.d.ts +8 -1
  168. package/dist/cjs/utils/formatUnits.js +15 -15
  169. package/dist/cjs/utils/formatUnits.js.map +1 -1
  170. package/dist/cjs/utils/getTransactionMessage.d.ts +8 -3
  171. package/dist/cjs/utils/getTransactionMessage.js +8 -10
  172. package/dist/cjs/utils/getTransactionMessage.js.map +1 -1
  173. package/dist/cjs/utils/isHex.d.ts +9 -3
  174. package/dist/cjs/utils/isHex.js +8 -10
  175. package/dist/cjs/utils/isHex.js.map +1 -1
  176. package/dist/cjs/utils/isRoutesRequest.d.ts +7 -2
  177. package/dist/cjs/utils/isRoutesRequest.js +7 -14
  178. package/dist/cjs/utils/isRoutesRequest.js.map +1 -1
  179. package/dist/cjs/utils/isStep.d.ts +7 -2
  180. package/dist/cjs/utils/isStep.js +15 -25
  181. package/dist/cjs/utils/isStep.js.map +1 -1
  182. package/dist/cjs/utils/isToken.d.ts +7 -2
  183. package/dist/cjs/utils/isToken.js +6 -7
  184. package/dist/cjs/utils/isToken.js.map +1 -1
  185. package/dist/cjs/utils/parseUnits.d.ts +8 -1
  186. package/dist/cjs/utils/parseUnits.js +32 -41
  187. package/dist/cjs/utils/parseUnits.js.map +1 -1
  188. package/dist/cjs/utils/request.d.ts +10 -5
  189. package/dist/cjs/utils/request.js +53 -69
  190. package/dist/cjs/utils/request.js.map +1 -1
  191. package/dist/cjs/utils/sleep.d.ts +5 -1
  192. package/dist/cjs/utils/sleep.js +8 -6
  193. package/dist/cjs/utils/sleep.js.map +1 -1
  194. package/dist/cjs/utils/waitForResult.d.ts +14 -1
  195. package/dist/cjs/utils/waitForResult.js +33 -30
  196. package/dist/cjs/utils/waitForResult.js.map +1 -1
  197. package/dist/cjs/utils/withDedupe.d.ts +20 -8
  198. package/dist/cjs/utils/withDedupe.js +31 -29
  199. package/dist/cjs/utils/withDedupe.js.map +1 -1
  200. package/dist/cjs/utils/withTimeout.d.ts +26 -0
  201. package/dist/cjs/utils/withTimeout.js +35 -0
  202. package/dist/cjs/utils/withTimeout.js.map +1 -0
  203. package/dist/cjs/version.d.ts +6 -2
  204. package/dist/cjs/version.js +8 -5
  205. package/dist/cjs/version.js.map +1 -1
  206. package/dist/esm/actions/getChains.d.ts +16 -11
  207. package/dist/esm/actions/getChains.d.ts.map +1 -0
  208. package/dist/esm/actions/getChains.js +22 -24
  209. package/dist/esm/actions/getChains.js.map +1 -1
  210. package/dist/esm/actions/getConnections.d.ts +14 -9
  211. package/dist/esm/actions/getConnections.d.ts.map +1 -0
  212. package/dist/esm/actions/getConnections.js +30 -39
  213. package/dist/esm/actions/getConnections.js.map +1 -1
  214. package/dist/esm/actions/getContractCallsQuote.d.ts +15 -10
  215. package/dist/esm/actions/getContractCallsQuote.d.ts.map +1 -0
  216. package/dist/esm/actions/getContractCallsQuote.js +41 -51
  217. package/dist/esm/actions/getContractCallsQuote.js.map +1 -1
  218. package/dist/esm/actions/getGasRecommendation.d.ts +15 -10
  219. package/dist/esm/actions/getGasRecommendation.d.ts.map +1 -0
  220. package/dist/esm/actions/getGasRecommendation.js +20 -24
  221. package/dist/esm/actions/getGasRecommendation.js.map +1 -1
  222. package/dist/esm/actions/getNameServiceAddress.d.ts +14 -9
  223. package/dist/esm/actions/getNameServiceAddress.d.ts.map +1 -0
  224. package/dist/esm/actions/getNameServiceAddress.js +25 -31
  225. package/dist/esm/actions/getNameServiceAddress.js.map +1 -1
  226. package/dist/esm/actions/getQuote.d.ts +17 -12
  227. package/dist/esm/actions/getQuote.d.ts.map +1 -0
  228. package/dist/esm/actions/getQuote.js +32 -45
  229. package/dist/esm/actions/getQuote.js.map +1 -1
  230. package/dist/esm/actions/getRelayedTransactionStatus.d.ts +15 -10
  231. package/dist/esm/actions/getRelayedTransactionStatus.d.ts.map +1 -0
  232. package/dist/esm/actions/getRelayedTransactionStatus.js +26 -32
  233. package/dist/esm/actions/getRelayedTransactionStatus.js.map +1 -1
  234. package/dist/esm/actions/getRelayerQuote.d.ts +16 -11
  235. package/dist/esm/actions/getRelayerQuote.d.ts.map +1 -0
  236. package/dist/esm/actions/getRelayerQuote.js +40 -51
  237. package/dist/esm/actions/getRelayerQuote.js.map +1 -1
  238. package/dist/esm/actions/getRoutes.d.ts +15 -10
  239. package/dist/esm/actions/getRoutes.d.ts.map +1 -0
  240. package/dist/esm/actions/getRoutes.js +28 -29
  241. package/dist/esm/actions/getRoutes.js.map +1 -1
  242. package/dist/esm/actions/getStatus.d.ts +16 -11
  243. package/dist/esm/actions/getStatus.d.ts.map +1 -0
  244. package/dist/esm/actions/getStatus.js +18 -19
  245. package/dist/esm/actions/getStatus.js.map +1 -1
  246. package/dist/esm/actions/getStepTransaction.d.ts +15 -10
  247. package/dist/esm/actions/getStepTransaction.d.ts.map +1 -0
  248. package/dist/esm/actions/getStepTransaction.js +32 -39
  249. package/dist/esm/actions/getStepTransaction.js.map +1 -1
  250. package/dist/esm/actions/getToken.d.ts +16 -11
  251. package/dist/esm/actions/getToken.d.ts.map +1 -0
  252. package/dist/esm/actions/getToken.js +22 -24
  253. package/dist/esm/actions/getToken.js.map +1 -1
  254. package/dist/esm/actions/getTokenBalance.d.ts +16 -11
  255. package/dist/esm/actions/getTokenBalance.d.ts.map +1 -0
  256. package/dist/esm/actions/getTokenBalance.js +16 -12
  257. package/dist/esm/actions/getTokenBalance.js.map +1 -1
  258. package/dist/esm/actions/getTokenBalances.d.ts +16 -11
  259. package/dist/esm/actions/getTokenBalances.d.ts.map +1 -0
  260. package/dist/esm/actions/getTokenBalances.js +12 -12
  261. package/dist/esm/actions/getTokenBalances.js.map +1 -1
  262. package/dist/esm/actions/getTokenBalancesByChain.d.ts +18 -13
  263. package/dist/esm/actions/getTokenBalancesByChain.d.ts.map +1 -0
  264. package/dist/esm/actions/getTokenBalancesByChain.js +22 -37
  265. package/dist/esm/actions/getTokenBalancesByChain.js.map +1 -1
  266. package/dist/esm/actions/getTokens.d.ts +17 -12
  267. package/dist/esm/actions/getTokens.d.ts.map +1 -0
  268. package/dist/esm/actions/getTokens.js +14 -16
  269. package/dist/esm/actions/getTokens.js.map +1 -1
  270. package/dist/esm/actions/getTools.d.ts +14 -9
  271. package/dist/esm/actions/getTools.d.ts.map +1 -0
  272. package/dist/esm/actions/getTools.js +17 -18
  273. package/dist/esm/actions/getTools.js.map +1 -1
  274. package/dist/esm/actions/getTransactionHistory.d.ts +25 -15
  275. package/dist/esm/actions/getTransactionHistory.d.ts.map +1 -0
  276. package/dist/esm/actions/getTransactionHistory.js +27 -31
  277. package/dist/esm/actions/getTransactionHistory.js.map +1 -1
  278. package/dist/esm/actions/getWalletBalances.d.ts +15 -10
  279. package/dist/esm/actions/getWalletBalances.d.ts.map +1 -0
  280. package/dist/esm/actions/getWalletBalances.js +16 -17
  281. package/dist/esm/actions/getWalletBalances.js.map +1 -1
  282. package/dist/esm/actions/index.d.ts +171 -166
  283. package/dist/esm/actions/index.d.ts.map +1 -0
  284. package/dist/esm/actions/index.js +49 -45
  285. package/dist/esm/actions/index.js.map +1 -1
  286. package/dist/esm/actions/patchContractCalls.d.ts +14 -9
  287. package/dist/esm/actions/patchContractCalls.d.ts.map +1 -0
  288. package/dist/esm/actions/patchContractCalls.js +12 -10
  289. package/dist/esm/actions/patchContractCalls.js.map +1 -1
  290. package/dist/esm/actions/relayTransaction.d.ts +15 -10
  291. package/dist/esm/actions/relayTransaction.d.ts.map +1 -0
  292. package/dist/esm/actions/relayTransaction.js +30 -41
  293. package/dist/esm/actions/relayTransaction.js.map +1 -1
  294. package/dist/esm/client/createClient.d.ts +7 -2
  295. package/dist/esm/client/createClient.d.ts.map +1 -0
  296. package/dist/esm/client/createClient.js +67 -74
  297. package/dist/esm/client/createClient.js.map +1 -1
  298. package/dist/esm/client/getClientStorage.d.ts +14 -8
  299. package/dist/esm/client/getClientStorage.d.ts.map +1 -0
  300. package/dist/esm/client/getClientStorage.js +45 -48
  301. package/dist/esm/client/getClientStorage.js.map +1 -1
  302. package/dist/esm/core/BaseStepExecutionTask.d.ts +9 -4
  303. package/dist/esm/core/BaseStepExecutionTask.d.ts.map +1 -0
  304. package/dist/esm/core/BaseStepExecutionTask.js +9 -5
  305. package/dist/esm/core/BaseStepExecutionTask.js.map +1 -1
  306. package/dist/esm/core/BaseStepExecutor.d.ts +23 -18
  307. package/dist/esm/core/BaseStepExecutor.d.ts.map +1 -0
  308. package/dist/esm/core/BaseStepExecutor.js +67 -76
  309. package/dist/esm/core/BaseStepExecutor.js.map +1 -1
  310. package/dist/esm/core/StatusManager.d.ts +79 -65
  311. package/dist/esm/core/StatusManager.d.ts.map +1 -0
  312. package/dist/esm/core/StatusManager.js +157 -180
  313. package/dist/esm/core/StatusManager.js.map +1 -1
  314. package/dist/esm/core/TaskPipeline.d.ts +11 -6
  315. package/dist/esm/core/TaskPipeline.d.ts.map +1 -0
  316. package/dist/esm/core/TaskPipeline.js +19 -22
  317. package/dist/esm/core/TaskPipeline.js.map +1 -1
  318. package/dist/esm/core/actionMessages.d.ts +9 -4
  319. package/dist/esm/core/actionMessages.d.ts.map +1 -0
  320. package/dist/esm/core/actionMessages.js +72 -72
  321. package/dist/esm/core/actionMessages.js.map +1 -1
  322. package/dist/esm/core/execution.d.ts +42 -37
  323. package/dist/esm/core/execution.d.ts.map +1 -0
  324. package/dist/esm/core/execution.js +126 -173
  325. package/dist/esm/core/execution.js.map +1 -1
  326. package/dist/esm/core/executionState.d.ts +17 -13
  327. package/dist/esm/core/executionState.d.ts.map +1 -0
  328. package/dist/esm/core/executionState.js +26 -24
  329. package/dist/esm/core/executionState.js.map +1 -1
  330. package/dist/esm/core/prepareRestart.d.ts +7 -2
  331. package/dist/esm/core/prepareRestart.d.ts.map +1 -0
  332. package/dist/esm/core/prepareRestart.js +18 -19
  333. package/dist/esm/core/prepareRestart.js.map +1 -1
  334. package/dist/esm/core/storage.d.ts +18 -14
  335. package/dist/esm/core/storage.d.ts.map +1 -0
  336. package/dist/esm/core/storage.js +30 -28
  337. package/dist/esm/core/storage.js.map +1 -1
  338. package/dist/esm/core/tasks/CheckBalanceTask.d.ts +18 -4
  339. package/dist/esm/core/tasks/CheckBalanceTask.d.ts.map +1 -0
  340. package/dist/esm/core/tasks/CheckBalanceTask.js +33 -21
  341. package/dist/esm/core/tasks/CheckBalanceTask.js.map +1 -1
  342. package/dist/esm/core/tasks/PrepareTransactionTask.d.ts +9 -4
  343. package/dist/esm/core/tasks/PrepareTransactionTask.d.ts.map +1 -0
  344. package/dist/esm/core/tasks/PrepareTransactionTask.js +28 -31
  345. package/dist/esm/core/tasks/PrepareTransactionTask.js.map +1 -1
  346. package/dist/esm/core/tasks/WaitForTransactionStatusTask.d.ts +12 -7
  347. package/dist/esm/core/tasks/WaitForTransactionStatusTask.d.ts.map +1 -0
  348. package/dist/esm/core/tasks/WaitForTransactionStatusTask.js +60 -73
  349. package/dist/esm/core/tasks/WaitForTransactionStatusTask.js.map +1 -1
  350. package/dist/esm/core/tasks/helpers/checkBalance.d.ts +30 -3
  351. package/dist/esm/core/tasks/helpers/checkBalance.d.ts.map +1 -0
  352. package/dist/esm/core/tasks/helpers/checkBalance.js +105 -32
  353. package/dist/esm/core/tasks/helpers/checkBalance.js.map +1 -1
  354. package/dist/esm/core/tasks/helpers/getTransactionRequestData.d.ts +7 -2
  355. package/dist/esm/core/tasks/helpers/getTransactionRequestData.d.ts.map +1 -0
  356. package/dist/esm/core/tasks/helpers/getTransactionRequestData.js +22 -24
  357. package/dist/esm/core/tasks/helpers/getTransactionRequestData.js.map +1 -1
  358. package/dist/esm/core/tasks/helpers/stepComparison.d.ts +20 -15
  359. package/dist/esm/core/tasks/helpers/stepComparison.d.ts.map +1 -0
  360. package/dist/esm/core/tasks/helpers/stepComparison.js +28 -32
  361. package/dist/esm/core/tasks/helpers/stepComparison.js.map +1 -1
  362. package/dist/esm/core/tasks/helpers/waitForTransactionStatus.d.ts +9 -4
  363. package/dist/esm/core/tasks/helpers/waitForTransactionStatus.d.ts.map +1 -0
  364. package/dist/esm/core/tasks/helpers/waitForTransactionStatus.js +44 -50
  365. package/dist/esm/core/tasks/helpers/waitForTransactionStatus.js.map +1 -1
  366. package/dist/esm/core/utils.d.ts +16 -98
  367. package/dist/esm/core/utils.d.ts.map +1 -0
  368. package/dist/esm/core/utils.js +36 -45
  369. package/dist/esm/core/utils.js.map +1 -1
  370. package/dist/esm/errors/SDKError.d.ts +16 -11
  371. package/dist/esm/errors/SDKError.d.ts.map +1 -0
  372. package/dist/esm/errors/SDKError.js +22 -20
  373. package/dist/esm/errors/SDKError.js.map +1 -1
  374. package/dist/esm/errors/baseError.d.ts +10 -5
  375. package/dist/esm/errors/baseError.d.ts.map +1 -0
  376. package/dist/esm/errors/baseError.js +17 -17
  377. package/dist/esm/errors/baseError.js.map +1 -1
  378. package/dist/esm/errors/constants.d.ts +52 -48
  379. package/dist/esm/errors/constants.d.ts.map +1 -0
  380. package/dist/esm/errors/constants.js +57 -53
  381. package/dist/esm/errors/constants.js.map +1 -1
  382. package/dist/esm/errors/errors.d.ts +30 -25
  383. package/dist/esm/errors/errors.d.ts.map +1 -0
  384. package/dist/esm/errors/errors.js +52 -48
  385. package/dist/esm/errors/errors.js.map +1 -1
  386. package/dist/esm/errors/httpError.d.ts +21 -17
  387. package/dist/esm/errors/httpError.d.ts.map +1 -0
  388. package/dist/esm/errors/httpError.js +62 -62
  389. package/dist/esm/errors/httpError.js.map +1 -1
  390. package/dist/esm/errors/utils/baseErrorRootCause.d.ts +8 -3
  391. package/dist/esm/errors/utils/baseErrorRootCause.d.ts.map +1 -0
  392. package/dist/esm/errors/utils/baseErrorRootCause.js +13 -13
  393. package/dist/esm/errors/utils/baseErrorRootCause.js.map +1 -1
  394. package/dist/esm/errors/utils/rootCause.d.ts +5 -1
  395. package/dist/esm/errors/utils/rootCause.d.ts.map +1 -0
  396. package/dist/esm/errors/utils/rootCause.js +8 -6
  397. package/dist/esm/errors/utils/rootCause.js.map +1 -1
  398. package/dist/esm/index.d.ts +55 -55
  399. package/dist/esm/index.js +53 -54
  400. package/dist/esm/package.json +1 -1
  401. package/dist/esm/types/actions.d.ts +12 -7
  402. package/dist/esm/types/actions.d.ts.map +1 -0
  403. package/dist/esm/types/actions.js +0 -1
  404. package/dist/esm/types/core.d.ts +179 -177
  405. package/dist/esm/types/core.d.ts.map +1 -0
  406. package/dist/esm/types/core.js +0 -1
  407. package/dist/esm/types/execution.d.ts +25 -20
  408. package/dist/esm/types/execution.d.ts.map +1 -0
  409. package/dist/esm/types/execution.js +0 -1
  410. package/dist/esm/types/request.d.ts +6 -2
  411. package/dist/esm/types/request.d.ts.map +1 -0
  412. package/dist/esm/types/request.js +0 -1
  413. package/dist/esm/utils/checkPackageUpdates.d.ts +5 -1
  414. package/dist/esm/utils/checkPackageUpdates.d.ts.map +1 -0
  415. package/dist/esm/utils/checkPackageUpdates.js +12 -15
  416. package/dist/esm/utils/checkPackageUpdates.js.map +1 -1
  417. package/dist/esm/utils/convertQuoteToRoute.d.ts +19 -15
  418. package/dist/esm/utils/convertQuoteToRoute.d.ts.map +1 -0
  419. package/dist/esm/utils/convertQuoteToRoute.js +72 -92
  420. package/dist/esm/utils/convertQuoteToRoute.js.map +1 -1
  421. package/dist/esm/utils/decode.d.ts +5 -1
  422. package/dist/esm/utils/decode.d.ts.map +1 -0
  423. package/dist/esm/utils/decode.js +6 -8
  424. package/dist/esm/utils/decode.js.map +1 -1
  425. package/dist/esm/utils/fetchTxErrorDetails.d.ts +5 -1
  426. package/dist/esm/utils/fetchTxErrorDetails.d.ts.map +1 -0
  427. package/dist/esm/utils/fetchTxErrorDetails.js +10 -7
  428. package/dist/esm/utils/fetchTxErrorDetails.js.map +1 -1
  429. package/dist/esm/utils/formatUnits.d.ts +7 -3
  430. package/dist/esm/utils/formatUnits.d.ts.map +1 -0
  431. package/dist/esm/utils/formatUnits.js +14 -15
  432. package/dist/esm/utils/formatUnits.js.map +1 -1
  433. package/dist/esm/utils/getTransactionMessage.d.ts +8 -3
  434. package/dist/esm/utils/getTransactionMessage.d.ts.map +1 -0
  435. package/dist/esm/utils/getTransactionMessage.js +9 -8
  436. package/dist/esm/utils/getTransactionMessage.js.map +1 -1
  437. package/dist/esm/utils/isHex.d.ts +9 -3
  438. package/dist/esm/utils/isHex.d.ts.map +1 -0
  439. package/dist/esm/utils/isHex.js +8 -8
  440. package/dist/esm/utils/isHex.js.map +1 -1
  441. package/dist/esm/utils/isRoutesRequest.d.ts +7 -2
  442. package/dist/esm/utils/isRoutesRequest.d.ts.map +1 -0
  443. package/dist/esm/utils/isRoutesRequest.js +8 -12
  444. package/dist/esm/utils/isRoutesRequest.js.map +1 -1
  445. package/dist/esm/utils/isStep.d.ts +7 -2
  446. package/dist/esm/utils/isStep.d.ts.map +1 -0
  447. package/dist/esm/utils/isStep.js +16 -23
  448. package/dist/esm/utils/isStep.js.map +1 -1
  449. package/dist/esm/utils/isToken.d.ts +7 -2
  450. package/dist/esm/utils/isToken.d.ts.map +1 -0
  451. package/dist/esm/utils/isToken.js +7 -5
  452. package/dist/esm/utils/isToken.js.map +1 -1
  453. package/dist/esm/utils/parseUnits.d.ts +7 -3
  454. package/dist/esm/utils/parseUnits.d.ts.map +1 -0
  455. package/dist/esm/utils/parseUnits.js +31 -43
  456. package/dist/esm/utils/parseUnits.js.map +1 -1
  457. package/dist/esm/utils/request.d.ts +10 -5
  458. package/dist/esm/utils/request.d.ts.map +1 -0
  459. package/dist/esm/utils/request.js +52 -67
  460. package/dist/esm/utils/request.js.map +1 -1
  461. package/dist/esm/utils/sleep.d.ts +5 -1
  462. package/dist/esm/utils/sleep.d.ts.map +1 -0
  463. package/dist/esm/utils/sleep.js +8 -4
  464. package/dist/esm/utils/sleep.js.map +1 -1
  465. package/dist/esm/utils/waitForResult.d.ts +13 -9
  466. package/dist/esm/utils/waitForResult.d.ts.map +1 -0
  467. package/dist/esm/utils/waitForResult.js +32 -35
  468. package/dist/esm/utils/waitForResult.js.map +1 -1
  469. package/dist/esm/utils/withDedupe.d.ts +18 -12
  470. package/dist/esm/utils/withDedupe.d.ts.map +1 -0
  471. package/dist/esm/utils/withDedupe.js +27 -29
  472. package/dist/esm/utils/withDedupe.js.map +1 -1
  473. package/dist/esm/utils/withTimeout.d.ts +26 -0
  474. package/dist/esm/utils/withTimeout.d.ts.map +1 -0
  475. package/dist/esm/utils/withTimeout.js +34 -0
  476. package/dist/esm/utils/withTimeout.js.map +1 -0
  477. package/dist/esm/version.d.ts +6 -2
  478. package/dist/esm/version.d.ts.map +1 -0
  479. package/dist/esm/version.js +6 -2
  480. package/dist/esm/version.js.map +1 -1
  481. package/package.json +5 -5
  482. package/src/actions/getChains.ts +2 -1
  483. package/src/actions/getTokens.ts +2 -1
  484. package/src/actions/getTools.ts +2 -1
  485. package/src/client/createClient.ts +9 -7
  486. package/src/client/getClientStorage.ts +9 -1
  487. package/src/core/prepareRestart.ts +1 -1
  488. package/src/core/tasks/CheckBalanceTask.ts +19 -2
  489. package/src/core/tasks/helpers/checkBalance.ts +201 -34
  490. package/src/core/tasks/helpers/waitForTransactionStatus.ts +1 -0
  491. package/src/core/utils.ts +1 -1
  492. package/src/errors/httpError.ts +1 -3
  493. package/src/errors/utils/baseErrorRootCause.ts +2 -2
  494. package/src/errors/utils/rootCause.ts +1 -1
  495. package/src/index.ts +5 -1
  496. package/src/types/core.ts +1 -4
  497. package/src/utils/checkPackageUpdates.ts +1 -1
  498. package/src/utils/convertQuoteToRoute.ts +1 -1
  499. package/src/utils/decode.ts +1 -1
  500. package/src/utils/fetchTxErrorDetails.ts +7 -2
  501. package/src/utils/formatUnits.ts +1 -1
  502. package/src/utils/parseUnits.ts +1 -1
  503. package/src/utils/withDedupe.ts +1 -1
  504. package/src/utils/withTimeout.ts +50 -0
  505. package/src/version.ts +1 -1
  506. package/dist/cjs/index.js.map +0 -1
  507. package/dist/cjs/types/actions.js.map +0 -1
  508. package/dist/cjs/types/core.js.map +0 -1
  509. package/dist/cjs/types/execution.js.map +0 -1
  510. package/dist/cjs/types/request.js.map +0 -1
  511. package/dist/esm/index.js.map +0 -1
  512. package/dist/esm/types/actions.js.map +0 -1
  513. package/dist/esm/types/core.js.map +0 -1
  514. package/dist/esm/types/execution.js.map +0 -1
  515. package/dist/esm/types/request.js.map +0 -1
  516. package/dist/types/actions/getChains.d.ts +0 -13
  517. package/dist/types/actions/getChains.d.ts.map +0 -1
  518. package/dist/types/actions/getConnections.d.ts +0 -11
  519. package/dist/types/actions/getConnections.d.ts.map +0 -1
  520. package/dist/types/actions/getContractCallsQuote.d.ts +0 -12
  521. package/dist/types/actions/getContractCallsQuote.d.ts.map +0 -1
  522. package/dist/types/actions/getGasRecommendation.d.ts +0 -12
  523. package/dist/types/actions/getGasRecommendation.d.ts.map +0 -1
  524. package/dist/types/actions/getNameServiceAddress.d.ts +0 -11
  525. package/dist/types/actions/getNameServiceAddress.d.ts.map +0 -1
  526. package/dist/types/actions/getQuote.d.ts +0 -14
  527. package/dist/types/actions/getQuote.d.ts.map +0 -1
  528. package/dist/types/actions/getRelayedTransactionStatus.d.ts +0 -12
  529. package/dist/types/actions/getRelayedTransactionStatus.d.ts.map +0 -1
  530. package/dist/types/actions/getRelayerQuote.d.ts +0 -13
  531. package/dist/types/actions/getRelayerQuote.d.ts.map +0 -1
  532. package/dist/types/actions/getRoutes.d.ts +0 -12
  533. package/dist/types/actions/getRoutes.d.ts.map +0 -1
  534. package/dist/types/actions/getStatus.d.ts +0 -13
  535. package/dist/types/actions/getStatus.d.ts.map +0 -1
  536. package/dist/types/actions/getStepTransaction.d.ts +0 -12
  537. package/dist/types/actions/getStepTransaction.d.ts.map +0 -1
  538. package/dist/types/actions/getToken.d.ts +0 -13
  539. package/dist/types/actions/getToken.d.ts.map +0 -1
  540. package/dist/types/actions/getTokenBalance.d.ts +0 -13
  541. package/dist/types/actions/getTokenBalance.d.ts.map +0 -1
  542. package/dist/types/actions/getTokenBalances.d.ts +0 -13
  543. package/dist/types/actions/getTokenBalances.d.ts.map +0 -1
  544. package/dist/types/actions/getTokenBalancesByChain.d.ts +0 -17
  545. package/dist/types/actions/getTokenBalancesByChain.d.ts.map +0 -1
  546. package/dist/types/actions/getTokens.d.ts +0 -16
  547. package/dist/types/actions/getTokens.d.ts.map +0 -1
  548. package/dist/types/actions/getTools.d.ts +0 -11
  549. package/dist/types/actions/getTools.d.ts.map +0 -1
  550. package/dist/types/actions/getTransactionHistory.d.ts +0 -17
  551. package/dist/types/actions/getTransactionHistory.d.ts.map +0 -1
  552. package/dist/types/actions/getWalletBalances.d.ts +0 -12
  553. package/dist/types/actions/getWalletBalances.d.ts.map +0 -1
  554. package/dist/types/actions/index.d.ts +0 -168
  555. package/dist/types/actions/index.d.ts.map +0 -1
  556. package/dist/types/actions/patchContractCalls.d.ts +0 -11
  557. package/dist/types/actions/patchContractCalls.d.ts.map +0 -1
  558. package/dist/types/actions/relayTransaction.d.ts +0 -12
  559. package/dist/types/actions/relayTransaction.d.ts.map +0 -1
  560. package/dist/types/client/createClient.d.ts +0 -3
  561. package/dist/types/client/createClient.d.ts.map +0 -1
  562. package/dist/types/client/getClientStorage.d.ts +0 -9
  563. package/dist/types/client/getClientStorage.d.ts.map +0 -1
  564. package/dist/types/core/BaseStepExecutionTask.d.ts +0 -6
  565. package/dist/types/core/BaseStepExecutionTask.d.ts.map +0 -1
  566. package/dist/types/core/BaseStepExecutor.d.ts +0 -20
  567. package/dist/types/core/BaseStepExecutor.d.ts.map +0 -1
  568. package/dist/types/core/StatusManager.d.ts +0 -70
  569. package/dist/types/core/StatusManager.d.ts.map +0 -1
  570. package/dist/types/core/TaskPipeline.d.ts +0 -8
  571. package/dist/types/core/TaskPipeline.d.ts.map +0 -1
  572. package/dist/types/core/actionMessages.d.ts +0 -5
  573. package/dist/types/core/actionMessages.d.ts.map +0 -1
  574. package/dist/types/core/execution.d.ts +0 -44
  575. package/dist/types/core/execution.d.ts.map +0 -1
  576. package/dist/types/core/executionState.d.ts +0 -18
  577. package/dist/types/core/executionState.d.ts.map +0 -1
  578. package/dist/types/core/prepareRestart.d.ts +0 -3
  579. package/dist/types/core/prepareRestart.d.ts.map +0 -1
  580. package/dist/types/core/storage.d.ts +0 -18
  581. package/dist/types/core/storage.d.ts.map +0 -1
  582. package/dist/types/core/tasks/CheckBalanceTask.d.ts +0 -6
  583. package/dist/types/core/tasks/CheckBalanceTask.d.ts.map +0 -1
  584. package/dist/types/core/tasks/PrepareTransactionTask.d.ts +0 -6
  585. package/dist/types/core/tasks/PrepareTransactionTask.d.ts.map +0 -1
  586. package/dist/types/core/tasks/WaitForTransactionStatusTask.d.ts +0 -9
  587. package/dist/types/core/tasks/WaitForTransactionStatusTask.d.ts.map +0 -1
  588. package/dist/types/core/tasks/helpers/checkBalance.d.ts +0 -4
  589. package/dist/types/core/tasks/helpers/checkBalance.d.ts.map +0 -1
  590. package/dist/types/core/tasks/helpers/getTransactionRequestData.d.ts +0 -3
  591. package/dist/types/core/tasks/helpers/getTransactionRequestData.d.ts.map +0 -1
  592. package/dist/types/core/tasks/helpers/stepComparison.d.ts +0 -17
  593. package/dist/types/core/tasks/helpers/stepComparison.d.ts.map +0 -1
  594. package/dist/types/core/tasks/helpers/waitForTransactionStatus.d.ts +0 -5
  595. package/dist/types/core/tasks/helpers/waitForTransactionStatus.d.ts.map +0 -1
  596. package/dist/types/core/utils.d.ts +0 -100
  597. package/dist/types/core/utils.d.ts.map +0 -1
  598. package/dist/types/errors/SDKError.d.ts +0 -13
  599. package/dist/types/errors/SDKError.d.ts.map +0 -1
  600. package/dist/types/errors/baseError.d.ts +0 -7
  601. package/dist/types/errors/baseError.d.ts.map +0 -1
  602. package/dist/types/errors/constants.d.ts +0 -52
  603. package/dist/types/errors/constants.d.ts.map +0 -1
  604. package/dist/types/errors/errors.d.ts +0 -34
  605. package/dist/types/errors/errors.d.ts.map +0 -1
  606. package/dist/types/errors/httpError.d.ts +0 -21
  607. package/dist/types/errors/httpError.d.ts.map +0 -1
  608. package/dist/types/errors/utils/baseErrorRootCause.d.ts +0 -4
  609. package/dist/types/errors/utils/baseErrorRootCause.d.ts.map +0 -1
  610. package/dist/types/errors/utils/rootCause.d.ts +0 -2
  611. package/dist/types/errors/utils/rootCause.d.ts.map +0 -1
  612. package/dist/types/index.d.ts +0 -56
  613. package/dist/types/index.d.ts.map +0 -1
  614. package/dist/types/types/actions.d.ts +0 -10
  615. package/dist/types/types/actions.d.ts.map +0 -1
  616. package/dist/types/types/core.d.ts +0 -183
  617. package/dist/types/types/core.d.ts.map +0 -1
  618. package/dist/types/types/execution.d.ts +0 -24
  619. package/dist/types/types/execution.d.ts.map +0 -1
  620. package/dist/types/types/request.d.ts +0 -4
  621. package/dist/types/types/request.d.ts.map +0 -1
  622. package/dist/types/utils/checkPackageUpdates.d.ts +0 -2
  623. package/dist/types/utils/checkPackageUpdates.d.ts.map +0 -1
  624. package/dist/types/utils/convertQuoteToRoute.d.ts +0 -19
  625. package/dist/types/utils/convertQuoteToRoute.d.ts.map +0 -1
  626. package/dist/types/utils/decode.d.ts +0 -2
  627. package/dist/types/utils/decode.d.ts.map +0 -1
  628. package/dist/types/utils/fetchTxErrorDetails.d.ts +0 -2
  629. package/dist/types/utils/fetchTxErrorDetails.d.ts.map +0 -1
  630. package/dist/types/utils/formatUnits.d.ts +0 -5
  631. package/dist/types/utils/formatUnits.d.ts.map +0 -1
  632. package/dist/types/utils/getTransactionMessage.d.ts +0 -4
  633. package/dist/types/utils/getTransactionMessage.d.ts.map +0 -1
  634. package/dist/types/utils/isHex.d.ts +0 -5
  635. package/dist/types/utils/isHex.d.ts.map +0 -1
  636. package/dist/types/utils/isRoutesRequest.d.ts +0 -3
  637. package/dist/types/utils/isRoutesRequest.d.ts.map +0 -1
  638. package/dist/types/utils/isStep.d.ts +0 -3
  639. package/dist/types/utils/isStep.d.ts.map +0 -1
  640. package/dist/types/utils/isToken.d.ts +0 -3
  641. package/dist/types/utils/isToken.d.ts.map +0 -1
  642. package/dist/types/utils/parseUnits.d.ts +0 -5
  643. package/dist/types/utils/parseUnits.d.ts.map +0 -1
  644. package/dist/types/utils/request.d.ts +0 -7
  645. package/dist/types/utils/request.d.ts.map +0 -1
  646. package/dist/types/utils/sleep.d.ts +0 -2
  647. package/dist/types/utils/sleep.d.ts.map +0 -1
  648. package/dist/types/utils/waitForResult.d.ts +0 -11
  649. package/dist/types/utils/waitForResult.d.ts.map +0 -1
  650. package/dist/types/utils/withDedupe.d.ts +0 -18
  651. package/dist/types/utils/withDedupe.d.ts.map +0 -1
  652. package/dist/types/version.d.ts +0 -3
  653. package/dist/types/version.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WaitForTransactionStatusTask.js","sourceRoot":"","sources":["../../../../src/core/tasks/WaitForTransactionStatusTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WaitForTransactionStatusTask.js","names":["BaseStepExecutionTask","waitForTransactionStatus","getTransactionFailedMessage","TransactionError"],"sources":["../../../../src/core/tasks/WaitForTransactionStatusTask.ts"],"sourcesContent":["import type { ExtendedTransactionInfo, FullStatusData } from '@lifi/types'\nimport { LiFiErrorCode } from '../../errors/constants.js'\nimport { TransactionError } from '../../errors/errors.js'\nimport type { ExecutionActionType } from '../../types/core.js'\nimport type { StepExecutorContext, TaskResult } from '../../types/execution.js'\nimport { getTransactionFailedMessage } from '../../utils/getTransactionMessage.js'\nimport { BaseStepExecutionTask } from '../BaseStepExecutionTask.js'\nimport { waitForTransactionStatus } from './helpers/waitForTransactionStatus.js'\n\nexport class WaitForTransactionStatusTask extends BaseStepExecutionTask {\n readonly actionType: ExecutionActionType\n\n constructor(actionType: ExecutionActionType) {\n super()\n this.actionType = actionType\n }\n\n async run(context: StepExecutorContext): Promise<TaskResult> {\n const {\n client,\n step,\n statusManager,\n pollingIntervalMs,\n toChain,\n isBridgeExecution,\n } = context\n\n // At this point, we should have a txHash or taskId\n // taskId is used for custom integrations that don't use the standard transaction hash\n let transactionHash: string | undefined\n try {\n const swapOrBridgeAction = statusManager.findAction(\n step,\n isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP'\n )\n transactionHash = swapOrBridgeAction?.txHash || swapOrBridgeAction?.taskId\n\n // Wait for the transaction status on the destination chain\n if (!transactionHash) {\n throw new Error('Transaction hash is undefined.')\n }\n\n const action = statusManager.initializeAction({\n step,\n type: this.actionType,\n chainId:\n this.actionType === 'RECEIVING_CHAIN'\n ? step.action.toChainId\n : step.action.fromChainId,\n status: 'PENDING',\n })\n\n const statusResponse = (await waitForTransactionStatus(\n client,\n statusManager,\n transactionHash,\n step,\n action.type,\n pollingIntervalMs\n )) as FullStatusData\n\n const statusReceiving =\n statusResponse.receiving as ExtendedTransactionInfo\n\n // Update action status\n statusManager.updateAction(step, action.type, 'DONE', {\n chainId: statusReceiving?.chainId || toChain.id,\n substatus: statusResponse.substatus,\n substatusMessage: statusResponse.substatusMessage,\n txHash: statusReceiving?.txHash,\n txLink:\n statusReceiving?.txLink ||\n `${toChain.metamask.blockExplorerUrls[0]}tx/${statusReceiving?.txHash}`,\n })\n\n // Update execution status\n statusManager.updateExecution(step, {\n status: 'DONE',\n ...(statusResponse.sending.amount && {\n fromAmount: statusResponse.sending.amount,\n }),\n ...(statusReceiving?.amount && { toAmount: statusReceiving.amount }),\n ...(statusReceiving?.token && { toToken: statusReceiving.token }),\n internalTxLink: statusResponse?.lifiExplorerLink,\n externalTxLink: statusResponse?.bridgeExplorerLink,\n gasCosts: [\n {\n amount: statusResponse.sending.gasAmount,\n amountUSD: statusResponse.sending.gasAmountUSD,\n token: statusResponse.sending.gasToken,\n estimate: statusResponse.sending.gasUsed,\n limit: statusResponse.sending.gasUsed,\n price: statusResponse.sending.gasPrice,\n type: 'SEND',\n },\n ],\n })\n\n return { status: 'COMPLETED' }\n } catch (e: any) {\n const htmlMessage = await getTransactionFailedMessage(\n client,\n step,\n `${toChain.metamask.blockExplorerUrls[0]}tx/${transactionHash}`\n )\n throw new TransactionError(\n LiFiErrorCode.TransactionFailed,\n htmlMessage ??\n 'Failed while waiting for status of destination chain transaction.',\n e\n )\n }\n }\n}\n"],"mappings":";;;;;;;AASA,IAAa,+BAAb,cAAkDA,mCAAAA,sBAAsB;CACtE;CAEA,YAAY,YAAiC;EAC3C,MAAM;EACN,KAAK,aAAa;CACpB;CAEA,MAAM,IAAI,SAAmD;EAC3D,MAAM,EACJ,QACA,MACA,eACA,mBACA,SACA,sBACE;EAIJ,IAAI;EACJ,IAAI;GACF,MAAM,qBAAqB,cAAc,WACvC,MACA,oBAAoB,gBAAgB,MACtC;GACA,kBAAkB,oBAAoB,UAAU,oBAAoB;GAGpE,IAAI,CAAC,iBACH,MAAM,IAAI,MAAM,gCAAgC;GAGlD,MAAM,SAAS,cAAc,iBAAiB;IAC5C;IACA,MAAM,KAAK;IACX,SACE,KAAK,eAAe,oBAChB,KAAK,OAAO,YACZ,KAAK,OAAO;IAClB,QAAQ;GACV,CAAC;GAED,MAAM,iBAAkB,MAAMC,oDAAAA,yBAC5B,QACA,eACA,iBACA,MACA,OAAO,MACP,iBACF;GAEA,MAAM,kBACJ,eAAe;GAGjB,cAAc,aAAa,MAAM,OAAO,MAAM,QAAQ;IACpD,SAAS,iBAAiB,WAAW,QAAQ;IAC7C,WAAW,eAAe;IAC1B,kBAAkB,eAAe;IACjC,QAAQ,iBAAiB;IACzB,QACE,iBAAiB,UACjB,GAAG,QAAQ,SAAS,kBAAkB,GAAG,KAAK,iBAAiB;GACnE,CAAC;GAGD,cAAc,gBAAgB,MAAM;IAClC,QAAQ;IACR,GAAI,eAAe,QAAQ,UAAU,EACnC,YAAY,eAAe,QAAQ,OACrC;IACA,GAAI,iBAAiB,UAAU,EAAE,UAAU,gBAAgB,OAAO;IAClE,GAAI,iBAAiB,SAAS,EAAE,SAAS,gBAAgB,MAAM;IAC/D,gBAAgB,gBAAgB;IAChC,gBAAgB,gBAAgB;IAChC,UAAU,CACR;KACE,QAAQ,eAAe,QAAQ;KAC/B,WAAW,eAAe,QAAQ;KAClC,OAAO,eAAe,QAAQ;KAC9B,UAAU,eAAe,QAAQ;KACjC,OAAO,eAAe,QAAQ;KAC9B,OAAO,eAAe,QAAQ;KAC9B,MAAM;IACR,CACF;GACF,CAAC;GAED,OAAO,EAAE,QAAQ,YAAY;EAC/B,SAAS,GAAQ;GACf,MAAM,cAAc,MAAMC,oCAAAA,4BACxB,QACA,MACA,GAAG,QAAQ,SAAS,kBAAkB,GAAG,KAAK,iBAChD;GACA,MAAM,IAAIC,sBAAAA,iBAAAA,MAER,eACE,qEACF,CACF;EACF;CACF;AACF"}
@@ -1,3 +1,30 @@
1
- import type { LiFiStep } from '@lifi/types';
2
- import type { SDKClient } from '../../../types/core.js';
3
- export declare const checkBalance: (client: SDKClient, walletAddress: string, step: LiFiStep, depth?: number) => Promise<void>;
1
+ import { SDKClient } from "../../../types/core.js";
2
+ import { LiFiStep } from "@lifi/types";
3
+
4
+ //#region src/core/tasks/helpers/checkBalance.d.ts
5
+ type CheckBalanceOptions = {
6
+ /**
7
+ * Set to `false` when outer-tx gas is paid by something other than
8
+ * `walletAddress` (SCA executor, 4337 bundler / paymaster, relayer):
9
+ * `gasPart` is excluded from the sufficiency check and slippage rescue.
10
+ * Source amount and non-included fees (e.g. LZ `msg.value`) are still
11
+ * verified. Defaults to `true` (strict, today's behavior).
12
+ */
13
+ walletPaysGas?: boolean;
14
+ };
15
+ /**
16
+ * Verifies that the wallet holds enough of every token required to execute
17
+ * the step on its source chain — the source-token amount, any gas costs, and
18
+ * any non-included fee costs. Reads all balances in one batched provider
19
+ * call, retries within a bounded budget to absorb transient RPC failures and
20
+ * post-confirmation propagation lag, and applies slippage to the source-token
21
+ * portion only as a last resort (overhead is never trimmed).
22
+ *
23
+ * Throws BalanceError("The balance is too low.") on a genuine shortfall, or
24
+ * BalanceError("Could not read wallet balance.") if the balance can't be read
25
+ * after retries.
26
+ */
27
+ declare const checkBalance: (client: SDKClient, walletAddress: string, step: LiFiStep, options?: CheckBalanceOptions) => Promise<void>;
28
+ //#endregion
29
+ export { CheckBalanceOptions, checkBalance };
30
+ //# sourceMappingURL=checkBalance.d.ts.map
@@ -1,37 +1,108 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkBalance = void 0;
4
- const getTokenBalance_js_1 = require("../../../actions/getTokenBalance.js");
5
- const errors_js_1 = require("../../../errors/errors.js");
6
- const formatUnits_js_1 = require("../../../utils/formatUnits.js");
7
- const sleep_js_1 = require("../../../utils/sleep.js");
8
- const checkBalance = async (client, walletAddress, step, depth = 0) => {
9
- const token = await (0, getTokenBalance_js_1.getTokenBalance)(client, walletAddress, step.action.fromToken);
10
- if (token) {
11
- const currentBalance = token.amount ?? 0n;
12
- const neededBalance = BigInt(step.action.fromAmount);
13
- if (currentBalance < neededBalance) {
14
- if (depth <= 3) {
15
- await (0, sleep_js_1.sleep)(200);
16
- await (0, exports.checkBalance)(client, walletAddress, step, depth + 1);
17
- }
18
- else if ((neededBalance *
19
- BigInt((1 - (step.action.slippage ?? 0)) * 1_000_000_000)) /
20
- 1000000000n <=
21
- currentBalance) {
22
- step.action.fromAmount = currentBalance.toString();
23
- }
24
- else {
25
- const needed = (0, formatUnits_js_1.formatUnits)(neededBalance, token.decimals);
26
- const current = (0, formatUnits_js_1.formatUnits)(currentBalance, token.decimals);
27
- let errorMessage = `Your ${token.symbol} balance is too low, you try to transfer ${needed} ${token.symbol}, but your wallet only holds ${current} ${token.symbol}. No funds have been sent.`;
28
- if (currentBalance !== 0n) {
29
- errorMessage += `If the problem consists, please delete this transfer and start a new one with a maximum of ${current} ${token.symbol}.`;
30
- }
31
- throw new errors_js_1.BalanceError('The balance is too low.', new Error(errorMessage));
32
- }
33
- }
34
- }
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_errors_errors = require("../../../errors/errors.js");
3
+ const require_utils_sleep = require("../../../utils/sleep.js");
4
+ const require_utils_formatUnits = require("../../../utils/formatUnits.js");
5
+ const require_utils_withTimeout = require("../../../utils/withTimeout.js");
6
+ //#region src/core/tasks/helpers/checkBalance.ts
7
+ const MAX_ATTEMPTS = 6;
8
+ const BACKOFF_BASE_MS = 150;
9
+ const OVERALL_TIMEOUT_MS = 1e4;
10
+ const SLIPPAGE_PRECISION = 1000000000n;
11
+ /**
12
+ * Verifies that the wallet holds enough of every token required to execute
13
+ * the step on its source chain — the source-token amount, any gas costs, and
14
+ * any non-included fee costs. Reads all balances in one batched provider
15
+ * call, retries within a bounded budget to absorb transient RPC failures and
16
+ * post-confirmation propagation lag, and applies slippage to the source-token
17
+ * portion only as a last resort (overhead is never trimmed).
18
+ *
19
+ * Throws BalanceError("The balance is too low.") on a genuine shortfall, or
20
+ * BalanceError("Could not read wallet balance.") if the balance can't be read
21
+ * after retries.
22
+ */
23
+ const checkBalance = async (client, walletAddress, step, options = {}) => {
24
+ const fromChainId = step.action.fromChainId;
25
+ const fromChain = await client.getChainById(fromChainId);
26
+ const walletPaysGas = (options.walletPaysGas ?? true) && !fromChain.nonStandardNativeDecimals;
27
+ const requirements = /* @__PURE__ */ new Map();
28
+ const add = (token, amount, bucket) => {
29
+ if (token.chainId !== fromChainId || amount === 0n) return;
30
+ const key = token.address.toLowerCase();
31
+ const req = requirements.get(key) ?? {
32
+ token,
33
+ sourcePart: 0n,
34
+ gasPart: 0n,
35
+ feePart: 0n
36
+ };
37
+ if (bucket === "source") req.sourcePart += amount;
38
+ else if (bucket === "gas") req.gasPart += amount;
39
+ else req.feePart += amount;
40
+ requirements.set(key, req);
41
+ };
42
+ add(step.action.fromToken, BigInt(step.action.fromAmount), "source");
43
+ for (const gas of step.estimate?.gasCosts ?? []) add(gas.token, BigInt(gas.amount), "gas");
44
+ for (const fee of step.estimate?.feeCosts ?? []) if (!fee.included) add(fee.token, BigInt(fee.amount), "fee");
45
+ const reservedOverhead = (r) => r.feePart + (walletPaysGas ? r.gasPart : 0n);
46
+ const need = (r) => r.sourcePart + reservedOverhead(r);
47
+ for (const [key, req] of requirements) if (need(req) === 0n) requirements.delete(key);
48
+ if (requirements.size === 0) return;
49
+ const provider = client.providers.find((p) => p.isAddress(walletAddress));
50
+ if (!provider) throw new Error(`SDK Token Provider for ${walletAddress} is not found.`);
51
+ const reqs = Array.from(requirements.values());
52
+ const tokens = reqs.map((r) => r.token);
53
+ const slippage = step.action.slippage ?? 0;
54
+ const slippageScaled = BigInt(Math.floor((1 - slippage) * Number(SLIPPAGE_PRECISION)));
55
+ await require_utils_withTimeout.withTimeout(async () => {
56
+ for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
57
+ const isFinal = attempt === MAX_ATTEMPTS - 1;
58
+ let balances;
59
+ try {
60
+ balances = await provider.getBalance(client, walletAddress, tokens);
61
+ } catch (error) {
62
+ if (isFinal) throw new require_errors_errors.BalanceError("Could not read wallet balance.", error);
63
+ await require_utils_sleep.sleep(BACKOFF_BASE_MS * 2 ** attempt);
64
+ continue;
65
+ }
66
+ const balanceByAddress = new Map(balances.map((b) => [b.address.toLowerCase(), b.amount]));
67
+ const unknown = [];
68
+ const insufficient = [];
69
+ for (const req of reqs) {
70
+ const have = balanceByAddress.get(req.token.address.toLowerCase());
71
+ if (have === void 0) unknown.push(req.token);
72
+ else if (have < need(req)) insufficient.push({
73
+ req,
74
+ have
75
+ });
76
+ }
77
+ if (unknown.length === 0 && insufficient.length === 0) return;
78
+ if (isFinal && unknown.length === 0 && insufficient.length === 1 && insufficient[0].req.sourcePart > 0n) {
79
+ const { req, have } = insufficient[0];
80
+ const reserved = reservedOverhead(req);
81
+ if (have >= req.sourcePart * slippageScaled / SLIPPAGE_PRECISION + reserved) {
82
+ const newFromAmount = (have - reserved).toString();
83
+ step.action.fromAmount = newFromAmount;
84
+ if (step.includedSteps?.length) step.includedSteps[0].action.fromAmount = newFromAmount;
85
+ return;
86
+ }
87
+ }
88
+ if (isFinal) {
89
+ if (unknown.length > 0) throw new require_errors_errors.BalanceError("Could not read wallet balance.", /* @__PURE__ */ new Error(`Could not read balance for: ${unknown.map((t) => t.symbol || t.address).join(", ")}.`));
90
+ const lines = insufficient.map(({ req, have }) => {
91
+ const needed = require_utils_formatUnits.formatUnits(need(req), req.token.decimals);
92
+ const current = require_utils_formatUnits.formatUnits(have, req.token.decimals);
93
+ const symbol = req.token.symbol;
94
+ return req.sourcePart > 0n ? `Your ${symbol} balance is too low, you try to transfer ${needed} ${symbol}, but your wallet only holds ${current} ${symbol}.` : `Insufficient ${symbol} for fees: need ${needed} ${symbol}, have ${current} ${symbol}.`;
95
+ });
96
+ throw new require_errors_errors.BalanceError("The balance is too low.", /* @__PURE__ */ new Error(`${lines.join(" ")} No funds have been sent.`));
97
+ }
98
+ await require_utils_sleep.sleep(BACKOFF_BASE_MS * 2 ** attempt);
99
+ }
100
+ }, {
101
+ timeout: OVERALL_TIMEOUT_MS,
102
+ errorInstance: new require_errors_errors.BalanceError("Could not read wallet balance.")
103
+ });
35
104
  };
105
+ //#endregion
36
106
  exports.checkBalance = checkBalance;
107
+
37
108
  //# sourceMappingURL=checkBalance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkBalance.js","sourceRoot":"","sources":["../../../../../src/core/tasks/helpers/checkBalance.ts"],"names":[],"mappings":";;;AACA,4EAAqE;AACrE,yDAAwD;AAExD,kEAA2D;AAC3D,sDAA+C;AAExC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAiB,EACjB,aAAqB,EACrB,IAAc,EACd,KAAK,GAAG,CAAC,EACM,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,IAAA,oCAAe,EACjC,MAAM,EACN,aAAa,EACb,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAA;IACD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QACzC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEpD,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;YACnC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,IAAA,gBAAK,EAAC,GAAG,CAAC,CAAA;gBAChB,MAAM,IAAA,oBAAY,EAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC5D,CAAC;iBAAM,IACL,CAAC,aAAa;gBACZ,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;gBAC1D,WAAc;gBAChB,cAAc,EACd,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAA;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,IAAA,4BAAW,EAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACzD,MAAM,OAAO,GAAG,IAAA,4BAAW,EAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC3D,IAAI,YAAY,GAAG,QAAQ,KAAK,CAAC,MAAM,4CAA4C,MAAM,IAAI,KAAK,CAAC,MAAM,gCAAgC,OAAO,IAAI,KAAK,CAAC,MAAM,4BAA4B,CAAA;gBAE5L,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;oBAC1B,YAAY,IAAI,8FAA8F,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAA;gBAC1I,CAAC;gBAED,MAAM,IAAI,wBAAY,CACpB,yBAAyB,EACzB,IAAI,KAAK,CAAC,YAAY,CAAC,CACxB,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AA3CY,QAAA,YAAY,gBA2CxB"}
1
+ {"version":3,"file":"checkBalance.js","names":["withTimeout","BalanceError","sleep","formatUnits"],"sources":["../../../../../src/core/tasks/helpers/checkBalance.ts"],"sourcesContent":["import type { LiFiStep, Token, TokenAmount } from '@lifi/types'\nimport { BalanceError } from '../../../errors/errors.js'\nimport type { SDKClient } from '../../../types/core.js'\nimport { formatUnits } from '../../../utils/formatUnits.js'\nimport { sleep } from '../../../utils/sleep.js'\nimport { withTimeout } from '../../../utils/withTimeout.js'\n\nconst MAX_ATTEMPTS = 6\n// Exponential backoff: 150, 300, 600, 1200, 2400 → ≈4.65s of sleep total.\nconst BACKOFF_BASE_MS = 150\nconst OVERALL_TIMEOUT_MS = 10_000\nconst SLIPPAGE_PRECISION = 1_000_000_000n\n\ntype Bucket = 'source' | 'gas' | 'fee'\n\ntype Requirement = {\n token: Token\n sourcePart: bigint // step.action.fromAmount\n gasPart: bigint // step.estimate.gasCosts in this token\n feePart: bigint // non-included step.estimate.feeCosts in this token\n}\n\nexport type CheckBalanceOptions = {\n /**\n * Set to `false` when outer-tx gas is paid by something other than\n * `walletAddress` (SCA executor, 4337 bundler / paymaster, relayer):\n * `gasPart` is excluded from the sufficiency check and slippage rescue.\n * Source amount and non-included fees (e.g. LZ `msg.value`) are still\n * verified. Defaults to `true` (strict, today's behavior).\n */\n walletPaysGas?: boolean\n}\n\n/**\n * Verifies that the wallet holds enough of every token required to execute\n * the step on its source chain — the source-token amount, any gas costs, and\n * any non-included fee costs. Reads all balances in one batched provider\n * call, retries within a bounded budget to absorb transient RPC failures and\n * post-confirmation propagation lag, and applies slippage to the source-token\n * portion only as a last resort (overhead is never trimmed).\n *\n * Throws BalanceError(\"The balance is too low.\") on a genuine shortfall, or\n * BalanceError(\"Could not read wallet balance.\") if the balance can't be read\n * after retries.\n */\nexport const checkBalance = async (\n client: SDKClient,\n walletAddress: string,\n step: LiFiStep,\n options: CheckBalanceOptions = {}\n): Promise<void> => {\n const fromChainId = step.action.fromChainId\n // Chains with non-standard native decimals (e.g. Tempo, Stable) report\n // gas costs in units that don't align with wallet balances — drop the\n // gas portion of the check on those chains.\n const fromChain = await client.getChainById(fromChainId)\n const walletPaysGas =\n (options.walletPaysGas ?? true) && !fromChain.nonStandardNativeDecimals\n const requirements = new Map<string, Requirement>()\n const add = (token: Token, amount: bigint, bucket: Bucket): void => {\n if (token.chainId !== fromChainId || amount === 0n) {\n return\n }\n const key = token.address.toLowerCase()\n const req = requirements.get(key) ?? {\n token,\n sourcePart: 0n,\n gasPart: 0n,\n feePart: 0n,\n }\n if (bucket === 'source') {\n req.sourcePart += amount\n } else if (bucket === 'gas') {\n req.gasPart += amount\n } else {\n req.feePart += amount\n }\n requirements.set(key, req)\n }\n add(step.action.fromToken, BigInt(step.action.fromAmount), 'source')\n for (const gas of step.estimate?.gasCosts ?? []) {\n add(gas.token, BigInt(gas.amount), 'gas')\n }\n for (const fee of step.estimate?.feeCosts ?? []) {\n // Included fees are already part of fromAmount — don't count twice.\n if (!fee.included) {\n add(fee.token, BigInt(fee.amount), 'fee')\n }\n }\n\n const reservedOverhead = (r: Requirement): bigint =>\n r.feePart + (walletPaysGas ? r.gasPart : 0n)\n const need = (r: Requirement): bigint => r.sourcePart + reservedOverhead(r)\n\n // Drop pure-gas entries when `walletPaysGas` is false (e.g. native ETH\n // on Safe Apps with only `gasPart`) — saves one balance read each.\n for (const [key, req] of requirements) {\n if (need(req) === 0n) {\n requirements.delete(key)\n }\n }\n\n if (requirements.size === 0) {\n return\n }\n\n // Provider is dispatched by wallet address; all requirements share the\n // source chain, which matches this provider by virtue of the address.\n const provider = client.providers.find((p) => p.isAddress(walletAddress))\n if (!provider) {\n throw new Error(`SDK Token Provider for ${walletAddress} is not found.`)\n }\n\n const reqs = Array.from(requirements.values())\n const tokens = reqs.map((r) => r.token)\n const slippage = step.action.slippage ?? 0\n const slippageScaled = BigInt(\n Math.floor((1 - slippage) * Number(SLIPPAGE_PRECISION))\n )\n\n await withTimeout(\n async () => {\n for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {\n const isFinal = attempt === MAX_ATTEMPTS - 1\n\n let balances: TokenAmount[]\n try {\n balances = await provider.getBalance(client, walletAddress, tokens)\n } catch (error) {\n if (isFinal) {\n throw new BalanceError(\n 'Could not read wallet balance.',\n error as Error\n )\n }\n await sleep(BACKOFF_BASE_MS * 2 ** attempt)\n continue\n }\n\n const balanceByAddress = new Map(\n balances.map((b) => [b.address.toLowerCase(), b.amount] as const)\n )\n\n const unknown: Token[] = []\n const insufficient: { req: Requirement; have: bigint }[] = []\n for (const req of reqs) {\n const have = balanceByAddress.get(req.token.address.toLowerCase())\n if (have === undefined) {\n unknown.push(req.token)\n } else if (have < need(req)) {\n insufficient.push({ req, have })\n }\n }\n\n if (unknown.length === 0 && insufficient.length === 0) {\n return\n }\n\n // Final-attempt slippage rescue: only when the sole shortfall is\n // the source-token portion. Trim source to (balance − reserved\n // overhead) so the overhead reserve is preserved.\n if (\n isFinal &&\n unknown.length === 0 &&\n insufficient.length === 1 &&\n insufficient[0].req.sourcePart > 0n\n ) {\n const { req, have } = insufficient[0]\n const reserved = reservedOverhead(req)\n const minAcceptable =\n (req.sourcePart * slippageScaled) / SLIPPAGE_PRECISION + reserved\n if (have >= minAcceptable) {\n const newFromAmount = (have - reserved).toString()\n step.action.fromAmount = newFromAmount\n if (step.includedSteps?.length) {\n step.includedSteps[0].action.fromAmount = newFromAmount\n }\n return\n }\n }\n\n if (isFinal) {\n if (unknown.length > 0) {\n throw new BalanceError(\n 'Could not read wallet balance.',\n new Error(\n `Could not read balance for: ${unknown\n .map((t) => t.symbol || t.address)\n .join(', ')}.`\n )\n )\n }\n const lines = insufficient.map(({ req, have }) => {\n const needed = formatUnits(need(req), req.token.decimals)\n const current = formatUnits(have, req.token.decimals)\n const symbol = req.token.symbol\n // The \"fees\" branch covers pure-overhead tokens; with\n // walletPaysGas=false, gas is excluded from `need(req)` so it\n // only fires for genuine fee shortfalls.\n return req.sourcePart > 0n\n ? `Your ${symbol} balance is too low, you try to transfer ${needed} ${symbol}, but your wallet only holds ${current} ${symbol}.`\n : `Insufficient ${symbol} for fees: need ${needed} ${symbol}, have ${current} ${symbol}.`\n })\n throw new BalanceError(\n 'The balance is too low.',\n new Error(`${lines.join(' ')} No funds have been sent.`)\n )\n }\n\n await sleep(BACKOFF_BASE_MS * 2 ** attempt)\n }\n },\n {\n timeout: OVERALL_TIMEOUT_MS,\n errorInstance: new BalanceError('Could not read wallet balance.'),\n }\n )\n}\n"],"mappings":"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"}
@@ -1,2 +1,7 @@
1
- import type { ExecutionOptions, LiFiStepExtended } from '../../../types/core.js';
2
- export declare const getTransactionRequestData: (step: LiFiStepExtended, executionOptions?: ExecutionOptions) => Promise<string>;
1
+ import { ExecutionOptions, LiFiStepExtended } from "../../../types/core.js";
2
+
3
+ //#region src/core/tasks/helpers/getTransactionRequestData.d.ts
4
+ declare const getTransactionRequestData: (step: LiFiStepExtended, executionOptions?: ExecutionOptions) => Promise<string>;
5
+ //#endregion
6
+ export { getTransactionRequestData };
7
+ //# sourceMappingURL=getTransactionRequestData.d.ts.map
@@ -1,30 +1,25 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTransactionRequestData = void 0;
4
- const constants_js_1 = require("../../../errors/constants.js");
5
- const errors_js_1 = require("../../../errors/errors.js");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../../../errors/constants.js");
3
+ const require_errors_errors = require("../../../errors/errors.js");
4
+ //#region src/core/tasks/helpers/getTransactionRequestData.ts
6
5
  const getTransactionRequestData = async (step, executionOptions) => {
7
- if (!step.transactionRequest?.data) {
8
- throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction. Transaction request data is not found.');
9
- }
10
- let transactionRequest = {
11
- data: step.transactionRequest.data,
12
- };
13
- if (executionOptions?.updateTransactionRequestHook) {
14
- const customizedTransactionRequest = await executionOptions.updateTransactionRequestHook({
15
- requestType: 'transaction',
16
- ...transactionRequest,
17
- });
18
- transactionRequest = {
19
- ...transactionRequest,
20
- ...customizedTransactionRequest,
21
- };
22
- }
23
- const transactionRequestData = transactionRequest.data;
24
- if (!transactionRequestData) {
25
- throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction. Transaction request data is not found.');
26
- }
27
- return transactionRequestData;
6
+ if (!step.transactionRequest?.data) throw new require_errors_errors.TransactionError(1008, "Unable to prepare transaction. Transaction request data is not found.");
7
+ let transactionRequest = { data: step.transactionRequest.data };
8
+ if (executionOptions?.updateTransactionRequestHook) {
9
+ const customizedTransactionRequest = await executionOptions.updateTransactionRequestHook({
10
+ requestType: "transaction",
11
+ ...transactionRequest
12
+ });
13
+ transactionRequest = {
14
+ ...transactionRequest,
15
+ ...customizedTransactionRequest
16
+ };
17
+ }
18
+ const transactionRequestData = transactionRequest.data;
19
+ if (!transactionRequestData) throw new require_errors_errors.TransactionError(1008, "Unable to prepare transaction. Transaction request data is not found.");
20
+ return transactionRequestData;
28
21
  };
22
+ //#endregion
29
23
  exports.getTransactionRequestData = getTransactionRequestData;
24
+
30
25
  //# sourceMappingURL=getTransactionRequestData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTransactionRequestData.js","sourceRoot":"","sources":["../../../../../src/core/tasks/helpers/getTransactionRequestData.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAC5D,yDAA4D;AAOrD,MAAM,yBAAyB,GAAG,KAAK,EAC5C,IAAsB,EACtB,gBAAmC,EAClB,EAAE;IACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,4BAAgB,CACxB,4BAAa,CAAC,qBAAqB,EACnC,uEAAuE,CACxE,CAAA;IACH,CAAC;IAED,IAAI,kBAAkB,GAA0B;QAC9C,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI;KACnC,CAAA;IAED,IAAI,gBAAgB,EAAE,4BAA4B,EAAE,CAAC;QACnD,MAAM,4BAA4B,GAChC,MAAM,gBAAgB,CAAC,4BAA4B,CAAC;YAClD,WAAW,EAAE,aAAa;YAC1B,GAAG,kBAAkB;SACtB,CAAC,CAAA;QAEJ,kBAAkB,GAAG;YACnB,GAAG,kBAAkB;YACrB,GAAG,4BAA4B;SAChC,CAAA;IACH,CAAC;IAED,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,IAAI,CAAA;IAEtD,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,MAAM,IAAI,4BAAgB,CACxB,4BAAa,CAAC,qBAAqB,EACnC,uEAAuE,CACxE,CAAA;IACH,CAAC;IAED,OAAO,sBAAsB,CAAA;AAC/B,CAAC,CAAA;AAtCY,QAAA,yBAAyB,6BAsCrC"}
1
+ {"version":3,"file":"getTransactionRequestData.js","names":["TransactionError"],"sources":["../../../../../src/core/tasks/helpers/getTransactionRequestData.ts"],"sourcesContent":["import { LiFiErrorCode } from '../../../errors/constants.js'\nimport { TransactionError } from '../../../errors/errors.js'\nimport type {\n ExecutionOptions,\n LiFiStepExtended,\n TransactionParameters,\n} from '../../../types/core.js'\n\nexport const getTransactionRequestData = async (\n step: LiFiStepExtended,\n executionOptions?: ExecutionOptions\n): Promise<string> => {\n if (!step.transactionRequest?.data) {\n throw new TransactionError(\n LiFiErrorCode.TransactionUnprepared,\n 'Unable to prepare transaction. Transaction request data is not found.'\n )\n }\n\n let transactionRequest: TransactionParameters = {\n data: step.transactionRequest.data,\n }\n\n if (executionOptions?.updateTransactionRequestHook) {\n const customizedTransactionRequest: TransactionParameters =\n await executionOptions.updateTransactionRequestHook({\n requestType: 'transaction',\n ...transactionRequest,\n })\n\n transactionRequest = {\n ...transactionRequest,\n ...customizedTransactionRequest,\n }\n }\n\n const transactionRequestData = transactionRequest.data\n\n if (!transactionRequestData) {\n throw new TransactionError(\n LiFiErrorCode.TransactionUnprepared,\n 'Unable to prepare transaction. Transaction request data is not found.'\n )\n }\n\n return transactionRequestData\n}\n"],"mappings":";;;;AAQA,MAAa,4BAA4B,OACvC,MACA,qBACoB;CACpB,IAAI,CAAC,KAAK,oBAAoB,MAC5B,MAAM,IAAIA,sBAAAA,iBAAAA,MAER,uEACF;CAGF,IAAI,qBAA4C,EAC9C,MAAM,KAAK,mBAAmB,KAChC;CAEA,IAAI,kBAAkB,8BAA8B;EAClD,MAAM,+BACJ,MAAM,iBAAiB,6BAA6B;GAClD,aAAa;GACb,GAAG;EACL,CAAC;EAEH,qBAAqB;GACnB,GAAG;GACH,GAAG;EACL;CACF;CAEA,MAAM,yBAAyB,mBAAmB;CAElD,IAAI,CAAC,wBACH,MAAM,IAAIA,sBAAAA,iBAAAA,MAER,uEACF;CAGF,OAAO;AACT"}
@@ -1,4 +1,21 @@
1
- import type { LiFiStep } from '@lifi/types';
2
- import type { StatusManager } from '../../../core/StatusManager.js';
3
- import type { ExecutionOptions } from '../../../types/core.js';
4
- export declare const stepComparison: (statusManager: StatusManager, oldStep: LiFiStep, newStep: LiFiStep, allowUserInteraction: boolean, executionOptions?: ExecutionOptions) => Promise<LiFiStep>;
1
+ import { ExecutionOptions } from "../../../types/core.js";
2
+ import { StatusManager } from "../../StatusManager.js";
3
+ import { LiFiStep } from "@lifi/types";
4
+
5
+ //#region src/core/tasks/helpers/stepComparison.d.ts
6
+ /**
7
+ * This method checks whether the new and updated Step meets the required exchange rate conditions.
8
+ * If yes it returns the updated Step.
9
+ * If no and if user interaction is allowed it triggers the acceptExchangeRateUpdateHook. If no user interaction is allowed it aborts.
10
+ * @param statusManager
11
+ * @param oldStep
12
+ * @param newStep
13
+ * @param settings
14
+ * @param allowUserInteraction
15
+ * @param executionOptions
16
+ * @returns Return LiFiStep
17
+ */
18
+ declare const stepComparison: (statusManager: StatusManager, oldStep: LiFiStep, newStep: LiFiStep, allowUserInteraction: boolean, executionOptions?: ExecutionOptions) => Promise<LiFiStep>;
19
+ //#endregion
20
+ export { stepComparison };
21
+ //# sourceMappingURL=stepComparison.d.ts.map
@@ -1,25 +1,32 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stepComparison = void 0;
4
- const utils_js_1 = require("../../../core/utils.js");
5
- const constants_js_1 = require("../../../errors/constants.js");
6
- const errors_js_1 = require("../../../errors/errors.js");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../../../errors/constants.js");
3
+ const require_errors_errors = require("../../../errors/errors.js");
4
+ const require_core_utils = require("../../utils.js");
5
+ //#region src/core/tasks/helpers/stepComparison.ts
6
+ /**
7
+ * This method checks whether the new and updated Step meets the required exchange rate conditions.
8
+ * If yes it returns the updated Step.
9
+ * If no and if user interaction is allowed it triggers the acceptExchangeRateUpdateHook. If no user interaction is allowed it aborts.
10
+ * @param statusManager
11
+ * @param oldStep
12
+ * @param newStep
13
+ * @param settings
14
+ * @param allowUserInteraction
15
+ * @param executionOptions
16
+ * @returns Return LiFiStep
17
+ */
7
18
  const stepComparison = async (statusManager, oldStep, newStep, allowUserInteraction, executionOptions) => {
8
- if ((0, utils_js_1.checkStepSlippageThreshold)(oldStep, newStep)) {
9
- return statusManager.updateStepInRoute(newStep);
10
- }
11
- let allowStepUpdate;
12
- if (allowUserInteraction) {
13
- allowStepUpdate = await executionOptions?.acceptExchangeRateUpdateHook?.({
14
- oldToAmount: oldStep.estimate.toAmount,
15
- newToAmount: newStep.estimate.toAmount,
16
- toToken: newStep.action.toToken,
17
- });
18
- }
19
- if (!allowStepUpdate) {
20
- throw new errors_js_1.TransactionError(constants_js_1.LiFiErrorCode.ExchangeRateUpdateCanceled, 'Exchange rate has changed!\nTransaction was not sent, your funds are still in your wallet.\nThe exchange rate has changed and the previous estimation can not be fulfilled due to value loss.');
21
- }
22
- return statusManager.updateStepInRoute(newStep);
19
+ if (require_core_utils.checkStepSlippageThreshold(oldStep, newStep)) return statusManager.updateStepInRoute(newStep);
20
+ let allowStepUpdate;
21
+ if (allowUserInteraction) allowStepUpdate = await executionOptions?.acceptExchangeRateUpdateHook?.({
22
+ oldToAmount: oldStep.estimate.toAmount,
23
+ newToAmount: newStep.estimate.toAmount,
24
+ toToken: newStep.action.toToken
25
+ });
26
+ if (!allowStepUpdate) throw new require_errors_errors.TransactionError(1016, "Exchange rate has changed!\nTransaction was not sent, your funds are still in your wallet.\nThe exchange rate has changed and the previous estimation can not be fulfilled due to value loss.");
27
+ return statusManager.updateStepInRoute(newStep);
23
28
  };
29
+ //#endregion
24
30
  exports.stepComparison = stepComparison;
31
+
25
32
  //# sourceMappingURL=stepComparison.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stepComparison.js","sourceRoot":"","sources":["../../../../../src/core/tasks/helpers/stepComparison.ts"],"names":[],"mappings":";;;AAEA,qDAAmE;AACnE,+DAA4D;AAC5D,yDAA4D;AAerD,MAAM,cAAc,GAAG,KAAK,EACjC,aAA4B,EAC5B,OAAiB,EACjB,OAAiB,EACjB,oBAA6B,EAC7B,gBAAmC,EAChB,EAAE;IAErB,IAAI,IAAA,qCAA0B,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACjD,OAAO,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,eAAoC,CAAA;IACxC,IAAI,oBAAoB,EAAE,CAAC;QACzB,eAAe,GAAG,MAAM,gBAAgB,EAAE,4BAA4B,EAAE,CAAC;YACvE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;YACtC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;YACtC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;SAChC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,CAAC;QAErB,MAAM,IAAI,4BAAgB,CACxB,4BAAa,CAAC,0BAA0B,EACxC,+LAA+L,CAChM,CAAA;IACH,CAAC;IAED,OAAO,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACjD,CAAC,CAAA;AA9BY,QAAA,cAAc,kBA8B1B"}
1
+ {"version":3,"file":"stepComparison.js","names":["checkStepSlippageThreshold","TransactionError"],"sources":["../../../../../src/core/tasks/helpers/stepComparison.ts"],"sourcesContent":["import type { LiFiStep } from '@lifi/types'\nimport type { StatusManager } from '../../../core/StatusManager.js'\nimport { checkStepSlippageThreshold } from '../../../core/utils.js'\nimport { LiFiErrorCode } from '../../../errors/constants.js'\nimport { TransactionError } from '../../../errors/errors.js'\nimport type { ExecutionOptions } from '../../../types/core.js'\n\n/**\n * This method checks whether the new and updated Step meets the required exchange rate conditions.\n * If yes it returns the updated Step.\n * If no and if user interaction is allowed it triggers the acceptExchangeRateUpdateHook. If no user interaction is allowed it aborts.\n * @param statusManager\n * @param oldStep\n * @param newStep\n * @param settings\n * @param allowUserInteraction\n * @param executionOptions\n * @returns Return LiFiStep\n */\nexport const stepComparison = async (\n statusManager: StatusManager,\n oldStep: LiFiStep,\n newStep: LiFiStep,\n allowUserInteraction: boolean,\n executionOptions?: ExecutionOptions\n): Promise<LiFiStep> => {\n // Check if changed exchange rate is in the range of slippage threshold\n if (checkStepSlippageThreshold(oldStep, newStep)) {\n return statusManager.updateStepInRoute(newStep)\n }\n\n let allowStepUpdate: boolean | undefined\n if (allowUserInteraction) {\n allowStepUpdate = await executionOptions?.acceptExchangeRateUpdateHook?.({\n oldToAmount: oldStep.estimate.toAmount,\n newToAmount: newStep.estimate.toAmount,\n toToken: newStep.action.toToken,\n })\n }\n\n if (!allowStepUpdate) {\n // The user declined the new exchange rate, so we are not going to proceed\n throw new TransactionError(\n LiFiErrorCode.ExchangeRateUpdateCanceled,\n 'Exchange rate has changed!\\nTransaction was not sent, your funds are still in your wallet.\\nThe exchange rate has changed and the previous estimation can not be fulfilled due to value loss.'\n )\n }\n\n return statusManager.updateStepInRoute(newStep)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,MAAa,iBAAiB,OAC5B,eACA,SACA,SACA,sBACA,qBACsB;CAEtB,IAAIA,mBAAAA,2BAA2B,SAAS,OAAO,GAC7C,OAAO,cAAc,kBAAkB,OAAO;CAGhD,IAAI;CACJ,IAAI,sBACF,kBAAkB,MAAM,kBAAkB,+BAA+B;EACvE,aAAa,QAAQ,SAAS;EAC9B,aAAa,QAAQ,SAAS;EAC9B,SAAS,QAAQ,OAAO;CAC1B,CAAC;CAGH,IAAI,CAAC,iBAEH,MAAM,IAAIC,sBAAAA,iBAAAA,MAER,+LACF;CAGF,OAAO,cAAc,kBAAkB,OAAO;AAChD"}
@@ -1,4 +1,9 @@
1
- import type { LiFiStep, StatusResponse } from '@lifi/types';
2
- import type { ExecutionActionType, SDKClient } from '../../../types/core.js';
3
- import type { StatusManager } from '../../StatusManager.js';
4
- export declare function waitForTransactionStatus(client: SDKClient, statusManager: StatusManager, txHash: string, step: LiFiStep, actionType: ExecutionActionType, interval?: number): Promise<StatusResponse>;
1
+ import { ExecutionActionType, SDKClient } from "../../../types/core.js";
2
+ import { StatusManager } from "../../StatusManager.js";
3
+ import { LiFiStep, StatusResponse } from "@lifi/types";
4
+
5
+ //#region src/core/tasks/helpers/waitForTransactionStatus.d.ts
6
+ declare function waitForTransactionStatus(client: SDKClient, statusManager: StatusManager, txHash: string, step: LiFiStep, actionType: ExecutionActionType, interval?: number): Promise<StatusResponse>;
7
+ //#endregion
8
+ export { waitForTransactionStatus };
9
+ //# sourceMappingURL=waitForTransactionStatus.d.ts.map
@@ -1,56 +1,48 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.waitForTransactionStatus = waitForTransactionStatus;
4
- const getStatus_js_1 = require("../../../actions/getStatus.js");
5
- const errors_js_1 = require("../../../errors/errors.js");
6
- const waitForResult_js_1 = require("../../../utils/waitForResult.js");
7
- const actionMessages_js_1 = require("../../actionMessages.js");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_errors_errors = require("../../../errors/errors.js");
3
+ const require_actions_getStatus = require("../../../actions/getStatus.js");
4
+ const require_core_actionMessages = require("../../actionMessages.js");
5
+ const require_utils_waitForResult = require("../../../utils/waitForResult.js");
6
+ //#region src/core/tasks/helpers/waitForTransactionStatus.ts
8
7
  const TRANSACTION_HASH_OBSERVERS = {};
9
- async function waitForTransactionStatus(client, statusManager, txHash, step, actionType, interval = 5_000) {
10
- const _getStatus = () => {
11
- return (0, getStatus_js_1.getStatus)(client, {
12
- fromChain: step.action.fromChainId,
13
- fromAddress: step.action.fromAddress,
14
- toChain: step.action.toChainId,
15
- txHash,
16
- ...(step.tool !== 'custom' && { bridge: step.tool }),
17
- })
18
- .then((statusResponse) => {
19
- switch (statusResponse.status) {
20
- case 'DONE':
21
- return statusResponse;
22
- case 'PENDING':
23
- statusManager?.updateAction(step, actionType, 'PENDING', {
24
- substatus: statusResponse.substatus,
25
- substatusMessage: statusResponse.substatusMessage ||
26
- (0, actionMessages_js_1.getSubstatusMessage)(statusResponse.status, statusResponse.substatus),
27
- txLink: statusResponse.bridgeExplorerLink,
28
- });
29
- return undefined;
30
- case 'NOT_FOUND':
31
- return undefined;
32
- default:
33
- return Promise.reject();
34
- }
35
- })
36
- .catch((e) => {
37
- if (process.env.NODE_ENV === 'development') {
38
- console.debug('Fetching status from backend failed.', e);
39
- }
40
- return undefined;
41
- });
42
- };
43
- let status = TRANSACTION_HASH_OBSERVERS[txHash];
44
- if (!status) {
45
- status = (0, waitForResult_js_1.waitForResult)(_getStatus, interval).finally(() => {
46
- delete TRANSACTION_HASH_OBSERVERS[txHash];
47
- });
48
- TRANSACTION_HASH_OBSERVERS[txHash] = status;
49
- }
50
- const resolvedStatus = await status;
51
- if (!('receiving' in resolvedStatus)) {
52
- throw new errors_js_1.ServerError("Status doesn't contain destination chain information.");
53
- }
54
- return resolvedStatus;
8
+ async function waitForTransactionStatus(client, statusManager, txHash, step, actionType, interval = 5e3) {
9
+ const _getStatus = () => {
10
+ return require_actions_getStatus.getStatus(client, {
11
+ fromChain: step.action.fromChainId,
12
+ fromAddress: step.action.fromAddress,
13
+ toChain: step.action.toChainId,
14
+ txHash,
15
+ ...step.tool !== "custom" && { bridge: step.tool },
16
+ ...step.transactionId && { transactionId: step.transactionId }
17
+ }).then((statusResponse) => {
18
+ switch (statusResponse.status) {
19
+ case "DONE": return statusResponse;
20
+ case "PENDING":
21
+ statusManager?.updateAction(step, actionType, "PENDING", {
22
+ substatus: statusResponse.substatus,
23
+ substatusMessage: statusResponse.substatusMessage || require_core_actionMessages.getSubstatusMessage(statusResponse.status, statusResponse.substatus),
24
+ txLink: statusResponse.bridgeExplorerLink
25
+ });
26
+ return;
27
+ case "NOT_FOUND": return;
28
+ default: return Promise.reject();
29
+ }
30
+ }).catch((e) => {
31
+ if (process.env.NODE_ENV === "development") console.debug("Fetching status from backend failed.", e);
32
+ });
33
+ };
34
+ let status = TRANSACTION_HASH_OBSERVERS[txHash];
35
+ if (!status) {
36
+ status = require_utils_waitForResult.waitForResult(_getStatus, interval).finally(() => {
37
+ delete TRANSACTION_HASH_OBSERVERS[txHash];
38
+ });
39
+ TRANSACTION_HASH_OBSERVERS[txHash] = status;
40
+ }
41
+ const resolvedStatus = await status;
42
+ if (!("receiving" in resolvedStatus)) throw new require_errors_errors.ServerError("Status doesn't contain destination chain information.");
43
+ return resolvedStatus;
55
44
  }
45
+ //#endregion
46
+ exports.waitForTransactionStatus = waitForTransactionStatus;
47
+
56
48
  //# sourceMappingURL=waitForTransactionStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"waitForTransactionStatus.js","sourceRoot":"","sources":["../../../../../src/core/tasks/helpers/waitForTransactionStatus.ts"],"names":[],"mappings":";;AAUA,4DAgEC;AAzED,gEAAyD;AACzD,yDAAuD;AAEvD,sEAA+D;AAC/D,+DAA6D;AAG7D,MAAM,0BAA0B,GAA4C,EAAE,CAAA;AAEvE,KAAK,UAAU,wBAAwB,CAC5C,MAAiB,EACjB,aAA4B,EAC5B,MAAc,EACd,IAAc,EACd,UAA+B,EAC/B,QAAQ,GAAG,KAAK;IAEhB,MAAM,UAAU,GAAG,GAAwC,EAAE;QAC3D,OAAO,IAAA,wBAAS,EAAC,MAAM,EAAE;YACvB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YAClC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAC9B,MAAM;YACN,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;SACrD,CAAC;aACC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;YACvB,QAAQ,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC9B,KAAK,MAAM;oBACT,OAAO,cAAc,CAAA;gBACvB,KAAK,SAAS;oBACZ,aAAa,EAAE,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE;wBACvD,SAAS,EAAE,cAAc,CAAC,SAAS;wBACnC,gBAAgB,EACd,cAAc,CAAC,gBAAgB;4BAC/B,IAAA,uCAAmB,EACjB,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,SAAS,CACzB;wBACH,MAAM,EAAG,cAAiC,CAAC,kBAAkB;qBAC9D,CAAC,CAAA;oBACF,OAAO,SAAS,CAAA;gBAClB,KAAK,WAAW;oBACd,OAAO,SAAS,CAAA;gBAClB;oBACE,OAAO,OAAO,CAAC,MAAM,EAAE,CAAA;YAC3B,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;gBAC3C,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAA;YAC1D,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,IAAI,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAA;IAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAA,gCAAa,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACxD,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QACF,0BAA0B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC7C,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,MAAM,CAAA;IAEnC,IAAI,CAAC,CAAC,WAAW,IAAI,cAAc,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,uBAAW,CACnB,uDAAuD,CACxD,CAAA;IACH,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"waitForTransactionStatus.js","names":["getStatus","getSubstatusMessage","waitForResult","ServerError"],"sources":["../../../../../src/core/tasks/helpers/waitForTransactionStatus.ts"],"sourcesContent":["import type { FullStatusData, LiFiStep, StatusResponse } from '@lifi/types'\nimport { getStatus } from '../../../actions/getStatus.js'\nimport { ServerError } from '../../../errors/errors.js'\nimport type { ExecutionActionType, SDKClient } from '../../../types/core.js'\nimport { waitForResult } from '../../../utils/waitForResult.js'\nimport { getSubstatusMessage } from '../../actionMessages.js'\nimport type { StatusManager } from '../../StatusManager.js'\n\nconst TRANSACTION_HASH_OBSERVERS: Record<string, Promise<StatusResponse>> = {}\n\nexport async function waitForTransactionStatus(\n client: SDKClient,\n statusManager: StatusManager,\n txHash: string,\n step: LiFiStep,\n actionType: ExecutionActionType,\n interval = 5_000\n): Promise<StatusResponse> {\n const _getStatus = (): Promise<StatusResponse | undefined> => {\n return getStatus(client, {\n fromChain: step.action.fromChainId,\n fromAddress: step.action.fromAddress,\n toChain: step.action.toChainId,\n txHash,\n ...(step.tool !== 'custom' && { bridge: step.tool }),\n ...(step.transactionId && { transactionId: step.transactionId }),\n })\n .then((statusResponse) => {\n switch (statusResponse.status) {\n case 'DONE':\n return statusResponse\n case 'PENDING':\n statusManager?.updateAction(step, actionType, 'PENDING', {\n substatus: statusResponse.substatus,\n substatusMessage:\n statusResponse.substatusMessage ||\n getSubstatusMessage(\n statusResponse.status,\n statusResponse.substatus\n ),\n txLink: (statusResponse as FullStatusData).bridgeExplorerLink,\n })\n return undefined\n case 'NOT_FOUND':\n return undefined\n default:\n return Promise.reject()\n }\n })\n .catch((e) => {\n if (process.env.NODE_ENV === 'development') {\n console.debug('Fetching status from backend failed.', e)\n }\n return undefined\n })\n }\n\n let status = TRANSACTION_HASH_OBSERVERS[txHash]\n\n if (!status) {\n status = waitForResult(_getStatus, interval).finally(() => {\n delete TRANSACTION_HASH_OBSERVERS[txHash]\n })\n TRANSACTION_HASH_OBSERVERS[txHash] = status\n }\n\n const resolvedStatus = await status\n\n if (!('receiving' in resolvedStatus)) {\n throw new ServerError(\n \"Status doesn't contain destination chain information.\"\n )\n }\n\n return resolvedStatus\n}\n"],"mappings":";;;;;;AAQA,MAAM,6BAAsE,CAAC;AAE7E,eAAsB,yBACpB,QACA,eACA,QACA,MACA,YACA,WAAW,KACc;CACzB,MAAM,mBAAwD;EAC5D,OAAOA,0BAAAA,UAAU,QAAQ;GACvB,WAAW,KAAK,OAAO;GACvB,aAAa,KAAK,OAAO;GACzB,SAAS,KAAK,OAAO;GACrB;GACA,GAAI,KAAK,SAAS,YAAY,EAAE,QAAQ,KAAK,KAAK;GAClD,GAAI,KAAK,iBAAiB,EAAE,eAAe,KAAK,cAAc;EAChE,CAAC,EACE,MAAM,mBAAmB;GACxB,QAAQ,eAAe,QAAvB;IACE,KAAK,QACH,OAAO;IACT,KAAK;KACH,eAAe,aAAa,MAAM,YAAY,WAAW;MACvD,WAAW,eAAe;MAC1B,kBACE,eAAe,oBACfC,4BAAAA,oBACE,eAAe,QACf,eAAe,SACjB;MACF,QAAS,eAAkC;KAC7C,CAAC;KACD;IACF,KAAK,aACH;IACF,SACE,OAAO,QAAQ,OAAO;GAC1B;EACF,CAAC,EACA,OAAO,MAAM;GACZ,IAAI,QAAQ,IAAI,aAAa,eAC3B,QAAQ,MAAM,wCAAwC,CAAC;EAG3D,CAAC;CACL;CAEA,IAAI,SAAS,2BAA2B;CAExC,IAAI,CAAC,QAAQ;EACX,SAASC,4BAAAA,cAAc,YAAY,QAAQ,EAAE,cAAc;GACzD,OAAO,2BAA2B;EACpC,CAAC;EACD,2BAA2B,UAAU;CACvC;CAEA,MAAM,iBAAiB,MAAM;CAE7B,IAAI,EAAE,eAAe,iBACnB,MAAM,IAAIC,sBAAAA,YACR,uDACF;CAGF,OAAO;AACT"}