@lifi/sdk 3.0.0-alpha.2 → 3.0.0-alpha.20

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 (393) hide show
  1. package/dist/cjs/config.js +48 -0
  2. package/dist/cjs/config.js.map +1 -0
  3. package/dist/cjs/constants.js +2 -4
  4. package/dist/cjs/constants.js.map +1 -0
  5. package/dist/cjs/core/BaseStepExecutor.js +55 -0
  6. package/dist/cjs/core/BaseStepExecutor.js.map +1 -0
  7. package/dist/cjs/core/EVM/EVM.js +46 -0
  8. package/dist/cjs/core/EVM/EVM.js.map +1 -0
  9. package/dist/cjs/core/EVM/EVMStepExecutor.js +276 -0
  10. package/dist/cjs/core/EVM/EVMStepExecutor.js.map +1 -0
  11. package/dist/cjs/{types → core/EVM}/abi.js +1 -0
  12. package/dist/cjs/core/EVM/abi.js.map +1 -0
  13. package/dist/cjs/{execution → core/EVM}/checkAllowance.js +12 -12
  14. package/dist/cjs/core/EVM/checkAllowance.js.map +1 -0
  15. package/dist/cjs/{allowance → core/EVM}/getAllowance.js +15 -17
  16. package/dist/cjs/core/EVM/getAllowance.js.map +1 -0
  17. package/dist/cjs/{balance/getBalance.js → core/EVM/getEVMBalance.js} +22 -22
  18. package/dist/cjs/core/EVM/getEVMBalance.js.map +1 -0
  19. package/dist/cjs/{execution → core/EVM}/multisig.js +7 -11
  20. package/dist/cjs/core/EVM/multisig.js.map +1 -0
  21. package/dist/cjs/core/EVM/publicClient.js +35 -0
  22. package/dist/cjs/core/EVM/publicClient.js.map +1 -0
  23. package/dist/cjs/core/EVM/setAllowance.js +71 -0
  24. package/dist/cjs/core/EVM/setAllowance.js.map +1 -0
  25. package/dist/cjs/core/EVM/switchChain.js +37 -0
  26. package/dist/cjs/core/EVM/switchChain.js.map +1 -0
  27. package/dist/cjs/core/EVM/types.js +9 -0
  28. package/dist/cjs/core/EVM/types.js.map +1 -0
  29. package/dist/cjs/{utils/getMaxPriorityFeePerGas.js → core/EVM/utils.js} +11 -3
  30. package/dist/cjs/core/EVM/utils.js.map +1 -0
  31. package/dist/cjs/core/Solana/Solana.js +44 -0
  32. package/dist/cjs/core/Solana/Solana.js.map +1 -0
  33. package/dist/cjs/core/Solana/SolanaStepExecutor.js +157 -0
  34. package/dist/cjs/core/Solana/SolanaStepExecutor.js.map +1 -0
  35. package/dist/cjs/core/Solana/connection.js +18 -0
  36. package/dist/cjs/core/Solana/connection.js.map +1 -0
  37. package/dist/cjs/core/Solana/getSolanaBalance.js +50 -0
  38. package/dist/cjs/core/Solana/getSolanaBalance.js.map +1 -0
  39. package/dist/cjs/core/Solana/types.js +10 -0
  40. package/dist/cjs/core/Solana/types.js.map +1 -0
  41. package/dist/cjs/core/StatusManager.js +167 -0
  42. package/dist/cjs/core/StatusManager.js.map +1 -0
  43. package/dist/cjs/{execution → core}/checkBalance.js +5 -5
  44. package/dist/cjs/core/checkBalance.js.map +1 -0
  45. package/dist/cjs/core/execution.js +134 -0
  46. package/dist/cjs/core/execution.js.map +1 -0
  47. package/dist/cjs/core/executionState.js +23 -0
  48. package/dist/cjs/core/executionState.js.map +1 -0
  49. package/dist/cjs/core/index.js +7 -0
  50. package/dist/cjs/core/index.js.map +1 -0
  51. package/dist/cjs/core/prepareRestart.js +23 -0
  52. package/dist/cjs/core/prepareRestart.js.map +1 -0
  53. package/dist/cjs/core/provider.js +15 -0
  54. package/dist/cjs/core/provider.js.map +1 -0
  55. package/dist/cjs/core/stepComparison.js +25 -0
  56. package/dist/cjs/core/stepComparison.js.map +1 -0
  57. package/dist/cjs/{allowance → core}/types.js +1 -0
  58. package/dist/cjs/core/types.js.map +1 -0
  59. package/dist/cjs/{execution → core}/utils.js +16 -10
  60. package/dist/cjs/core/utils.js.map +1 -0
  61. package/dist/cjs/{execution → core}/waitForReceivingTransaction.js +10 -12
  62. package/dist/cjs/core/waitForReceivingTransaction.js.map +1 -0
  63. package/dist/cjs/createConfig.js +48 -0
  64. package/dist/cjs/createConfig.js.map +1 -0
  65. package/dist/cjs/helpers.js +11 -25
  66. package/dist/cjs/helpers.js.map +1 -0
  67. package/dist/cjs/index.js +18 -22
  68. package/dist/cjs/index.js.map +1 -0
  69. package/dist/cjs/package.json +1 -0
  70. package/dist/cjs/request.js +22 -16
  71. package/dist/cjs/request.js.map +1 -0
  72. package/dist/cjs/services/api.js +284 -0
  73. package/dist/cjs/services/api.js.map +1 -0
  74. package/dist/cjs/services/balance.js +49 -0
  75. package/dist/cjs/services/balance.js.map +1 -0
  76. package/dist/cjs/typeguards.js +1 -0
  77. package/dist/cjs/typeguards.js.map +1 -0
  78. package/dist/cjs/types/index.js +3 -20
  79. package/dist/cjs/types/index.js.map +1 -0
  80. package/dist/cjs/types/{internal.types.js → internal.js} +1 -0
  81. package/dist/cjs/types/internal.js.map +1 -0
  82. package/dist/cjs/utils/errors.js +25 -3
  83. package/dist/cjs/utils/errors.js.map +1 -0
  84. package/dist/cjs/utils/getTransactionMessage.js +31 -0
  85. package/dist/cjs/utils/getTransactionMessage.js.map +1 -0
  86. package/dist/cjs/utils/index.js +7 -19
  87. package/dist/cjs/utils/index.js.map +1 -0
  88. package/dist/cjs/utils/median.js +1 -0
  89. package/dist/cjs/utils/median.js.map +1 -0
  90. package/dist/cjs/utils/parseBackendError.js +27 -0
  91. package/dist/cjs/utils/parseBackendError.js.map +1 -0
  92. package/dist/cjs/utils/parseError.js +34 -124
  93. package/dist/cjs/utils/parseError.js.map +1 -0
  94. package/dist/cjs/utils/utils.js +5 -11
  95. package/dist/cjs/utils/utils.js.map +1 -0
  96. package/dist/cjs/version.js +2 -1
  97. package/dist/cjs/version.js.map +1 -0
  98. package/dist/esm/config.js +45 -0
  99. package/dist/esm/config.js.map +1 -0
  100. package/dist/{constants.js → esm/constants.js} +1 -0
  101. package/dist/esm/constants.js.map +1 -0
  102. package/dist/esm/core/BaseStepExecutor.js +52 -0
  103. package/dist/esm/core/BaseStepExecutor.js.map +1 -0
  104. package/dist/esm/core/EVM/EVM.js +42 -0
  105. package/dist/esm/core/EVM/EVM.js.map +1 -0
  106. package/dist/esm/core/EVM/EVMStepExecutor.js +304 -0
  107. package/dist/esm/core/EVM/EVMStepExecutor.js.map +1 -0
  108. package/dist/{types → esm/core/EVM}/abi.js +1 -0
  109. package/dist/esm/core/EVM/abi.js.map +1 -0
  110. package/dist/{execution → esm/core/EVM}/checkAllowance.js +8 -6
  111. package/dist/esm/core/EVM/checkAllowance.js.map +1 -0
  112. package/dist/{allowance → esm/core/EVM}/getAllowance.js +20 -5
  113. package/dist/esm/core/EVM/getAllowance.js.map +1 -0
  114. package/dist/{balance/getBalance.js → esm/core/EVM/getEVMBalance.js} +11 -11
  115. package/dist/esm/core/EVM/getEVMBalance.js.map +1 -0
  116. package/dist/{execution → esm/core/EVM}/multisig.js +5 -6
  117. package/dist/esm/core/EVM/multisig.js.map +1 -0
  118. package/dist/esm/core/EVM/publicClient.js +37 -0
  119. package/dist/esm/core/EVM/publicClient.js.map +1 -0
  120. package/dist/{allowance → esm/core/EVM}/setAllowance.js +46 -11
  121. package/dist/esm/core/EVM/setAllowance.js.map +1 -0
  122. package/dist/{execution → esm/core/EVM}/switchChain.js +5 -3
  123. package/dist/esm/core/EVM/switchChain.js.map +1 -0
  124. package/dist/esm/core/EVM/types.js +6 -0
  125. package/dist/esm/core/EVM/types.js.map +1 -0
  126. package/dist/{utils/getMaxPriorityFeePerGas.js → esm/core/EVM/utils.js} +9 -1
  127. package/dist/esm/core/EVM/utils.js.map +1 -0
  128. package/dist/esm/core/Solana/Solana.js +40 -0
  129. package/dist/esm/core/Solana/Solana.js.map +1 -0
  130. package/dist/esm/core/Solana/SolanaStepExecutor.js +158 -0
  131. package/dist/esm/core/Solana/SolanaStepExecutor.js.map +1 -0
  132. package/dist/esm/core/Solana/connection.js +19 -0
  133. package/dist/esm/core/Solana/connection.js.map +1 -0
  134. package/dist/esm/core/Solana/getSolanaBalance.js +46 -0
  135. package/dist/esm/core/Solana/getSolanaBalance.js.map +1 -0
  136. package/dist/esm/core/Solana/types.js +7 -0
  137. package/dist/esm/core/Solana/types.js.map +1 -0
  138. package/dist/esm/core/StatusManager.js +203 -0
  139. package/dist/esm/core/StatusManager.js.map +1 -0
  140. package/dist/{execution → esm/core}/checkBalance.js +3 -2
  141. package/dist/esm/core/checkBalance.js.map +1 -0
  142. package/dist/esm/core/execution.js +173 -0
  143. package/dist/esm/core/execution.js.map +1 -0
  144. package/dist/esm/core/executionState.js +20 -0
  145. package/dist/esm/core/executionState.js.map +1 -0
  146. package/dist/esm/core/index.js +4 -0
  147. package/dist/esm/core/index.js.map +1 -0
  148. package/dist/esm/core/prepareRestart.js +64 -0
  149. package/dist/esm/core/prepareRestart.js.map +1 -0
  150. package/dist/esm/core/provider.js +11 -0
  151. package/dist/esm/core/provider.js.map +1 -0
  152. package/dist/{execution → esm/core}/stepComparison.js +7 -5
  153. package/dist/esm/core/stepComparison.js.map +1 -0
  154. package/dist/esm/core/types.js +2 -0
  155. package/dist/esm/core/types.js.map +1 -0
  156. package/dist/{execution → esm/core}/utils.js +14 -0
  157. package/dist/esm/core/utils.js.map +1 -0
  158. package/dist/{execution → esm/core}/waitForReceivingTransaction.js +8 -7
  159. package/dist/esm/core/waitForReceivingTransaction.js.map +1 -0
  160. package/dist/esm/createConfig.js +45 -0
  161. package/dist/esm/createConfig.js.map +1 -0
  162. package/dist/{helpers.js → esm/helpers.js} +4 -3
  163. package/dist/esm/helpers.js.map +1 -0
  164. package/dist/esm/index.js +12 -0
  165. package/dist/esm/index.js.map +1 -0
  166. package/dist/esm/package.json +1 -0
  167. package/dist/{request.js → esm/request.js} +19 -9
  168. package/dist/esm/request.js.map +1 -0
  169. package/dist/esm/services/api.js +353 -0
  170. package/dist/esm/services/api.js.map +1 -0
  171. package/dist/esm/services/balance.js +65 -0
  172. package/dist/esm/services/balance.js.map +1 -0
  173. package/dist/{typeguards.js → esm/typeguards.js} +1 -0
  174. package/dist/esm/typeguards.js.map +1 -0
  175. package/dist/esm/types/index.js +2 -0
  176. package/dist/esm/types/index.js.map +1 -0
  177. package/dist/esm/types/internal.js +2 -0
  178. package/dist/esm/types/internal.js.map +1 -0
  179. package/dist/{utils → esm/utils}/errors.js +25 -0
  180. package/dist/esm/utils/errors.js.map +1 -0
  181. package/dist/esm/utils/getTransactionMessage.js +28 -0
  182. package/dist/esm/utils/getTransactionMessage.js.map +1 -0
  183. package/dist/esm/utils/index.js +6 -0
  184. package/dist/esm/utils/index.js.map +1 -0
  185. package/dist/{utils → esm/utils}/median.js +1 -0
  186. package/dist/esm/utils/median.js.map +1 -0
  187. package/dist/esm/utils/parseBackendError.js +24 -0
  188. package/dist/esm/utils/parseBackendError.js.map +1 -0
  189. package/dist/{utils → esm/utils}/parseError.js +4 -53
  190. package/dist/esm/utils/parseError.js.map +1 -0
  191. package/dist/{utils → esm/utils}/utils.js +2 -1
  192. package/dist/esm/utils/utils.js.map +1 -0
  193. package/dist/esm/version.js +3 -0
  194. package/dist/esm/version.js.map +1 -0
  195. package/dist/types/config.d.ts +11 -0
  196. package/dist/types/config.d.ts.map +1 -0
  197. package/dist/{cjs → types}/constants.d.ts +1 -0
  198. package/dist/types/constants.d.ts.map +1 -0
  199. package/dist/types/core/BaseStepExecutor.d.ts +13 -0
  200. package/dist/types/core/BaseStepExecutor.d.ts.map +1 -0
  201. package/dist/types/core/EVM/EVM.d.ts +3 -0
  202. package/dist/types/core/EVM/EVM.d.ts.map +1 -0
  203. package/dist/types/core/EVM/EVMStepExecutor.d.ts +17 -0
  204. package/dist/types/core/EVM/EVMStepExecutor.d.ts.map +1 -0
  205. package/dist/{cjs/types → types/core/EVM}/abi.d.ts +1 -0
  206. package/dist/types/core/EVM/abi.d.ts.map +1 -0
  207. package/dist/types/core/EVM/checkAllowance.d.ts +6 -0
  208. package/dist/types/core/EVM/checkAllowance.d.ts.map +1 -0
  209. package/dist/{cjs/allowance → types/core/EVM}/getAllowance.d.ts +15 -1
  210. package/dist/types/core/EVM/getAllowance.d.ts.map +1 -0
  211. package/dist/types/core/EVM/getEVMBalance.d.ts +3 -0
  212. package/dist/types/core/EVM/getEVMBalance.d.ts.map +1 -0
  213. package/dist/types/core/EVM/multisig.d.ts +6 -0
  214. package/dist/types/core/EVM/multisig.d.ts.map +1 -0
  215. package/dist/types/core/EVM/publicClient.d.ts +8 -0
  216. package/dist/types/core/EVM/publicClient.d.ts.map +1 -0
  217. package/dist/types/core/EVM/setAllowance.d.ts +25 -0
  218. package/dist/types/core/EVM/setAllowance.d.ts.map +1 -0
  219. package/dist/{execution → types/core/EVM}/switchChain.d.ts +6 -4
  220. package/dist/types/core/EVM/switchChain.d.ts.map +1 -0
  221. package/dist/types/core/EVM/types.d.ts +57 -0
  222. package/dist/types/core/EVM/types.d.ts.map +1 -0
  223. package/dist/types/core/EVM/utils.d.ts +5 -0
  224. package/dist/types/core/EVM/utils.d.ts.map +1 -0
  225. package/dist/types/core/Solana/Solana.d.ts +3 -0
  226. package/dist/types/core/Solana/Solana.d.ts.map +1 -0
  227. package/dist/types/core/Solana/SolanaStepExecutor.d.ts +13 -0
  228. package/dist/types/core/Solana/SolanaStepExecutor.d.ts.map +1 -0
  229. package/dist/types/core/Solana/connection.d.ts +8 -0
  230. package/dist/types/core/Solana/connection.d.ts.map +1 -0
  231. package/dist/types/core/Solana/getSolanaBalance.d.ts +3 -0
  232. package/dist/types/core/Solana/getSolanaBalance.d.ts.map +1 -0
  233. package/dist/types/core/Solana/types.d.ts +13 -0
  234. package/dist/types/core/Solana/types.d.ts.map +1 -0
  235. package/dist/{cjs/execution → types/core}/StatusManager.d.ts +12 -16
  236. package/dist/types/core/StatusManager.d.ts.map +1 -0
  237. package/dist/types/core/checkBalance.d.ts +3 -0
  238. package/dist/types/core/checkBalance.d.ts.map +1 -0
  239. package/dist/types/core/execution.d.ts +42 -0
  240. package/dist/types/core/execution.d.ts.map +1 -0
  241. package/dist/types/core/executionState.d.ts +16 -0
  242. package/dist/types/core/executionState.d.ts.map +1 -0
  243. package/dist/types/core/index.d.ts +4 -0
  244. package/dist/types/core/index.d.ts.map +1 -0
  245. package/dist/types/core/prepareRestart.d.ts +3 -0
  246. package/dist/types/core/prepareRestart.d.ts.map +1 -0
  247. package/dist/types/core/provider.d.ts +3 -0
  248. package/dist/types/core/provider.d.ts.map +1 -0
  249. package/dist/{cjs/execution → types/core}/stepComparison.d.ts +7 -4
  250. package/dist/types/core/stepComparison.d.ts.map +1 -0
  251. package/dist/types/core/types.d.ts +71 -0
  252. package/dist/types/core/types.d.ts.map +1 -0
  253. package/dist/{execution → types/core}/utils.d.ts +5 -2
  254. package/dist/types/core/utils.d.ts.map +1 -0
  255. package/dist/types/core/waitForReceivingTransaction.d.ts +4 -0
  256. package/dist/types/core/waitForReceivingTransaction.d.ts.map +1 -0
  257. package/dist/types/createConfig.d.ts +7 -0
  258. package/dist/types/createConfig.d.ts.map +1 -0
  259. package/dist/{helpers.d.ts → types/helpers.d.ts} +4 -3
  260. package/dist/types/helpers.d.ts.map +1 -0
  261. package/dist/types/index.d.ts +11 -3
  262. package/dist/types/index.d.ts.map +1 -0
  263. package/dist/{request.d.ts → types/request.d.ts} +1 -0
  264. package/dist/types/request.d.ts.map +1 -0
  265. package/dist/types/services/api.d.ts +87 -0
  266. package/dist/types/services/api.d.ts.map +1 -0
  267. package/dist/types/services/balance.d.ts +30 -0
  268. package/dist/types/services/balance.d.ts.map +1 -0
  269. package/dist/{cjs → types}/typeguards.d.ts +3 -2
  270. package/dist/types/typeguards.d.ts.map +1 -0
  271. package/dist/types/types/index.d.ts +2 -0
  272. package/dist/types/types/index.d.ts.map +1 -0
  273. package/dist/types/types/internal.d.ts +56 -0
  274. package/dist/types/types/internal.d.ts.map +1 -0
  275. package/dist/{utils → types/utils}/errors.d.ts +1 -0
  276. package/dist/types/utils/errors.d.ts.map +1 -0
  277. package/dist/types/utils/getTransactionMessage.d.ts +4 -0
  278. package/dist/types/utils/getTransactionMessage.d.ts.map +1 -0
  279. package/dist/types/utils/index.d.ts +6 -0
  280. package/dist/types/utils/index.d.ts.map +1 -0
  281. package/dist/{cjs → types}/utils/median.d.ts +1 -0
  282. package/dist/types/utils/median.d.ts.map +1 -0
  283. package/dist/types/utils/parseBackendError.d.ts +3 -0
  284. package/dist/types/utils/parseBackendError.d.ts.map +1 -0
  285. package/dist/{utils → types/utils}/parseError.d.ts +4 -6
  286. package/dist/types/utils/parseError.d.ts.map +1 -0
  287. package/dist/{cjs → types}/utils/utils.d.ts +1 -0
  288. package/dist/types/utils/utils.d.ts.map +1 -0
  289. package/dist/types/version.d.ts +3 -0
  290. package/dist/types/version.d.ts.map +1 -0
  291. package/package.json +26 -85
  292. package/dist/LiFi.d.ts +0 -171
  293. package/dist/LiFi.js +0 -246
  294. package/dist/allowance/getAllowance.d.ts +0 -6
  295. package/dist/allowance/index.d.ts +0 -3
  296. package/dist/allowance/index.js +0 -3
  297. package/dist/allowance/setAllowance.d.ts +0 -5
  298. package/dist/allowance/types.d.ts +0 -27
  299. package/dist/allowance/types.js +0 -1
  300. package/dist/balance/getBalance.d.ts +0 -2
  301. package/dist/balance/getTokenBalance.d.ts +0 -8
  302. package/dist/balance/getTokenBalance.js +0 -27
  303. package/dist/balance/index.d.ts +0 -2
  304. package/dist/balance/index.js +0 -2
  305. package/dist/cjs/LiFi.d.ts +0 -171
  306. package/dist/cjs/LiFi.js +0 -276
  307. package/dist/cjs/allowance/index.d.ts +0 -3
  308. package/dist/cjs/allowance/index.js +0 -19
  309. package/dist/cjs/allowance/setAllowance.d.ts +0 -5
  310. package/dist/cjs/allowance/setAllowance.js +0 -56
  311. package/dist/cjs/allowance/types.d.ts +0 -27
  312. package/dist/cjs/balance/getBalance.d.ts +0 -2
  313. package/dist/cjs/balance/getTokenBalance.d.ts +0 -8
  314. package/dist/cjs/balance/getTokenBalance.js +0 -33
  315. package/dist/cjs/balance/index.d.ts +0 -2
  316. package/dist/cjs/balance/index.js +0 -18
  317. package/dist/cjs/connectors.d.ts +0 -8
  318. package/dist/cjs/connectors.js +0 -75
  319. package/dist/cjs/execution/RouteExecutionManager.d.ts +0 -59
  320. package/dist/cjs/execution/RouteExecutionManager.js +0 -202
  321. package/dist/cjs/execution/StatusManager.js +0 -171
  322. package/dist/cjs/execution/StepExecutionManager.d.ts +0 -7
  323. package/dist/cjs/execution/StepExecutionManager.js +0 -267
  324. package/dist/cjs/execution/StepExecutor.d.ts +0 -15
  325. package/dist/cjs/execution/StepExecutor.js +0 -62
  326. package/dist/cjs/execution/checkAllowance.d.ts +0 -4
  327. package/dist/cjs/execution/checkBalance.d.ts +0 -2
  328. package/dist/cjs/execution/index.d.ts +0 -1
  329. package/dist/cjs/execution/index.js +0 -17
  330. package/dist/cjs/execution/multisig.d.ts +0 -4
  331. package/dist/cjs/execution/prepareRestart.d.ts +0 -3
  332. package/dist/cjs/execution/prepareRestart.js +0 -65
  333. package/dist/cjs/execution/stepComparison.js +0 -37
  334. package/dist/cjs/execution/switchChain.d.ts +0 -21
  335. package/dist/cjs/execution/switchChain.js +0 -54
  336. package/dist/cjs/execution/utils.d.ts +0 -12
  337. package/dist/cjs/execution/waitForReceivingTransaction.d.ts +0 -3
  338. package/dist/cjs/helpers.d.ts +0 -18
  339. package/dist/cjs/index.d.ts +0 -5
  340. package/dist/cjs/request.d.ts +0 -9
  341. package/dist/cjs/services/ApiService.d.ts +0 -17
  342. package/dist/cjs/services/ApiService.js +0 -326
  343. package/dist/cjs/services/ChainsService.d.ts +0 -11
  344. package/dist/cjs/services/ChainsService.js +0 -39
  345. package/dist/cjs/services/ConfigService.d.ts +0 -23
  346. package/dist/cjs/services/ConfigService.js +0 -101
  347. package/dist/cjs/types/index.d.ts +0 -4
  348. package/dist/cjs/types/internal.types.d.ts +0 -142
  349. package/dist/cjs/utils/errors.d.ts +0 -107
  350. package/dist/cjs/utils/getMaxPriorityFeePerGas.d.ts +0 -2
  351. package/dist/cjs/utils/index.d.ts +0 -5
  352. package/dist/cjs/utils/parseError.d.ts +0 -37
  353. package/dist/cjs/version.d.ts +0 -2
  354. package/dist/connectors.d.ts +0 -8
  355. package/dist/connectors.js +0 -41
  356. package/dist/constants.d.ts +0 -6
  357. package/dist/execution/RouteExecutionManager.d.ts +0 -59
  358. package/dist/execution/RouteExecutionManager.js +0 -195
  359. package/dist/execution/StatusManager.d.ts +0 -67
  360. package/dist/execution/StatusManager.js +0 -167
  361. package/dist/execution/StepExecutionManager.d.ts +0 -7
  362. package/dist/execution/StepExecutionManager.js +0 -260
  363. package/dist/execution/StepExecutor.d.ts +0 -15
  364. package/dist/execution/StepExecutor.js +0 -58
  365. package/dist/execution/checkAllowance.d.ts +0 -4
  366. package/dist/execution/checkBalance.d.ts +0 -2
  367. package/dist/execution/index.d.ts +0 -1
  368. package/dist/execution/index.js +0 -1
  369. package/dist/execution/multisig.d.ts +0 -4
  370. package/dist/execution/prepareRestart.d.ts +0 -3
  371. package/dist/execution/prepareRestart.js +0 -61
  372. package/dist/execution/stepComparison.d.ts +0 -14
  373. package/dist/execution/waitForReceivingTransaction.d.ts +0 -3
  374. package/dist/index.d.ts +0 -5
  375. package/dist/index.js +0 -6
  376. package/dist/services/ApiService.d.ts +0 -17
  377. package/dist/services/ApiService.js +0 -321
  378. package/dist/services/ChainsService.d.ts +0 -11
  379. package/dist/services/ChainsService.js +0 -33
  380. package/dist/services/ConfigService.d.ts +0 -23
  381. package/dist/services/ConfigService.js +0 -99
  382. package/dist/typeguards.d.ts +0 -4
  383. package/dist/types/abi.d.ts +0 -5
  384. package/dist/types/index.js +0 -4
  385. package/dist/types/internal.types.d.ts +0 -142
  386. package/dist/types/internal.types.js +0 -1
  387. package/dist/utils/getMaxPriorityFeePerGas.d.ts +0 -2
  388. package/dist/utils/index.d.ts +0 -5
  389. package/dist/utils/index.js +0 -5
  390. package/dist/utils/median.d.ts +0 -1
  391. package/dist/utils/utils.d.ts +0 -10
  392. package/dist/version.d.ts +0 -2
  393. package/dist/version.js +0 -2
