@lifi/sdk 3.0.0-alpha.1 → 3.0.0-alpha.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 (349) hide show
  1. package/dist/cjs/LiFi.js +222 -261
  2. package/dist/cjs/LiFi.js.map +1 -0
  3. package/dist/cjs/allowance/getAllowance.js +13 -16
  4. package/dist/cjs/allowance/getAllowance.js.map +1 -0
  5. package/dist/cjs/allowance/index.js +5 -17
  6. package/dist/cjs/allowance/index.js.map +1 -0
  7. package/dist/cjs/allowance/setAllowance.js +33 -18
  8. package/dist/cjs/allowance/setAllowance.js.map +1 -0
  9. package/dist/cjs/allowance/types.js +1 -0
  10. package/dist/cjs/allowance/types.js.map +1 -0
  11. package/dist/cjs/balance/getBalance.js +14 -14
  12. package/dist/cjs/balance/getBalance.js.map +1 -0
  13. package/dist/cjs/balance/getTokenBalance.js +3 -3
  14. package/dist/cjs/balance/getTokenBalance.js.map +1 -0
  15. package/dist/cjs/balance/index.js +4 -16
  16. package/dist/cjs/balance/index.js.map +1 -0
  17. package/dist/cjs/connectors.js +7 -35
  18. package/dist/cjs/connectors.js.map +1 -0
  19. package/dist/cjs/constants.js +2 -4
  20. package/dist/cjs/constants.js.map +1 -0
  21. package/dist/cjs/execution/BaseStepExecutor.js +54 -0
  22. package/dist/cjs/execution/BaseStepExecutor.js.map +1 -0
  23. package/dist/cjs/execution/EVMStepExecutor.js +271 -0
  24. package/dist/cjs/execution/EVMStepExecutor.js.map +1 -0
  25. package/dist/cjs/execution/RouteExecutionManager.js +196 -179
  26. package/dist/cjs/execution/RouteExecutionManager.js.map +1 -0
  27. package/dist/cjs/execution/StatusManager.js +142 -135
  28. package/dist/cjs/execution/StatusManager.js.map +1 -0
  29. package/dist/cjs/execution/StepExecutionManager.js +223 -229
  30. package/dist/cjs/execution/StepExecutionManager.js.map +1 -0
  31. package/dist/cjs/execution/checkAllowance.js +9 -10
  32. package/dist/cjs/execution/checkAllowance.js.map +1 -0
  33. package/dist/cjs/execution/checkBalance.js +5 -5
  34. package/dist/cjs/execution/checkBalance.js.map +1 -0
  35. package/dist/cjs/execution/index.js +4 -15
  36. package/dist/cjs/execution/index.js.map +1 -0
  37. package/dist/cjs/execution/multisig.js +6 -8
  38. package/dist/cjs/execution/multisig.js.map +1 -0
  39. package/dist/cjs/execution/prepareRestart.js +2 -44
  40. package/dist/cjs/execution/prepareRestart.js.map +1 -0
  41. package/dist/cjs/execution/stepComparison.js +5 -17
  42. package/dist/cjs/execution/stepComparison.js.map +1 -0
  43. package/dist/cjs/execution/switchChain.js +4 -21
  44. package/dist/cjs/execution/switchChain.js.map +1 -0
  45. package/dist/cjs/{types/internal.types.js → execution/types.js} +1 -0
  46. package/dist/cjs/execution/types.js.map +1 -0
  47. package/dist/cjs/execution/utils.js +1 -9
  48. package/dist/cjs/execution/utils.js.map +1 -0
  49. package/dist/cjs/execution/waitForReceivingTransaction.js +9 -11
  50. package/dist/cjs/execution/waitForReceivingTransaction.js.map +1 -0
  51. package/dist/cjs/helpers.js +11 -25
  52. package/dist/cjs/helpers.js.map +1 -0
  53. package/dist/cjs/index.js +16 -22
  54. package/dist/cjs/index.js.map +1 -0
  55. package/dist/cjs/package.json +1 -0
  56. package/dist/cjs/providers/EVM.js +35 -0
  57. package/dist/cjs/providers/EVM.js.map +1 -0
  58. package/dist/cjs/providers/Solana.js +38 -0
  59. package/dist/cjs/providers/Solana.js.map +1 -0
  60. package/dist/cjs/providers/index.js +5 -0
  61. package/dist/cjs/providers/index.js.map +1 -0
  62. package/dist/cjs/providers/types.js +9 -0
  63. package/dist/cjs/providers/types.js.map +1 -0
  64. package/dist/cjs/request.js +19 -16
  65. package/dist/cjs/request.js.map +1 -0
  66. package/dist/cjs/services/ApiService.js +72 -90
  67. package/dist/cjs/services/ApiService.js.map +1 -0
  68. package/dist/cjs/services/ChainsService.js +19 -9
  69. package/dist/cjs/services/ChainsService.js.map +1 -0
  70. package/dist/cjs/services/ConfigService.js +94 -65
  71. package/dist/cjs/services/ConfigService.js.map +1 -0
  72. package/dist/cjs/typeguards.js +1 -0
  73. package/dist/cjs/typeguards.js.map +1 -0
  74. package/dist/cjs/types/abi.js +1 -0
  75. package/dist/cjs/types/abi.js.map +1 -0
  76. package/dist/cjs/types/index.js +4 -20
  77. package/dist/cjs/types/index.js.map +1 -0
  78. package/dist/cjs/types/internal.js +3 -0
  79. package/dist/cjs/types/internal.js.map +1 -0
  80. package/dist/cjs/utils/errors.js +25 -3
  81. package/dist/cjs/utils/errors.js.map +1 -0
  82. package/dist/cjs/utils/getMaxPriorityFeePerGas.js +3 -2
  83. package/dist/cjs/utils/getMaxPriorityFeePerGas.js.map +1 -0
  84. package/dist/cjs/utils/index.js +7 -19
  85. package/dist/cjs/utils/index.js.map +1 -0
  86. package/dist/cjs/utils/median.js +1 -0
  87. package/dist/cjs/utils/median.js.map +1 -0
  88. package/dist/cjs/utils/parseError.js +39 -79
  89. package/dist/cjs/utils/parseError.js.map +1 -0
  90. package/dist/cjs/utils/utils.js +5 -11
  91. package/dist/cjs/utils/utils.js.map +1 -0
  92. package/dist/cjs/version.js +2 -1
  93. package/dist/cjs/version.js.map +1 -0
  94. package/dist/esm/LiFi.js +375 -0
  95. package/dist/esm/LiFi.js.map +1 -0
  96. package/dist/{allowance → esm/allowance}/getAllowance.js +5 -4
  97. package/dist/esm/allowance/getAllowance.js.map +1 -0
  98. package/dist/esm/allowance/index.js +4 -0
  99. package/dist/esm/allowance/index.js.map +1 -0
  100. package/dist/{allowance → esm/allowance}/setAllowance.js +28 -11
  101. package/dist/esm/allowance/setAllowance.js.map +1 -0
  102. package/dist/esm/allowance/types.js +2 -0
  103. package/dist/esm/allowance/types.js.map +1 -0
  104. package/dist/{balance → esm/balance}/getBalance.js +5 -5
  105. package/dist/esm/balance/getBalance.js.map +1 -0
  106. package/dist/{balance → esm/balance}/getTokenBalance.js +2 -1
  107. package/dist/esm/balance/getTokenBalance.js.map +1 -0
  108. package/dist/esm/balance/index.js +3 -0
  109. package/dist/esm/balance/index.js.map +1 -0
  110. package/dist/{connectors.js → esm/connectors.js} +3 -2
  111. package/dist/esm/connectors.js.map +1 -0
  112. package/dist/{constants.js → esm/constants.js} +1 -0
  113. package/dist/esm/constants.js.map +1 -0
  114. package/dist/esm/execution/BaseStepExecutor.js +51 -0
  115. package/dist/esm/execution/BaseStepExecutor.js.map +1 -0
  116. package/dist/esm/execution/EVMStepExecutor.js +299 -0
  117. package/dist/esm/execution/EVMStepExecutor.js.map +1 -0
  118. package/dist/esm/execution/RouteExecutionManager.js +268 -0
  119. package/dist/esm/execution/RouteExecutionManager.js.map +1 -0
  120. package/dist/esm/execution/StatusManager.js +216 -0
  121. package/dist/esm/execution/StatusManager.js.map +1 -0
  122. package/dist/esm/execution/StepExecutionManager.js +280 -0
  123. package/dist/esm/execution/StepExecutionManager.js.map +1 -0
  124. package/dist/{execution → esm/execution}/checkAllowance.js +5 -4
  125. package/dist/esm/execution/checkAllowance.js.map +1 -0
  126. package/dist/{execution → esm/execution}/checkBalance.js +3 -2
  127. package/dist/esm/execution/checkBalance.js.map +1 -0
  128. package/dist/esm/execution/index.js +3 -0
  129. package/dist/esm/execution/index.js.map +1 -0
  130. package/dist/{execution → esm/execution}/multisig.js +3 -2
  131. package/dist/esm/execution/multisig.js.map +1 -0
  132. package/dist/esm/execution/prepareRestart.js +64 -0
  133. package/dist/esm/execution/prepareRestart.js.map +1 -0
  134. package/dist/{execution → esm/execution}/stepComparison.js +4 -3
  135. package/dist/esm/execution/stepComparison.js.map +1 -0
  136. package/dist/{execution → esm/execution}/switchChain.js +3 -1
  137. package/dist/esm/execution/switchChain.js.map +1 -0
  138. package/dist/esm/execution/types.js +2 -0
  139. package/dist/esm/execution/types.js.map +1 -0
  140. package/dist/{execution → esm/execution}/utils.js +1 -0
  141. package/dist/esm/execution/utils.js.map +1 -0
  142. package/dist/{execution → esm/execution}/waitForReceivingTransaction.js +5 -4
  143. package/dist/esm/execution/waitForReceivingTransaction.js.map +1 -0
  144. package/dist/{helpers.js → esm/helpers.js} +4 -3
  145. package/dist/esm/helpers.js.map +1 -0
  146. package/dist/esm/index.js +10 -0
  147. package/dist/esm/index.js.map +1 -0
  148. package/dist/esm/package.json +1 -0
  149. package/dist/esm/providers/EVM.js +30 -0
  150. package/dist/esm/providers/EVM.js.map +1 -0
  151. package/dist/esm/providers/Solana.js +34 -0
  152. package/dist/esm/providers/Solana.js.map +1 -0
  153. package/dist/esm/providers/index.js +2 -0
  154. package/dist/esm/providers/index.js.map +1 -0
  155. package/dist/esm/providers/types.js +6 -0
  156. package/dist/esm/providers/types.js.map +1 -0
  157. package/dist/{request.js → esm/request.js} +16 -9
  158. package/dist/esm/request.js.map +1 -0
  159. package/dist/{services → esm/services}/ApiService.js +29 -28
  160. package/dist/esm/services/ApiService.js.map +1 -0
  161. package/dist/{services → esm/services}/ChainsService.js +16 -4
  162. package/dist/esm/services/ChainsService.js.map +1 -0
  163. package/dist/esm/services/ConfigService.js +143 -0
  164. package/dist/esm/services/ConfigService.js.map +1 -0
  165. package/dist/{typeguards.js → esm/typeguards.js} +1 -0
  166. package/dist/esm/typeguards.js.map +1 -0
  167. package/dist/{types → esm/types}/abi.js +1 -0
  168. package/dist/esm/types/abi.js.map +1 -0
  169. package/dist/esm/types/index.js +3 -0
  170. package/dist/esm/types/index.js.map +1 -0
  171. package/dist/esm/types/internal.js +2 -0
  172. package/dist/esm/types/internal.js.map +1 -0
  173. package/dist/{utils → esm/utils}/errors.js +25 -0
  174. package/dist/esm/utils/errors.js.map +1 -0
  175. package/dist/{utils → esm/utils}/getMaxPriorityFeePerGas.js +2 -1
  176. package/dist/esm/utils/getMaxPriorityFeePerGas.js.map +1 -0
  177. package/dist/esm/utils/index.js +6 -0
  178. package/dist/esm/utils/index.js.map +1 -0
  179. package/dist/{utils → esm/utils}/median.js +1 -0
  180. package/dist/esm/utils/median.js.map +1 -0
  181. package/dist/{utils → esm/utils}/parseError.js +4 -3
  182. package/dist/esm/utils/parseError.js.map +1 -0
  183. package/dist/{utils → esm/utils}/utils.js +2 -1
  184. package/dist/esm/utils/utils.js.map +1 -0
  185. package/dist/esm/version.js +3 -0
  186. package/dist/esm/version.js.map +1 -0
  187. package/dist/{LiFi.d.ts → types/LiFi.d.ts} +29 -21
  188. package/dist/types/LiFi.d.ts.map +1 -0
  189. package/dist/{cjs → types}/allowance/getAllowance.d.ts +2 -1
  190. package/dist/types/allowance/getAllowance.d.ts.map +1 -0
  191. package/dist/types/allowance/index.d.ts +4 -0
  192. package/dist/types/allowance/index.d.ts.map +1 -0
  193. package/dist/types/allowance/setAllowance.d.ts +7 -0
  194. package/dist/types/allowance/setAllowance.d.ts.map +1 -0
  195. package/dist/{allowance → types/allowance}/types.d.ts +1 -0
  196. package/dist/types/allowance/types.d.ts.map +1 -0
  197. package/dist/{balance → types/balance}/getBalance.d.ts +1 -0
  198. package/dist/types/balance/getBalance.d.ts.map +1 -0
  199. package/dist/{balance → types/balance}/getTokenBalance.d.ts +1 -0
  200. package/dist/types/balance/getTokenBalance.d.ts.map +1 -0
  201. package/dist/types/balance/index.d.ts +3 -0
  202. package/dist/types/balance/index.d.ts.map +1 -0
  203. package/dist/{cjs → types}/connectors.d.ts +2 -1
  204. package/dist/types/connectors.d.ts.map +1 -0
  205. package/dist/{cjs → types}/constants.d.ts +1 -0
  206. package/dist/types/constants.d.ts.map +1 -0
  207. package/dist/types/execution/BaseStepExecutor.d.ts +13 -0
  208. package/dist/types/execution/BaseStepExecutor.d.ts.map +1 -0
  209. package/dist/types/execution/EVMStepExecutor.d.ts +14 -0
  210. package/dist/types/execution/EVMStepExecutor.d.ts.map +1 -0
  211. package/dist/{cjs → types}/execution/RouteExecutionManager.d.ts +10 -8
  212. package/dist/types/execution/RouteExecutionManager.d.ts.map +1 -0
  213. package/dist/{execution → types/execution}/StatusManager.d.ts +9 -7
  214. package/dist/types/execution/StatusManager.d.ts.map +1 -0
  215. package/dist/{execution → types/execution}/StepExecutionManager.d.ts +4 -3
  216. package/dist/types/execution/StepExecutionManager.d.ts.map +1 -0
  217. package/dist/types/execution/checkAllowance.d.ts +6 -0
  218. package/dist/types/execution/checkAllowance.d.ts.map +1 -0
  219. package/dist/types/execution/checkBalance.d.ts +3 -0
  220. package/dist/types/execution/checkBalance.d.ts.map +1 -0
  221. package/dist/types/execution/index.d.ts +3 -0
  222. package/dist/types/execution/index.d.ts.map +1 -0
  223. package/dist/types/execution/multisig.d.ts +5 -0
  224. package/dist/types/execution/multisig.d.ts.map +1 -0
  225. package/dist/types/execution/prepareRestart.d.ts +3 -0
  226. package/dist/types/execution/prepareRestart.d.ts.map +1 -0
  227. package/dist/{cjs → types}/execution/stepComparison.d.ts +6 -4
  228. package/dist/types/execution/stepComparison.d.ts.map +1 -0
  229. package/dist/{cjs → types}/execution/switchChain.d.ts +6 -4
  230. package/dist/types/execution/switchChain.d.ts.map +1 -0
  231. package/dist/types/{internal.types.d.ts → execution/types.d.ts} +38 -98
  232. package/dist/types/execution/types.d.ts.map +1 -0
  233. package/dist/{execution → types/execution}/utils.d.ts +3 -2
  234. package/dist/types/execution/utils.d.ts.map +1 -0
  235. package/dist/types/execution/waitForReceivingTransaction.d.ts +4 -0
  236. package/dist/types/execution/waitForReceivingTransaction.d.ts.map +1 -0
  237. package/dist/{helpers.d.ts → types/helpers.d.ts} +4 -3
  238. package/dist/types/helpers.d.ts.map +1 -0
  239. package/dist/types/index.d.ts +9 -3
  240. package/dist/types/index.d.ts.map +1 -0
  241. package/dist/types/providers/EVM.d.ts +11 -0
  242. package/dist/types/providers/EVM.d.ts.map +1 -0
  243. package/dist/types/providers/Solana.d.ts +10 -0
  244. package/dist/types/providers/Solana.d.ts.map +1 -0
  245. package/dist/types/providers/index.d.ts +2 -0
  246. package/dist/types/providers/index.d.ts.map +1 -0
  247. package/dist/types/providers/types.d.ts +13 -0
  248. package/dist/types/providers/types.d.ts.map +1 -0
  249. package/dist/{request.d.ts → types/request.d.ts} +1 -0
  250. package/dist/types/request.d.ts.map +1 -0
  251. package/dist/{services → types/services}/ApiService.d.ts +5 -5
  252. package/dist/types/services/ApiService.d.ts.map +1 -0
  253. package/dist/{cjs → types}/services/ChainsService.d.ts +2 -1
  254. package/dist/types/services/ChainsService.d.ts.map +1 -0
  255. package/dist/{services → types/services}/ConfigService.d.ts +10 -6
  256. package/dist/types/services/ConfigService.d.ts.map +1 -0
  257. package/dist/{cjs → types}/typeguards.d.ts +3 -2
  258. package/dist/types/typeguards.d.ts.map +1 -0
  259. package/dist/{cjs → types}/types/abi.d.ts +1 -0
  260. package/dist/types/types/abi.d.ts.map +1 -0
  261. package/dist/types/types/index.d.ts +3 -0
  262. package/dist/types/types/index.d.ts.map +1 -0
  263. package/dist/types/types/internal.d.ts +61 -0
  264. package/dist/types/types/internal.d.ts.map +1 -0
  265. package/dist/{cjs → types}/utils/errors.d.ts +1 -0
  266. package/dist/types/utils/errors.d.ts.map +1 -0
  267. package/dist/{cjs → types}/utils/getMaxPriorityFeePerGas.d.ts +1 -0
  268. package/dist/types/utils/getMaxPriorityFeePerGas.d.ts.map +1 -0
  269. package/dist/types/utils/index.d.ts +6 -0
  270. package/dist/types/utils/index.d.ts.map +1 -0
  271. package/dist/{cjs → types}/utils/median.d.ts +1 -0
  272. package/dist/types/utils/median.d.ts.map +1 -0
  273. package/dist/{cjs → types}/utils/parseError.d.ts +6 -5
  274. package/dist/types/utils/parseError.d.ts.map +1 -0
  275. package/dist/{cjs → types}/utils/utils.d.ts +1 -0
  276. package/dist/types/utils/utils.d.ts.map +1 -0
  277. package/dist/types/version.d.ts +3 -0
  278. package/dist/types/version.d.ts.map +1 -0
  279. package/package.json +37 -96
  280. package/dist/LiFi.js +0 -246
  281. package/dist/allowance/getAllowance.d.ts +0 -6
  282. package/dist/allowance/index.d.ts +0 -3
  283. package/dist/allowance/index.js +0 -3
  284. package/dist/allowance/setAllowance.d.ts +0 -5
  285. package/dist/allowance/types.js +0 -1
  286. package/dist/balance/index.d.ts +0 -2
  287. package/dist/balance/index.js +0 -2
  288. package/dist/cjs/LiFi.d.ts +0 -171
  289. package/dist/cjs/allowance/index.d.ts +0 -3
  290. package/dist/cjs/allowance/setAllowance.d.ts +0 -5
  291. package/dist/cjs/allowance/types.d.ts +0 -27
  292. package/dist/cjs/balance/getBalance.d.ts +0 -2
  293. package/dist/cjs/balance/getTokenBalance.d.ts +0 -8
  294. package/dist/cjs/balance/index.d.ts +0 -2
  295. package/dist/cjs/execution/StatusManager.d.ts +0 -67
  296. package/dist/cjs/execution/StepExecutionManager.d.ts +0 -7
  297. package/dist/cjs/execution/StepExecutor.d.ts +0 -15
  298. package/dist/cjs/execution/StepExecutor.js +0 -62
  299. package/dist/cjs/execution/checkAllowance.d.ts +0 -4
  300. package/dist/cjs/execution/checkBalance.d.ts +0 -2
  301. package/dist/cjs/execution/index.d.ts +0 -1
  302. package/dist/cjs/execution/multisig.d.ts +0 -4
  303. package/dist/cjs/execution/prepareRestart.d.ts +0 -3
  304. package/dist/cjs/execution/utils.d.ts +0 -12
  305. package/dist/cjs/execution/waitForReceivingTransaction.d.ts +0 -3
  306. package/dist/cjs/helpers.d.ts +0 -18
  307. package/dist/cjs/index.d.ts +0 -5
  308. package/dist/cjs/request.d.ts +0 -9
  309. package/dist/cjs/services/ApiService.d.ts +0 -17
  310. package/dist/cjs/services/ConfigService.d.ts +0 -23
  311. package/dist/cjs/types/index.d.ts +0 -4
  312. package/dist/cjs/types/internal.types.d.ts +0 -143
  313. package/dist/cjs/utils/index.d.ts +0 -5
  314. package/dist/cjs/version.d.ts +0 -2
  315. package/dist/connectors.d.ts +0 -8
  316. package/dist/constants.d.ts +0 -6
  317. package/dist/execution/RouteExecutionManager.d.ts +0 -59
  318. package/dist/execution/RouteExecutionManager.js +0 -195
  319. package/dist/execution/StatusManager.js +0 -167
  320. package/dist/execution/StepExecutionManager.js +0 -260
  321. package/dist/execution/StepExecutor.d.ts +0 -15
  322. package/dist/execution/StepExecutor.js +0 -58
  323. package/dist/execution/checkAllowance.d.ts +0 -4
  324. package/dist/execution/checkBalance.d.ts +0 -2
  325. package/dist/execution/index.d.ts +0 -1
  326. package/dist/execution/index.js +0 -1
  327. package/dist/execution/multisig.d.ts +0 -4
  328. package/dist/execution/prepareRestart.d.ts +0 -3
  329. package/dist/execution/prepareRestart.js +0 -61
  330. package/dist/execution/stepComparison.d.ts +0 -14
  331. package/dist/execution/switchChain.d.ts +0 -21
  332. package/dist/execution/waitForReceivingTransaction.d.ts +0 -3
  333. package/dist/index.d.ts +0 -5
  334. package/dist/index.js +0 -6
  335. package/dist/services/ChainsService.d.ts +0 -11
  336. package/dist/services/ConfigService.js +0 -99
  337. package/dist/typeguards.d.ts +0 -4
  338. package/dist/types/abi.d.ts +0 -5
  339. package/dist/types/index.js +0 -4
  340. package/dist/types/internal.types.js +0 -1
  341. package/dist/utils/errors.d.ts +0 -107
  342. package/dist/utils/getMaxPriorityFeePerGas.d.ts +0 -2
  343. package/dist/utils/index.d.ts +0 -5
  344. package/dist/utils/index.js +0 -5
  345. package/dist/utils/median.d.ts +0 -1
  346. package/dist/utils/parseError.d.ts +0 -37
  347. package/dist/utils/utils.d.ts +0 -10
  348. package/dist/version.d.ts +0 -2
  349. package/dist/version.js +0 -2