@@ -0,0 +1,203 @@
1
+ import { emptyExecution } from '@lifi/types';
2
+ import { executionState } from './executionState.js';
3
+ import { getProcessMessage } from './utils.js';
4
+ /**
5
+ * Manages status updates of a route and provides various functions for tracking processes
6
+ * @param {string} routeId The route dd this StatusManger belongs to.
7
+ * @returns {StatusManager} An instance of StatusManager.
8
+ */
9
+ export class StatusManager {
10
+ constructor(routeId) {
11
+ Object.defineProperty(this, "routeId", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: void 0
16
+ });
17
+ Object.defineProperty(this, "shouldUpdate", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: true
22
+ });
23
+ /**
24
+ * Initializes the execution object of a Step.
25
+ * @param step The current step in execution
26
+ * @returns The initialized execution object for this step and a function to update this step
27
+ */
28
+ Object.defineProperty(this, "initExecutionObject", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: (step) => {
33
+ if (!step.execution) {
34
+ step.execution = structuredClone(emptyExecution);
35
+ step.execution.status = 'PENDING';
36
+ this.updateStepInRoute(step);
37
+ }
38
+ // Change status to PENDING after resuming from FAILED
39
+ if (step.execution.status === 'FAILED') {
40
+ step.execution.status = 'PENDING';
41
+ this.updateStepInRoute(step);
42
+ }
43
+ return step.execution;
44
+ }
45
+ });
46
+ /**
47
+ * Create and push a new process into the execution.
48
+ * @param step The step that should contain the new process.
49
+ * @param type Type of the process. Used to identify already existing processes.
50
+ * @param status By default created procces is set to the STARTED status. We can override new process with the needed status.
51
+ * @returns Returns process.
52
+ */
53
+ Object.defineProperty(this, "findOrCreateProcess", {
54
+ enumerable: true,
55
+ configurable: true,
56
+ writable: true,
57
+ value: (step, type, status) => {
58
+ if (!step.execution?.process) {
59
+ throw new Error("Execution hasn't been initialized.");
60
+ }
61
+ const process = step.execution.process.find((p) => p.type === type);
62
+ if (process) {
63
+ if (status && process.status !== status) {
64
+ process.status = status;
65
+ this.updateStepInRoute(step);
66
+ }
67
+ return process;
68
+ }
69
+ const newProcess = {
70
+ type: type,
71
+ startedAt: Date.now(),
72
+ message: getProcessMessage(type, status ?? 'STARTED'),
73
+ status: status ?? 'STARTED',
74
+ };
75
+ step.execution.process.push(newProcess);
76
+ this.updateStepInRoute(step);
77
+ return newProcess;
78
+ }
79
+ });
80
+ /**
81
+ * Update a process object.
82
+ * @param step The step where the process should be updated
83
+ * @param type The process type to update
84
+ * @param status The status the process gets.
85
+ * @param [params] Additional parameters to append to the process.
86
+ * @returns The update process
87
+ */
88
+ Object.defineProperty(this, "updateProcess", {
89
+ enumerable: true,
90
+ configurable: true,
91
+ writable: true,
92
+ value: (step, type, status, params) => {
93
+ if (!step.execution) {
94
+ throw new Error("Can't update an empty step execution.");
95
+ }
96
+ const currentProcess = step?.execution?.process.find((p) => p.type === type);
97
+ if (!currentProcess) {
98
+ throw new Error("Can't find a process for the given type.");
99
+ }
100
+ switch (status) {
101
+ case 'CANCELLED':
102
+ currentProcess.doneAt = Date.now();
103
+ break;
104
+ case 'FAILED':
105
+ currentProcess.doneAt = Date.now();
106
+ step.execution.status = 'FAILED';
107
+ break;
108
+ case 'DONE':
109
+ currentProcess.doneAt = Date.now();
110
+ break;
111
+ case 'PENDING':
112
+ step.execution.status = 'PENDING';
113
+ break;
114
+ case 'ACTION_REQUIRED':
115
+ step.execution.status = 'ACTION_REQUIRED';
116
+ break;
117
+ default:
118
+ break;
119
+ }
120
+ currentProcess.status = status;
121
+ currentProcess.message = getProcessMessage(type, status);
122
+ // set extra parameters or overwritte the standard params set in the switch statement
123
+ if (params) {
124
+ for (const [key, value] of Object.entries(params)) {
125
+ currentProcess[key] = value;
126
+ }
127
+ }
128
+ // Sort processes, the ones with DONE status go first
129
+ step.execution.process = [
130
+ ...step?.execution?.process.filter((process) => process.status === 'DONE'),
131
+ ...step?.execution?.process.filter((process) => process.status !== 'DONE'),
132
+ ];
133
+ this.updateStepInRoute(step); // updates the step in the route
134
+ return currentProcess;
135
+ }
136
+ });
137
+ /**
138
+ * Remove a process from the execution
139
+ * @param step The step where the process should be removed from
140
+ * @param type The process type to remove
141
+ */
142
+ Object.defineProperty(this, "removeProcess", {
143
+ enumerable: true,
144
+ configurable: true,
145
+ writable: true,
146
+ value: (step, type) => {
147
+ if (!step.execution) {
148
+ throw new Error("Execution hasn't been initialized.");
149
+ }
150
+ const index = step.execution.process.findIndex((p) => p.type === type);
151
+ step.execution.process.splice(index, 1);
152
+ this.updateStepInRoute(step);
153
+ }
154
+ });
155
+ Object.defineProperty(this, "updateStepInRoute", {
156
+ enumerable: true,
157
+ configurable: true,
158
+ writable: true,
159
+ value: (step) => {
160
+ if (!this.shouldUpdate) {
161
+ return step;
162
+ }
163
+ const data = executionState.get(this.routeId);
164
+ if (!data) {
165
+ throw new Error('Execution data not found.');
166
+ }
167
+ const stepIndex = data.route.steps.findIndex((routeStep) => routeStep.id === step.id);
168
+ if (stepIndex === -1) {
169
+ throw new Error("Couldn't find a step to update.");
170
+ }
171
+ data.route.steps[stepIndex] = { ...data.route.steps[stepIndex], ...step };
172
+ data.executionOptions?.updateRouteHook?.(data.route);
173
+ return data.route.steps[stepIndex];
174
+ }
175
+ });
176
+ this.routeId = routeId;
177
+ }
178
+ /**
179
+ * Updates the execution object of a Step.
180
+ * @param step The current step in execution
181
+ * @param status The status for the execution
182
+ * @param receipt Optional. Information about received tokens
183
+ * @returns The step with the updated execution object
184
+ */
185
+ updateExecution(step, status, receipt) {
186
+ if (!step.execution) {
187
+ throw Error("Can't update empty execution.");
188
+ }
189
+ step.execution.status = status;
190
+ if (receipt) {
191
+ step.execution = {
192
+ ...step.execution,
193
+ ...receipt,
194
+ };
195
+ }
196
+ this.updateStepInRoute(step);
197
+ return step;
198
+ }
199
+ allowUpdates(value) {
200
+ this.shouldUpdate = value;
201
+ }
202
+ }
203
+ //# sourceMappingURL=StatusManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusManager.js","sourceRoot":"","sources":["../../../src/core/StatusManager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { formatUnits } from 'viem';
2
- import { getTokenBalance } from '../balance';
3
- import { BalanceError } from '../utils/errors';
2
+ import { getTokenBalance } from '../services/balance.js';
3
+ import { BalanceError } from '../utils/errors.js';
4
4
  export const checkBalance = async (walletAddress, step, depth = 0) => {
5
5
  const token = await getTokenBalance(walletAddress, step.action.fromToken);
6
6
  if (token) {
@@ -36,3 +36,4 @@ export const checkBalance = async (walletAddress, step, depth = 0) => {
36
36
  }
37
37
  }
38
38
  };