@@ -0,0 +1,51 @@
1
+ // Please be careful when changing the defaults as it may break the behavior (e.g., background execution)
2
+ const defaultInteractionSettings = {
3
+ allowInteraction: true,
4
+ allowUpdates: true,
5
+ allowExecution: true,
6
+ };
7
+ export class BaseStepExecutor {
8
+ constructor(options) {
9
+ Object.defineProperty(this, "settings", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: void 0
14
+ });
15
+ Object.defineProperty(this, "statusManager", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: void 0
20
+ });
21
+ Object.defineProperty(this, "allowUserInteraction", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: true
26
+ });
27
+ Object.defineProperty(this, "allowExecution", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: true
32
+ });
33
+ Object.defineProperty(this, "setInteraction", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: (settings) => {
38
+ const interactionSettings = {
39
+ ...defaultInteractionSettings,
40
+ ...settings,
41
+ };
42
+ this.allowUserInteraction = interactionSettings.allowInteraction;
43
+ this.statusManager.allowUpdates(interactionSettings.allowUpdates);
44
+ this.allowExecution = interactionSettings.allowExecution;
45
+ }
46
+ });
47
+ this.statusManager = options.statusManager;
48
+ this.settings = options.settings;
49
+ }
50
+ }
51
+ //# sourceMappingURL=BaseStepExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseStepExecutor.js","sourceRoot":"","sources":["../../../src/execution/BaseStepExecutor.ts"],"names":[],"mappings":"AAQA,yGAAyG;AACzG,MAAM,0BAA0B,GAAG;IACjC,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;CACrB,CAAA;AAED,MAAM,OAAgB,gBAAgB;IAOpC,YAAY,OAA4B;QANxC;;;;;WAAmC;QACnC;;;;;WAA4B;QAE5B;;;;mBAAuB,IAAI;WAAA;QAC3B;;;;mBAAiB,IAAI;WAAA;QAOrB;;;;mBAAiB,CAAC,QAA8B,EAAQ,EAAE;gBACxD,MAAM,mBAAmB,GAAG;oBAC1B,GAAG,0BAA0B;oBAC7B,GAAG,QAAQ;iBACZ,CAAA;gBACD,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,gBAAgB,CAAA;gBAChE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;gBACjE,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAA;YAC1D,CAAC;WAAA;QAZC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAClC,CAAC;CAaF"}
@@ -0,0 +1,299 @@
1
+ import { publicActions } from 'viem';
2
+ import ApiService from '../services/ApiService.js';
3
+ import { ChainsService } from '../services/ChainsService.js';
4
+ import { ConfigService } from '../services/ConfigService.js';
5
+ import { LiFiErrorCode, TransactionError, ValidationError, getMaxPriorityFeePerGas, getTransactionFailedMessage, isZeroAddress, parseError, } from '../utils/index.js';
6
+ import { BaseStepExecutor } from './BaseStepExecutor.js';
7
+ import { checkAllowance } from './checkAllowance.js';
8
+ import { checkBalance } from './checkBalance.js';
9
+ import { updateMultisigRouteProcess } from './multisig.js';
10
+ import { stepComparison } from './stepComparison.js';
11
+ import { switchChain } from './switchChain.js';
12
+ import { getSubstatusMessage } from './utils.js';
13
+ import { waitForReceivingTransaction } from './waitForReceivingTransaction.js';
14
+ export class EVMStepExecutor extends BaseStepExecutor {
15
+ constructor(options) {
16
+ super(options);
17
+ Object.defineProperty(this, "walletClient", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: void 0
22
+ });
23
+ // TODO: add checkChain method and update wallet client inside executors
24
+ // This can come in handy when we execute multiple routes simultaneously and
25
+ // should be sure that we are on the right chain when waiting for transactions.
26
+ Object.defineProperty(this, "checkChain", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: () => {
31
+ throw new Error('checkChain is not implemented.');
32
+ }
33
+ });
34
+ Object.defineProperty(this, "executeStep", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: async (step) => {
39
+ // Make sure that the chain is still correct
40
+ // Find if it's bridging and the step is waiting for a transaction on the receiving chain
41
+ const recievingChainProcess = step.execution?.process.find((process) => process.type === 'RECEIVING_CHAIN');
42
+ // If the step is waiting for a transaction on the receiving chain, we do not switch the chain
43
+ // All changes are already done from the source chain
44
+ // Return the step
45
+ if (recievingChainProcess?.substatus !== 'WAIT_DESTINATION_TRANSACTION' ||
46
+ !recievingChainProcess) {
47
+ const updatedWalletClient = await switchChain(this.walletClient, this.statusManager, step, this.settings.switchChainHook, this.allowUserInteraction);
48
+ if (!updatedWalletClient) {
49
+ // Chain switch was not successful, stop execution here
50
+ return step;
51
+ }
52
+ this.walletClient = updatedWalletClient;
53
+ }
54
+ const client = this.walletClient.extend(publicActions);
55
+ const config = ConfigService.getInstance().getConfig();
56
+ const isMultisigWalletClient = !!config.multisig?.isMultisigWalletClient;
57
+ const multisigBatchTransactions = [];
58
+ const shouldBatchTransactions = config.multisig?.shouldBatchTransactions &&
59
+ !!config.multisig.sendBatchTransaction;
60
+ step.execution = this.statusManager.initExecutionObject(step);
61
+ const chainsService = ChainsService.getInstance();
62
+ const fromChain = await chainsService.getChainById(step.action.fromChainId);
63
+ const toChain = await chainsService.getChainById(step.action.toChainId);
64
+ const isBridgeExecution = fromChain.id !== toChain.id;
65
+ const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
66
+ // STEP 1: Check allowance
67
+ const existingProcess = step.execution.process.find((p) => p.type === currentProcessType);
68
+ // Check token approval only if fromToken is not the native token => no approval needed in that case
69
+ const checkForAllowance = !existingProcess?.txHash &&
70
+ !isZeroAddress(step.action.fromToken.address) &&
71
+ (shouldBatchTransactions || !isMultisigWalletClient);
72
+ if (checkForAllowance) {
73
+ const data = await checkAllowance(client, step, this.statusManager, this.settings, fromChain, this.allowUserInteraction, shouldBatchTransactions);
74
+ if (data) {
75
+ // allowance doesn't need value
76
+ const baseTransaction = {
77
+ to: step.action.fromToken.address,
78
+ data,
79
+ };
80
+ multisigBatchTransactions.push(baseTransaction);
81
+ }
82
+ }
83
+ // STEP 2: Get transaction
84
+ let process = this.statusManager.findOrCreateProcess(step, currentProcessType);
85
+ if (process.status !== 'DONE') {
86
+ const multisigProcess = step.execution.process.find((p) => !!p.multisigTxHash);
87
+ try {
88
+ if (isMultisigWalletClient && multisigProcess) {
89
+ const multisigTxHash = multisigProcess.multisigTxHash;
90
+ if (!multisigTxHash) {
91
+ throw new ValidationError('Multisig internal transaction hash is undefined.');
92
+ }
93
+ await updateMultisigRouteProcess(multisigTxHash, step, this.statusManager, process.type, fromChain);
94
+ }
95
+ let txHash;
96
+ if (process.txHash) {
97
+ // Make sure that the chain is still correct
98
+ const updatedWalletClient = await switchChain(this.walletClient, this.statusManager, step, this.settings.switchChainHook, this.allowUserInteraction);
99
+ if (!updatedWalletClient) {
100
+ // Chain switch was not successful, stop execution here
101
+ return step;
102
+ }
103
+ this.walletClient = updatedWalletClient;
104
+ // Load exiting transaction
105
+ txHash = process.txHash;
106
+ }
107
+ else {
108
+ process = this.statusManager.updateProcess(step, process.type, 'STARTED');
109
+ // Check balance
110
+ await checkBalance(client.account.address, step);
111
+ // Create new transaction
112
+ if (!step.transactionRequest) {
113
+ const updatedStep = await ApiService.getStepTransaction(step);
114
+ const comparedStep = await stepComparison(this.statusManager, step, updatedStep, this.settings, this.allowUserInteraction);
115
+ step = {
116
+ ...comparedStep,
117
+ execution: step.execution,
118
+ };
119
+ }
120
+ if (!step.transactionRequest) {
121
+ throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
122
+ }
123
+ // STEP 3: Send the transaction
124
+ // Make sure that the chain is still correct
125
+ const updatedWalletClient = await switchChain(this.walletClient, this.statusManager, step, this.settings.switchChainHook, this.allowUserInteraction);
126
+ if (!updatedWalletClient) {
127
+ // Chain switch was not successful, stop execution here
128
+ return step;
129
+ }
130
+ this.walletClient = updatedWalletClient;
131
+ process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
132
+ if (!this.allowUserInteraction) {
133
+ return step;
134
+ }
135
+ let transactionRequest = {
136
+ to: step.transactionRequest.to,
137
+ from: step.transactionRequest.from,
138
+ data: step.transactionRequest.data,
139
+ value: step.transactionRequest.value
140
+ ? BigInt(step.transactionRequest.value)
141
+ : undefined,
142
+ gas: step.transactionRequest.gasLimit
143
+ ? BigInt(step.transactionRequest.gasLimit)
144
+ : undefined,
145
+ // gasPrice: step.transactionRequest.gasPrice
146
+ // ? BigInt(step.transactionRequest.gasPrice as string)
147
+ // : undefined,
148
+ // maxFeePerGas: step.transactionRequest.maxFeePerGas
149
+ // ? BigInt(step.transactionRequest.maxFeePerGas as string)
150
+ // : undefined,
151
+ maxPriorityFeePerGas: this.walletClient.account?.type === 'local'
152
+ ? await getMaxPriorityFeePerGas(client)
153
+ : step.transactionRequest.maxPriorityFeePerGas
154
+ ? BigInt(step.transactionRequest.maxPriorityFeePerGas)
155
+ : undefined,
156
+ };
157
+ if (this.settings.updateTransactionRequestHook) {
158
+ const customizedTransactionRequest = await this.settings.updateTransactionRequestHook({
159
+ requestType: 'transaction',
160
+ ...transactionRequest,
161
+ });
162
+ transactionRequest = {
163
+ ...transactionRequest,
164
+ ...customizedTransactionRequest,
165
+ };
166
+ }
167
+ if (shouldBatchTransactions &&
168
+ config.multisig?.sendBatchTransaction) {
169
+ if (transactionRequest.to && transactionRequest.data) {
170
+ const populatedTransaction = {
171
+ value: transactionRequest.value,
172
+ to: transactionRequest.to,
173
+ data: transactionRequest.data,
174
+ };
175
+ multisigBatchTransactions.push(populatedTransaction);
176
+ txHash = await config.multisig?.sendBatchTransaction(multisigBatchTransactions);
177
+ }
178
+ else {
179
+ throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
180
+ }
181
+ }
182
+ else {
183
+ txHash = await this.walletClient.sendTransaction({
184
+ to: transactionRequest.to,
185
+ account: this.walletClient.account,
186
+ data: transactionRequest.data,
187
+ gas: transactionRequest.gas,
188
+ gasPrice: transactionRequest.gasPrice,
189
+ maxFeePerGas: transactionRequest.maxFeePerGas,
190
+ maxPriorityFeePerGas: transactionRequest.maxPriorityFeePerGas,
191
+ chain: null,
192
+ });
193
+ }
194
+ // STEP 4: Wait for the transaction
195
+ if (isMultisigWalletClient) {
196
+ process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED', {
197
+ multisigTxHash: txHash,
198
+ });
199
+ }
200
+ else {
201
+ process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
202
+ txHash: txHash,
203
+ txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${txHash}`,
204
+ });
205
+ }
206
+ }
207
+ let replacementReason;
208
+ const transactionReceipt = await client.waitForTransactionReceipt({
209
+ hash: txHash,
210
+ onReplaced: (response) => {
211
+ replacementReason = response.reason;
212
+ this.statusManager.updateProcess(step, process.type, 'PENDING', {
213
+ txHash: response.transaction.hash,
214
+ txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.hash}`,
215
+ });
216
+ },
217
+ });
218
+ if (replacementReason === 'cancelled') {
219
+ throw new TransactionError(LiFiErrorCode.TransactionCanceled, 'User canceled transaction.');
220
+ }
221
+ // if it's multisig wallet client and the process is in ACTION_REQUIRED
222
+ // then signatures are still needed
223
+ if (isMultisigWalletClient && process.status === 'ACTION_REQUIRED') {
224
+ await updateMultisigRouteProcess(transactionReceipt.transactionHash, step, this.statusManager, process.type, fromChain);
225
+ }
226
+ if (!isMultisigWalletClient) {
227
+ process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
228
+ txHash: transactionReceipt.transactionHash,
229
+ txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${transactionReceipt.transactionHash}`,
230
+ });
231
+ }
232
+ if (isBridgeExecution) {
233
+ process = this.statusManager.updateProcess(step, process.type, 'DONE');
234
+ }
235
+ }
236
+ catch (e) {
237
+ const error = await parseError(e, step, process);
238
+ process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
239
+ error: {
240
+ message: error.message,
241
+ htmlMessage: error.htmlMessage,
242
+ code: error.code,
243
+ },
244
+ });
245
+ this.statusManager.updateExecution(step, 'FAILED');
246
+ throw error;
247
+ }
248
+ }
249
+ // STEP 5: Wait for the receiving chain
250
+ const processTxHash = process.txHash;
251
+ if (isBridgeExecution) {
252
+ process = this.statusManager.findOrCreateProcess(step, 'RECEIVING_CHAIN', 'PENDING');
253
+ }
254
+ let statusResponse;
255
+ try {
256
+ if (!processTxHash) {
257
+ throw new Error('Transaction hash is undefined.');
258
+ }
259
+ statusResponse = (await waitForReceivingTransaction(processTxHash, this.statusManager, process.type, step));
260
+ const statusReceiving = statusResponse.receiving;
261
+ process = this.statusManager.updateProcess(step, process.type, 'DONE', {
262
+ substatus: statusResponse.substatus,
263
+ substatusMessage: statusResponse.substatusMessage ||
264
+ getSubstatusMessage(statusResponse.status, statusResponse.substatus),
265
+ txHash: statusReceiving?.txHash,
266
+ txLink: `${toChain.metamask.blockExplorerUrls[0]}tx/${statusReceiving?.txHash}`,
267
+ });
268
+ this.statusManager.updateExecution(step, 'DONE', {
269
+ fromAmount: statusResponse.sending.amount,
270
+ toAmount: statusReceiving?.amount,
271
+ toToken: statusReceiving?.token,
272
+ gasAmount: statusResponse.sending.gasAmount,
273
+ gasAmountUSD: statusResponse.sending.gasAmountUSD,
274
+ gasPrice: statusResponse.sending.gasPrice,
275
+ gasToken: statusResponse.sending.gasToken,
276
+ gasUsed: statusResponse.sending.gasUsed,
277
+ });
278
+ }
279
+ catch (e) {
280
+ const htmlMessage = await getTransactionFailedMessage(step, process.txLink);
281
+ process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
282
+ error: {
283
+ code: LiFiErrorCode.TransactionFailed,
284
+ message: 'Failed while waiting for receiving chain.',
285
+ htmlMessage,
286
+ },
287
+ });
288
+ this.statusManager.updateExecution(step, 'FAILED');
289
+ console.warn(e);
290
+ throw e;
291
+ }
292
+ // DONE
293
+ return step;
294
+ }
295
+ });
296
+ this.walletClient = options.walletClient;
297
+ }
298
+ }
299
+ //# sourceMappingURL=EVMStepExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EVMStepExecutor.js","sourceRoot":"","sources":["../../../src/execution/EVMStepExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,268 @@
1
+ import { ConfigService } from '../services/ConfigService.js';
2
+ import { ValidationError } from '../utils/errors.js';
3
+ import { StatusManager } from './StatusManager.js';
4
+ import { prepareRestart } from './prepareRestart.js';
5
+ export class RouteExecutionManager {
6
+ constructor(options) {
7
+ Object.defineProperty(this, "executionDictionary", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: {}
12
+ });
13
+ Object.defineProperty(this, "executionPromiseDictionary", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: {}
18
+ });
19
+ Object.defineProperty(this, "configService", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: void 0
24
+ });
25
+ Object.defineProperty(this, "providers", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: void 0
30
+ });
31
+ /**
32
+ * Execute a route.
33
+ * @param route - The route that should be executed. Cannot be an active route.
34
+ * @param settings - An object containing settings and callbacks.
35
+ * @returns The executed route.
36
+ * @throws {LiFiError} Throws a LiFiError if the execution fails.
37
+ */
38
+ Object.defineProperty(this, "executeRoute", {
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true,
42
+ value: async (route, settings) => {
43
+ // Deep clone to prevent side effects
44
+ const clonedRoute = structuredClone(route);
45
+ let executionPromise = this.executionPromiseDictionary[clonedRoute.id];
46
+ // Check if route is already running
47
+ if (executionPromise) {
48
+ return executionPromise;
49
+ }
50
+ executionPromise = this.executeSteps(clonedRoute, settings);
51
+ this.executionPromiseDictionary[clonedRoute.id] = executionPromise;
52
+ return executionPromise;
53
+ }
54
+ });
55
+ /**
56
+ * Resume the execution of a route that has been stopped or had an error while executing.
57
+ * @param route - The route that is to be executed. Cannot be an active route.
58
+ * @param settings - An object containing settings and callbacks.
59
+ * @returns The executed route.
60
+ * @throws {LiFiError} Throws a LiFiError if the execution fails.
61
+ */
62
+ Object.defineProperty(this, "resumeRoute", {
63
+ enumerable: true,
64
+ configurable: true,
65
+ writable: true,
66
+ value: async (route, settings) => {
67
+ // Deep clone to prevent side effects
68
+ const clonedRoute = structuredClone(route);
69
+ const execution = this.executionDictionary[clonedRoute.id];
70
+ if (execution) {
71
+ const executionHalted = execution.executors.some((executor) => !executor.allowExecution);
72
+ if (!executionHalted) {
73
+ // Check if we want to resume route execution in the background
74
+ this.updateRouteExecution(route, {
75
+ executeInBackground: settings?.executeInBackground,
76
+ });
77
+ const executionPromise = this.executionPromiseDictionary[clonedRoute.id];
78
+ return executionPromise ?? clonedRoute;
79
+ }
80
+ }
81
+ await prepareRestart(clonedRoute);
82
+ const executionPromise = this.executeSteps(clonedRoute, settings);
83
+ this.executionPromiseDictionary[clonedRoute.id] = executionPromise;
84
+ return executionPromise;
85
+ }
86
+ });
87
+ Object.defineProperty(this, "executeSteps", {
88
+ enumerable: true,
89
+ configurable: true,
90
+ writable: true,
91
+ value: async (route, settings) => {
92
+ const config = this.configService.getConfig();
93
+ const execution = {
94
+ route,
95
+ executors: [],
96
+ settings: { ...config.defaultExecutionSettings, ...settings },
97
+ };
98
+ this.executionDictionary[route.id] = execution;
99
+ const statusManager = new StatusManager(route, execution.settings, (route) => {
100
+ if (this.executionDictionary[route.id]) {
101
+ execution.route = route;
102
+ }
103
+ });
104
+ // Loop over steps and execute them
105
+ for (let index = 0; index < route.steps.length; index++) {
106
+ const execution = this.executionDictionary[route.id];
107
+ // Check if execution has stopped in the meantime
108
+ if (!execution) {
109
+ break;
110
+ }
111
+ const step = route.steps[index];
112
+ const previousStep = route.steps[index - 1];
113
+ // Check if the step is already done
114
+ //
115
+ if (step.execution?.status === 'DONE') {
116
+ continue;
117
+ }
118
+ // Update amount using output of previous execution. In the future this should be handled by calling `updateRoute`
119
+ if (previousStep?.execution?.toAmount) {
120
+ step.action.fromAmount = previousStep.execution.toAmount;
121
+ }
122
+ try {
123
+ const provider = this.providers?.find((provider) => provider.isProviderStep(step));
124
+ if (!provider) {
125
+ throw new Error('SDK Execution Provider not found.');
126
+ }
127
+ const stepExecutor = await provider.getStepExecutor({
128
+ statusManager,
129
+ settings: execution.settings,
130
+ });
131
+ execution.executors.push(stepExecutor);
132
+ // Check if we want to execute this step in the background
133
+ this.updateRouteExecution(route, execution.settings);
134
+ const executedStep = await stepExecutor.executeStep(step);
135
+ // We may reach this point if user interaction isn't allowed. We want to stop execution until we resume it
136
+ if (executedStep.execution?.status !== 'DONE') {
137
+ this.stopExecution(route);
138
+ }
139
+ // Execution stopped during the current step, we don't want to continue to the next step so we return already
140
+ if (stepExecutor.allowExecution) {
141
+ return route;
142
+ }
143
+ }
144
+ catch (e) {
145
+ this.stopExecution(route);
146
+ throw e;
147
+ }
148
+ }
149
+ // Clean up after the execution
150
+ delete this.executionDictionary[route.id];
151
+ return route;
152
+ }
153
+ });
154
+ /**
155
+ * Updates route execution to background or foreground state.
156
+ * @param route - A route that is currently in execution.
157
+ * @param settings - An object with execution settings.
158
+ */
159
+ Object.defineProperty(this, "updateRouteExecution", {
160
+ enumerable: true,
161
+ configurable: true,
162
+ writable: true,
163
+ value: (route, settings) => {
164
+ const execution = this.executionDictionary[route.id];
165
+ if (!execution) {
166
+ return;
167
+ }
168
+ for (const executor of execution.executors) {
169
+ executor.setInteraction({
170
+ allowInteraction: !settings.executeInBackground,
171
+ allowUpdates: true,
172
+ });
173
+ }
174
+ // Update active route settings so we know what the current state of execution is
175
+ execution.settings = {
176
+ ...execution.settings,
177
+ ...settings,
178
+ };
179
+ }
180
+ });
181
+ /**
182
+ * Update the ExecutionSettings for an active route.
183
+ * @param settings - An object with execution settings.
184
+ * @param route - The active route that gets the new execution settings.
185
+ * @throws {ValidationError} Throws a ValidationError if parameters are invalid.
186
+ */
187
+ Object.defineProperty(this, "updateExecutionSettings", {
188
+ enumerable: true,
189
+ configurable: true,
190
+ writable: true,
191
+ value: (settings, route) => {
192
+ const execution = this.executionDictionary[route.id];
193
+ if (!execution) {
194
+ throw new ValidationError("Can't set ExecutionSettings for the inactive route.");
195
+ }
196
+ const config = this.configService.getConfig();
197
+ execution.settings = {
198
+ ...config.defaultExecutionSettings,
199
+ ...settings,
200
+ };
201
+ }
202
+ });
203
+ /**
204
+ * Stops the execution of an active route.
205
+ * @param route - A route that is currently in execution.
206
+ * @returns The stopped route.
207
+ */
208
+ Object.defineProperty(this, "stopExecution", {
209
+ enumerable: true,
210
+ configurable: true,
211
+ writable: true,
212
+ value: (route) => {
213
+ const execution = this.executionDictionary[route.id];
214
+ if (!execution) {
215
+ return route;
216
+ }
217
+ for (const executor of execution.executors) {
218
+ executor.setInteraction({
219
+ allowInteraction: false,
220
+ allowUpdates: false,
221
+ allowExecution: false,
222
+ });
223
+ }
224
+ delete this.executionDictionary[route.id];
225
+ return route;
226
+ }
227
+ });
228
+ /**
229
+ * Get the list of active routes.
230
+ * @returns A list of routes.
231
+ */
232
+ Object.defineProperty(this, "getActiveRoutes", {
233
+ enumerable: true,
234
+ configurable: true,
235
+ writable: true,
236
+ value: () => {
237
+ return Object.values(this.executionDictionary)
238
+ .map((dict) => dict?.route)
239
+ .filter(Boolean);
240
+ }
241
+ });
242
+ /**
243
+ * Return the current route information for given route. The route has to be active.
244
+ * @param route - A route object.
245
+ * @returns The updated route.
246
+ */
247
+ Object.defineProperty(this, "getActiveRoute", {
248
+ enumerable: true,
249
+ configurable: true,
250
+ writable: true,
251
+ value: (route) => {
252
+ return this.executionDictionary[route.id]?.route;
253
+ }
254
+ });
255
+ Object.defineProperty(this, "getProvider", {
256
+ enumerable: true,
257
+ configurable: true,
258
+ writable: true,
259
+ value: (type) => {
260
+ return this.providers?.find((provider) => provider.type === type);
261
+ }
262
+ });
263
+ this.configService = ConfigService.getInstance();
264
+ this.configService.updateConfig(options);
265
+ this.providers = options.providers;
266
+ }
267
+ }
268
+ //# sourceMappingURL=RouteExecutionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteExecutionManager.js","sourceRoot":"","sources":["../../../src/execution/RouteExecutionManager.ts"],"names":[],"mappings":"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"}