39
+ //# sourceMappingURL=checkBalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkBalance.js","sourceRoot":"","sources":["../../../src/core/checkBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,aAAqB,EACrB,IAAc,EACd,KAAK,GAAG,CAAC,EACM,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACzE,IAAI,KAAK,EAAE;QACT,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;YAClC,IAAI,KAAK,IAAI,CAAC,EAAE;gBACd,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC5B,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;gBAC1B,CAAC,CAAC,CAAA;gBACF,MAAM,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;aACnD;iBAAM,IACL,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAa,CAAC,CAAC;gBAClE,WAAc;gBAChB,cAAc,EACd;gBACA,mCAAmC;gBACnC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAA;aACnD;iBAAM;gBACL,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC3D,IAAI,YAAY,GACd,QAAQ,KAAK,CAAC,MAAM,uBAAuB;oBAC3C,uBAAuB,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI;oBAClD,8BAA8B,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI;oBACzD,0BAA0B,CAAA;gBAE5B,IAAI,cAAc,KAAK,EAAE,EAAE;oBACzB,YAAY;wBACV,2DAA2D;4BAC3D,qCAAqC,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAA;iBAClE;gBAED,MAAM,IAAI,YAAY,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAA;aAChE;SACF;KACF;AACH,CAAC,CAAA"}
@@ -0,0 +1,173 @@
1
+ import { config } from '../config.js';
2
+ import { executionState } from './executionState.js';
3
+ import { prepareRestart } from './prepareRestart.js';
4
+ /**
5
+ * Execute a route.
6
+ * @param route - The route that should be executed. Cannot be an active route.
7
+ * @param executionOptions - An object containing settings and callbacks.
8
+ * @returns The executed route.
9
+ * @throws {LiFiError} Throws a LiFiError if the execution fails.
10
+ */
11
+ export const executeRoute = async (route, executionOptions) => {
12
+ // Deep clone to prevent side effects
13
+ const clonedRoute = structuredClone(route);
14
+ let executionPromise = executionState.get(clonedRoute.id)?.promise;
15
+ // Check if route is already running
16
+ if (executionPromise) {
17
+ return executionPromise;
18
+ }
19
+ executionPromise = executeSteps(clonedRoute, executionOptions);
20
+ executionState.create(route, executionOptions, executionPromise);
21
+ return executionPromise;
22
+ };
23
+ /**
24
+ * Resume the execution of a route that has been stopped or had an error while executing.
25
+ * @param route - The route that is to be executed. Cannot be an active route.
26
+ * @param executionOptions - An object containing settings and callbacks.
27
+ * @returns The executed route.
28
+ * @throws {LiFiError} Throws a LiFiError if the execution fails.
29
+ */
30
+ export const resumeRoute = async (route, executionOptions) => {
31
+ // Deep clone to prevent side effects
32
+ const clonedRoute = structuredClone(route);
33
+ const execution = executionState.get(clonedRoute.id);
34
+ if (execution) {
35
+ const executionHalted = execution.executors.some((executor) => !executor.allowExecution);
36
+ if (!executionHalted) {
37
+ // Check if we want to resume route execution in the background
38
+ updateRouteExecution(route, {
39
+ executeInBackground: executionOptions?.executeInBackground,
40
+ });
41
+ if (!execution.promise) {
42
+ // We should never reach this point if we do clean-up properly
43
+ throw new Error('Route execution promise not found.');
44
+ }
45
+ return execution.promise;
46
+ }
47
+ }
48
+ await prepareRestart(clonedRoute);
49
+ const executionPromise = executeSteps(clonedRoute, executionOptions);
50
+ executionState.create(route, executionOptions, executionPromise);
51
+ return executionPromise;
52
+ };
53
+ const executeSteps = async (route, executionOptions) => {
54
+ executionState.create(route, executionOptions);
55
+ // Loop over steps and execute them
56
+ for (let index = 0; index < route.steps.length; index++) {
57
+ const execution = executionState.get(route.id);
58
+ // Check if execution has stopped in the meantime
59
+ if (!execution) {
60
+ break;
61
+ }
62
+ const step = route.steps[index];
63
+ const previousStep = route.steps[index - 1];
64
+ // Check if the step is already done
65
+ //
66
+ if (step.execution?.status === 'DONE') {
67
+ continue;
68
+ }
69
+ // Update amount using output of previous execution. In the future this should be handled by calling `updateRoute`
70
+ if (previousStep?.execution?.toAmount) {
71
+ step.action.fromAmount = previousStep.execution.toAmount;
72
+ }
73
+ try {
74
+ const fromAddress = step.action.fromAddress;
75
+ if (!fromAddress) {
76
+ throw new Error('Action fromAddress is not specified.');
77
+ }
78
+ const provider = config
79
+ .get()
80
+ .providers?.find((provider) => provider.isAddress(fromAddress));
81
+ if (!provider) {
82
+ throw new Error('SDK Execution Provider not found.');
83
+ }
84
+ const stepExecutor = await provider.getStepExecutor({
85
+ routeId: route.id,
86
+ executionOptions: execution.executionOptions,
87
+ });
88
+ execution.executors.push(stepExecutor);
89
+ // Check if we want to execute this step in the background
90
+ if (execution.executionOptions) {
91
+ updateRouteExecution(route, execution.executionOptions);
92
+ }
93
+ const executedStep = await stepExecutor.executeStep(step);
94
+ // We may reach this point if user interaction isn't allowed. We want to stop execution until we resume it
95
+ if (executedStep.execution?.status !== 'DONE') {
96
+ stopRouteExecution(route);
97
+ }
98
+ // Execution stopped during the current step, we don't want to continue to the next step so we return already
99
+ if (stepExecutor.allowExecution) {
100
+ return route;
101
+ }
102
+ }
103
+ catch (e) {
104
+ stopRouteExecution(route);
105
+ throw e;
106
+ }
107
+ }
108
+ // Clean up after the execution
109
+ executionState.delete(route.id);
110
+ return route;
111
+ };
112
+ /**
113
+ * Updates route execution to background or foreground state.
114
+ * @param route - A route that is currently in execution.
115
+ * @param options - An object with execution settings.
116
+ */
117
+ export const updateRouteExecution = (route, options) => {
118
+ const execution = executionState.get(route.id);
119
+ if (!execution) {
120
+ return;
121
+ }
122
+ if ('executeInBackground' in options) {
123
+ for (const executor of execution.executors) {
124
+ executor.setInteraction({
125
+ allowInteraction: !options?.executeInBackground,
126
+ allowUpdates: true,
127
+ });
128
+ }
129
+ }
130
+ // Update active route settings so we know what the current state of execution is
131
+ execution.executionOptions = {
132
+ ...execution.executionOptions,
133
+ ...options,
134
+ };
135
+ };
136
+ /**
137
+ * Stops the execution of an active route.
138
+ * @param route - A route that is currently in execution.
139
+ * @returns The stopped route.
140
+ */
141
+ export const stopRouteExecution = (route) => {
142
+ const execution = executionState.get(route.id);
143
+ if (!execution) {
144
+ return route;
145
+ }
146
+ for (const executor of execution.executors) {
147
+ executor.setInteraction({
148
+ allowInteraction: false,
149
+ allowUpdates: false,
150
+ allowExecution: false,
151
+ });
152
+ }
153
+ executionState.delete(route.id);
154
+ return route;
155
+ };
156
+ /**
157
+ * Get the list of active routes.
158
+ * @returns A list of routes.
159
+ */
160
+ export const getActiveRoutes = () => {
161
+ return Object.values(executionState.state)
162
+ .map((dict) => dict?.route)
163
+ .filter(Boolean);
164
+ };
165
+ /**
166
+ * Return the current route information for given route. The route has to be active.
167
+ * @param routeId - A route id.
168
+ * @returns The updated route.
169
+ */
170
+ export const getActiveRoute = (routeId) => {
171
+ return executionState.get(routeId)?.route;
172
+ };
173
+ //# sourceMappingURL=execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/core/execution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export const executionState = {
2
+ state: {},
3
+ get(routeId) {
4
+ return this.state[routeId];
5
+ },
6
+ create(route, executionOptions, promise) {
7
+ this.state[route.id] = {
8
+ ...this.state[route.id],
9
+ route,
10
+ executionOptions,
11
+ promise,
12
+ executors: [],
13
+ };
14
+ return this.state[route.id];
15
+ },
16
+ delete(routeId) {
17
+ delete this.state[routeId];
18
+ },
19
+ };
20
+ //# sourceMappingURL=executionState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionState.js","sourceRoot":"","sources":["../../../src/core/executionState.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,KAAK,EAAE,EAAE;IACT,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO;QACrC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG;YACrB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK;YACL,gBAAgB;YAChB,OAAO;YACP,SAAS,EAAE,EAAE;SACd,CAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAE,CAAA;IAC9B,CAAC;IACD,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;CACF,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './StatusManager.js';
2
+ export * from './execution.js';
3
+ export * from './types.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,64 @@
1
+ export const prepareRestart = async (route) => {
2
+ for (let index = 0; index < route.steps.length; index++) {
3
+ const step = route.steps[index];
4
+ const stepHasFailed = step.execution?.status === 'FAILED';
5
+ if (stepHasFailed) {
6
+ // await handleErrorType(walletClient, step)
7
+ deleteFailedProcesses(step);
8
+ deleteTransactionData(step);
9
+ }
10
+ }
11
+ };
12
+ // const handleErrorType = async (walletClient: WalletClient, step: LiFiStep) => {
13
+ // const client = walletClient.extend(publicActions)
14
+ // const isGasLimitError = step.execution?.process.some(
15
+ // (p) => p.error?.code === LiFiErrorCode.GasLimitError
16
+ // )
17
+ // const isGasPriceError = step.execution?.process.some(
18
+ // (p) => p.error?.code === LiFiErrorCode.TransactionUnderpriced
19
+ // )
20
+ // const { transactionRequest } = step
21
+ // if (isGasLimitError) {
22
+ // if (transactionRequest) {
23
+ // let gasLimit = transactionRequest.gasLimit
24
+ // try {
25
+ // gasLimit = await client.estimateGas(transactionRequest)
26
+ // } catch (error) {}
27
+ // if (gasLimit) {
28
+ // transactionRequest.gasLimit = BigNumber.from(
29
+ // `${(BigInt(gasLimit.toString()) * 125n) / 100n}`
30
+ // )
31
+ // }
32
+ // }
33
+ // step.estimate.gasCosts?.forEach(
34
+ // (gasCost) =>
35
+ // (gasCost.limit = `${Math.round(Number(gasCost.limit) * 1.25)}`)
36
+ // )
37
+ // }
38
+ // if (isGasPriceError) {
39
+ // if (transactionRequest) {
40
+ // let gasPrice = transactionRequest.gasPrice
41
+ // try {
42
+ // gasPrice = await client.getGasPrice()
43
+ // } catch (error) {}
44
+ // if (gasPrice) {
45
+ // transactionRequest.gasPrice = BigNumber.from(
46
+ // `${(BigInt(gasPrice.toString()) * 125n) / 100n}`
47
+ // )
48
+ // }
49
+ // }
50
+ // step.estimate.gasCosts?.forEach(
51
+ // (gasCost) =>
52
+ // (gasCost.price = `${Math.round(Number(gasCost.price) * 1.25)}`)
53
+ // )
54
+ // }
55
+ // }
56
+ const deleteFailedProcesses = (step) => {
57
+ if (step.execution) {
58
+ step.execution.process = step.execution.process.filter((process) => process.status === 'DONE');
59
+ }
60
+ };
61
+ const deleteTransactionData = (step) => {
62
+ step.transactionRequest = undefined;
63
+ };
64
+ //# sourceMappingURL=prepareRestart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareRestart.js","sourceRoot":"","sources":["../../../src/core/prepareRestart.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE;IACnD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,KAAK,QAAQ,CAAA;QAEzD,IAAI,aAAa,EAAE;YACjB,4CAA4C;YAC5C,qBAAqB,CAAC,IAAI,CAAC,CAAA;YAC3B,qBAAqB,CAAC,IAAI,CAAC,CAAA;SAC5B;KACF;AACH,CAAC,CAAA;AAED,kFAAkF;AAClF,sDAAsD;AAEtD,0DAA0D;AAC1D,2DAA2D;AAC3D,MAAM;AACN,0DAA0D;AAC1D,oEAAoE;AACpE,MAAM;AAEN,wCAAwC;AAExC,yBAAyB;AACzB,8BAA8B;AAC9B,iDAAiD;AAEjD,YAAY;AACZ,gEAAgE;AAChE,yBAAyB;AAEzB,sBAAsB;AACtB,sDAAsD;AACtD,2DAA2D;AAC3D,UAAU;AACV,QAAQ;AACR,MAAM;AAEN,qCAAqC;AACrC,mBAAmB;AACnB,wEAAwE;AACxE,MAAM;AACN,IAAI;AAEJ,yBAAyB;AACzB,8BAA8B;AAC9B,iDAAiD;AAEjD,YAAY;AACZ,8CAA8C;AAC9C,yBAAyB;AAEzB,sBAAsB;AACtB,sDAAsD;AACtD,2DAA2D;AAC3D,UAAU;AACV,QAAQ;AACR,MAAM;AAEN,qCAAqC;AACrC,mBAAmB;AACnB,wEAAwE;AACxE,MAAM;AACN,IAAI;AACJ,IAAI;AAEJ,MAAM,qBAAqB,GAAG,CAAC,IAAc,EAAE,EAAE;IAC/C,IAAI,IAAI,CAAC,SAAS,EAAE;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CACpD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CACvC,CAAA;KACF;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,IAAc,EAAE,EAAE;IAC/C,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAA;AACrC,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { config } from '../config.js';
2
+ export const getProvider = (type) => {
3
+ const provider = config
4
+ .get()
5
+ .providers?.find((provider) => provider.type === type);
6
+ if (!provider) {
7
+ throw new Error(`${type} provider not found.`);
8
+ }
9
+ return provider;
10
+ };
11
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/core/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,IAAe,EAAK,EAAE;IACnD,MAAM,QAAQ,GAAG,MAAM;SACpB,GAAG,EAAE;SACL,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAM,CAAA;IAC7D,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sBAAsB,CAAC,CAAA;KAC/C;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
- import { LiFiErrorCode, TransactionError } from '../utils/errors';
2
- import { checkStepSlippageThreshold } from './utils';
1
+ import { LiFiErrorCode, TransactionError } from '../utils/errors.js';
2
+ import { checkStepSlippageThreshold } from './utils.js';
3
3
  /**
4
4
  * This method checks whether the new and updated Step meets the required exchange rate conditions.
5
5
  * If yes it returns the updated Step.
@@ -9,16 +9,17 @@ import { checkStepSlippageThreshold } from './utils';
9
9
  * @param newStep
10
10
  * @param settings
11
11
  * @param allowUserInteraction
12
- * @returns Return LifiStep
12
+ * @param executionOptions
13
+ * @returns Return LiFiStep
13
14
  */
14
- export const stepComparison = async (statusManager, oldStep, newStep, settings, allowUserInteraction) => {
15
+ export const stepComparison = async (statusManager, oldStep, newStep, allowUserInteraction, executionOptions) => {
15
16
  // Check if changed exchange rate is in the range of slippage threshold
16
17
  if (checkStepSlippageThreshold(oldStep, newStep)) {
17
18
  return statusManager.updateStepInRoute(newStep);
18
19
  }
19
20
  let allowStepUpdate;
20
21
  if (allowUserInteraction) {
21
- allowStepUpdate = await settings.acceptExchangeRateUpdateHook({
22
+ allowStepUpdate = await executionOptions?.acceptExchangeRateUpdateHook?.({
22
23
  oldToAmount: oldStep.estimate.toAmount,
23
24
  newToAmount: newStep.estimate.toAmount,
24
25
  toToken: newStep.action.toToken,
@@ -31,3 +32,4 @@ export const stepComparison = async (statusManager, oldStep, newStep, settings,
31
32
  }
32
33
  return statusManager.updateStepInRoute(newStep);
33
34
  };
35
+ //# sourceMappingURL=stepComparison.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepComparison.js","sourceRoot":"","sources":["../../../src/core/stepComparison.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,aAA4B,EAC5B,OAAiB,EACjB,OAAiB,EACjB,oBAA6B,EAC7B,gBAAmC,EAChB,EAAE;IACrB,uEAAuE;IACvE,IAAI,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QAChD,OAAO,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;KAChD;IAED,IAAI,eAAoC,CAAA;IACxC,IAAI,oBAAoB,EAAE;QACxB,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;KACH;IAED,IAAI,CAAC,eAAe,EAAE;QACpB,0EAA0E;QAC1E,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,0BAA0B,EACxC,4BAA4B,EAC5B;wGACkG,CACnG,CAAA;KACF;IAED,OAAO,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACjD,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":""}
@@ -1,3 +1,16 @@
1
+ import {} from '@lifi/types';
2
+ import { config } from '../config.js';
3
+ export const getRpcUrl = async (chainId) => {
4
+ const rpcUrls = await getRpcUrls(chainId);
5
+ return rpcUrls[0];
6
+ };
7
+ export const getRpcUrls = async (chainId) => {
8
+ const rpcUrls = (await config.getRPCUrls())[chainId];
9
+ if (!rpcUrls?.length) {
10
+ throw new Error('RPC URL not found');
11
+ }
12
+ return rpcUrls;
13
+ };
1
14
  const processMessages = {
2
15
  TOKEN_ALLOWANCE: {
3
16
  STARTED: 'Setting token allowance.',
@@ -77,3 +90,4 @@ export function checkStepSlippageThreshold(oldStep, newStep) {
77
90
  }
78
91
  return actualSlippage <= setSlippage;
79
92
  }
93
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import ApiService from '../services/ApiService';
2
- import { ServerError } from '../utils/errors';
3
- import { repeatUntilDone } from '../utils/utils';
4
- import { getSubstatusMessage } from './utils';
1
+ import { getStatus } from '../services/api.js';
2
+ import { ServerError } from '../utils/errors.js';
3
+ import { repeatUntilDone } from '../utils/utils.js';
4
+ import { getSubstatusMessage } from './utils.js';
5
5
  const TRANSACTION_HASH_OBSERVERS = {};
6
6
  export async function waitForReceivingTransaction(txHash, statusManager, processType, step) {
7
- const getStatus = () => new Promise(async (resolve, reject) => {
7
+ const _getStatus = () => new Promise(async (resolve, reject) => {
8
8
  let statusResponse;
9
9
  try {
10
- statusResponse = await ApiService.getStatus({
10
+ statusResponse = await getStatus({
11
11
  bridge: step.tool,
12
12
  fromChain: step.action.fromChainId,
13
13
  toChain: step.action.toChainId,
@@ -41,7 +41,7 @@ export async function waitForReceivingTransaction(txHash, statusManager, process
41
41
  status = await TRANSACTION_HASH_OBSERVERS[txHash];
42
42
  }
43
43
  else {
44
- TRANSACTION_HASH_OBSERVERS[txHash] = repeatUntilDone(getStatus, 5000);
44
+ TRANSACTION_HASH_OBSERVERS[txHash] = repeatUntilDone(_getStatus, 5000);
45
45
  status = await TRANSACTION_HASH_OBSERVERS[txHash];
46
46
  }
47
47
  if (!status.receiving) {
@@ -49,3 +49,4 @@ export async function waitForReceivingTransaction(txHash, statusManager, process
49
49
  }
50
50
  return status;
51
51
  }
52
+ //# sourceMappingURL=waitForReceivingTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForReceivingTransaction.js","sourceRoot":"","sources":["../../../src/core/waitForReceivingTransaction.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,MAAM,0BAA0B,GAA4C,EAAE,CAAA;AAE9E,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAc,EACd,aAA4B,EAC5B,WAAwB,EACxB,IAAc;IAEd,MAAM,UAAU,GAAG,GAAwC,EAAE,CAC3D,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QACpC,IAAI,cAA8B,CAAA;QAClC,IAAI;YACF,cAAc,GAAG,MAAM,SAAS,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBAClC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC9B,MAAM;aACP,CAAC,CAAA;SACH;QAAC,OAAO,CAAM,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAA;YACxD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;SAC1B;QAED,QAAQ,cAAc,CAAC,MAAM,EAAE;YAC7B,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,cAAc,CAAC,CAAA;YAChC,KAAK,SAAS;gBACZ,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;oBACzD,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,gBAAgB,EACd,cAAc,CAAC,gBAAgB;wBAC/B,mBAAmB,CACjB,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,SAAS,CACzB;oBACH,MAAM,EAAG,cAAiC,CAAC,kBAAkB;iBAC9D,CAAC,CAAA;gBACF,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;YAC3B,KAAK,WAAW;gBACd,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;YAC3B,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO,MAAM,EAAE,CAAA;SAClB;IACH,CAAC,CAAC,CAAA;IAEJ,IAAI,MAAM,CAAA;IAEV,IAAI,MAAM,IAAI,0BAA0B,EAAE;QACxC,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAA;KAClD;SAAM;QACL,0BAA0B,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,UAAU,EAAE,IAAK,CAAC,CAAA;QACvE,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAA;KAClD;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QACrB,MAAM,IAAI,WAAW,CAAC,+CAA+C,CAAC,CAAA;KACvE;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}