@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,216 @@
1
+ import { emptyExecution } from '@lifi/types';
2
+ import { getProcessMessage } from './utils.js';
3
+ /**
4
+ * Manages status updates of a route and provides various functions for tracking processes
5
+ * @param {Route} route The route this StatusManger belongs to.
6
+ * @param {InternalExecutionSettings} settings The ExecutionSettings for this route.
7
+ * @param {InternalUpdateRouteCallback} internalUpdateRouteCallback Internal callback to propage route changes.
8
+ * @returns {StatusManager} An instance of StatusManager.
9
+ */
10
+ export class StatusManager {
11
+ constructor(route, settings, internalUpdateRouteCallback) {
12
+ Object.defineProperty(this, "route", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: void 0
17
+ });
18
+ Object.defineProperty(this, "settings", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: void 0
23
+ });
24
+ Object.defineProperty(this, "internalUpdateRouteCallback", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: void 0
29
+ });
30
+ Object.defineProperty(this, "shouldUpdate", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: true
35
+ });
36
+ /**
37
+ * Initializes the execution object of a Step.
38
+ * @param step The current step in execution
39
+ * @returns The initialized execution object for this step and a function to update this step
40
+ */
41
+ Object.defineProperty(this, "initExecutionObject", {
42
+ enumerable: true,
43
+ configurable: true,
44
+ writable: true,
45
+ value: (step) => {
46
+ const currentExecution = step.execution || structuredClone(emptyExecution);
47
+ if (!step.execution) {
48
+ step.execution = currentExecution;
49
+ step.execution.status = 'PENDING';
50
+ this.updateStepInRoute(step);
51
+ }
52
+ // Change status to PENDING after resuming from FAILED
53
+ if (currentExecution.status === 'FAILED') {
54
+ currentExecution.status = 'PENDING';
55
+ this.updateStepInRoute(step);
56
+ }
57
+ return currentExecution;
58
+ }
59
+ });
60
+ /**
61
+ * Create and push a new process into the execution.
62
+ * @param step The step that should contain the new process.
63
+ * @param type Type of the process. Used to identify already existing processes.
64
+ * @param status By default created procces is set to the STARTED status. We can override new process with the needed status.
65
+ * @returns Returns process.
66
+ */
67
+ Object.defineProperty(this, "findOrCreateProcess", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: (step, type, status) => {
72
+ if (!step.execution?.process) {
73
+ throw new Error("Execution hasn't been initialized.");
74
+ }
75
+ const process = step.execution.process.find((p) => p.type === type);
76
+ if (process) {
77
+ if (status && process.status !== status) {
78
+ process.status = status;
79
+ this.updateStepInRoute(step);
80
+ }
81
+ return process;
82
+ }
83
+ const newProcess = {
84
+ type: type,
85
+ startedAt: Date.now(),
86
+ message: getProcessMessage(type, status ?? 'STARTED'),
87
+ status: status ?? 'STARTED',
88
+ };
89
+ step.execution.process.push(newProcess);
90
+ this.updateStepInRoute(step);
91
+ return newProcess;
92
+ }
93
+ });
94
+ /**
95
+ * Update a process object.
96
+ * @param step The step where the process should be updated
97
+ * @param type The process type to update
98
+ * @param status The status the process gets.
99
+ * @param [params] Additional parameters to append to the process.
100
+ * @returns The update process
101
+ */
102
+ Object.defineProperty(this, "updateProcess", {
103
+ enumerable: true,
104
+ configurable: true,
105
+ writable: true,
106
+ value: (step, type, status, params) => {
107
+ if (!step.execution) {
108
+ throw new Error("Can't update an empty step execution.");
109
+ }
110
+ const currentProcess = step?.execution?.process.find((p) => p.type === type);
111
+ if (!currentProcess) {
112
+ throw new Error("Can't find a process for the given type.");
113
+ }
114
+ switch (status) {
115
+ case 'CANCELLED':
116
+ currentProcess.doneAt = Date.now();
117
+ break;
118
+ case 'FAILED':
119
+ currentProcess.doneAt = Date.now();
120
+ step.execution.status = 'FAILED';
121
+ break;
122
+ case 'DONE':
123
+ currentProcess.doneAt = Date.now();
124
+ break;
125
+ case 'PENDING':
126
+ step.execution.status = 'PENDING';
127
+ break;
128
+ case 'ACTION_REQUIRED':
129
+ step.execution.status = 'ACTION_REQUIRED';
130
+ break;
131
+ default:
132
+ break;
133
+ }
134
+ currentProcess.status = status;
135
+ currentProcess.message = getProcessMessage(type, status);
136
+ // set extra parameters or overwritte the standard params set in the switch statement
137
+ if (params) {
138
+ for (const [key, value] of Object.entries(params)) {
139
+ currentProcess[key] = value;
140
+ }
141
+ }
142
+ // Sort processes, the ones with DONE status go first
143
+ step.execution.process = [
144
+ ...step?.execution?.process.filter((process) => process.status === 'DONE'),
145
+ ...step?.execution?.process.filter((process) => process.status !== 'DONE'),
146
+ ];
147
+ this.updateStepInRoute(step); // updates the step in the route
148
+ return currentProcess;
149
+ }
150
+ });
151
+ /**
152
+ * Remove a process from the execution
153
+ * @param step The step where the process should be removed from
154
+ * @param type The process type to remove
155
+ */
156
+ Object.defineProperty(this, "removeProcess", {
157
+ enumerable: true,
158
+ configurable: true,
159
+ writable: true,
160
+ value: (step, type) => {
161
+ if (!step.execution) {
162
+ throw new Error("Execution hasn't been initialized.");
163
+ }
164
+ const index = step.execution.process.findIndex((p) => p.type === type);
165
+ step.execution.process.splice(index, 1);
166
+ this.updateStepInRoute(step);
167
+ }
168
+ });
169
+ Object.defineProperty(this, "updateStepInRoute", {
170
+ enumerable: true,
171
+ configurable: true,
172
+ writable: true,
173
+ value: (step) => {
174
+ if (!this.shouldUpdate) {
175
+ return step;
176
+ }
177
+ const stepIndex = this.route.steps.findIndex((routeStep) => routeStep.id === step.id);
178
+ if (stepIndex === -1) {
179
+ throw new Error("Couldn't find a step to update.");
180
+ }
181
+ this.route.steps[stepIndex] = Object.assign(this.route.steps[stepIndex], step);
182
+ this.settings.updateRouteHook(this.route);
183
+ this.internalUpdateRouteCallback(this.route);
184
+ return this.route.steps[stepIndex];
185
+ }
186
+ });
187
+ this.route = route;
188
+ this.settings = settings;
189
+ this.internalUpdateRouteCallback = internalUpdateRouteCallback;
190
+ }
191
+ /**
192
+ * Updates the execution object of a Step.
193
+ * @param step The current step in execution
194
+ * @param status The status for the execution
195
+ * @param receipt Optional. Information about received tokens
196
+ * @returns The step with the updated execution object
197
+ */
198
+ updateExecution(step, status, receipt) {
199
+ if (!step.execution) {
200
+ throw Error("Can't update empty execution.");
201
+ }
202
+ step.execution.status = status;
203
+ if (receipt) {
204
+ step.execution = {
205
+ ...step.execution,
206
+ ...receipt,
207
+ };
208
+ }
209
+ this.updateStepInRoute(step);
210
+ return step;
211
+ }
212
+ allowUpdates(value) {
213
+ this.shouldUpdate = value;
214
+ }
215
+ }
216
+ //# sourceMappingURL=StatusManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusManager.js","sourceRoot":"","sources":["../../../src/execution/StatusManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,280 @@
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, } from '../utils/index.js';
6
+ import { getTransactionFailedMessage, parseError } from '../utils/parseError.js';
7
+ import { isZeroAddress } from '../utils/utils.js';
8
+ import { checkAllowance } from './checkAllowance.js';
9
+ import { checkBalance } from './checkBalance.js';
10
+ import { updateMultisigRouteProcess } from './multisig.js';
11
+ import { stepComparison } from './stepComparison.js';
12
+ import { switchChain } from './switchChain.js';
13
+ import { getSubstatusMessage } from './utils.js';
14
+ import { waitForReceivingTransaction } from './waitForReceivingTransaction.js';
15
+ export class StepExecutionManager {
16
+ constructor() {
17
+ Object.defineProperty(this, "allowUserInteraction", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: true
22
+ });
23
+ Object.defineProperty(this, "allowInteraction", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: (value) => {
28
+ this.allowUserInteraction = value;
29
+ }
30
+ });
31
+ Object.defineProperty(this, "execute", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: async ({ walletClient, step, statusManager, settings, }) => {
36
+ const client = walletClient.extend(publicActions);
37
+ const config = ConfigService.getInstance().getConfig();
38
+ const isMultisigWalletClient = !!config.multisig?.isMultisigWalletClient;
39
+ const multisigBatchTransactions = [];
40
+ const shouldBatchTransactions = config.multisig?.shouldBatchTransactions &&
41
+ !!config.multisig.sendBatchTransaction;
42
+ step.execution = statusManager.initExecutionObject(step);
43
+ const chainsService = ChainsService.getInstance();
44
+ const fromChain = await chainsService.getChainById(step.action.fromChainId);
45
+ const toChain = await chainsService.getChainById(step.action.toChainId);
46
+ const isBridgeExecution = fromChain.id !== toChain.id;
47
+ const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
48
+ // STEP 1: Check allowance
49
+ const existingProcess = step.execution.process.find((p) => p.type === currentProcessType);
50
+ // Check token approval only if fromToken is not the native token => no approval needed in that case
51
+ const checkForAllowance = !existingProcess?.txHash &&
52
+ !isZeroAddress(step.action.fromToken.address) &&
53
+ (shouldBatchTransactions || !isMultisigWalletClient);
54
+ if (checkForAllowance) {
55
+ const data = await checkAllowance(client, step, statusManager, settings, fromChain, this.allowUserInteraction, shouldBatchTransactions);
56
+ if (data) {
57
+ // allowance doesn't need value
58
+ const baseTransaction = {
59
+ to: step.action.fromToken.address,
60
+ data,
61
+ };
62
+ multisigBatchTransactions.push(baseTransaction);
63
+ }
64
+ }
65
+ // STEP 2: Get transaction
66
+ let process = statusManager.findOrCreateProcess(step, currentProcessType);
67
+ if (process.status !== 'DONE') {
68
+ const multisigProcess = step.execution.process.find((p) => !!p.multisigTxHash);
69
+ try {
70
+ if (isMultisigWalletClient && multisigProcess) {
71
+ const multisigTxHash = multisigProcess.multisigTxHash;
72
+ if (!multisigTxHash) {
73
+ throw new ValidationError('Multisig internal transaction hash is undefined.');
74
+ }
75
+ await updateMultisigRouteProcess(multisigTxHash, step, statusManager, process.type, fromChain);
76
+ }
77
+ let txHash;
78
+ if (process.txHash) {
79
+ // Make sure that the chain is still correct
80
+ const updatedWalletClient = await switchChain(walletClient, statusManager, step, settings.switchChainHook, this.allowUserInteraction);
81
+ if (!updatedWalletClient) {
82
+ // Chain switch was not successful, stop execution here
83
+ return step;
84
+ }
85
+ walletClient = updatedWalletClient;
86
+ // Load exiting transaction
87
+ txHash = process.txHash;
88
+ }
89
+ else {
90
+ process = statusManager.updateProcess(step, process.type, 'STARTED');
91
+ // Check balance
92
+ await checkBalance(client.account.address, step);
93
+ // Create new transaction
94
+ if (!step.transactionRequest) {
95
+ const updatedStep = await ApiService.getStepTransaction(step);
96
+ const comparedStep = await stepComparison(statusManager, step, updatedStep, settings, this.allowUserInteraction);
97
+ step = {
98
+ ...comparedStep,
99
+ execution: step.execution,
100
+ };
101
+ }
102
+ if (!step.transactionRequest) {
103
+ throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
104
+ }
105
+ // STEP 3: Send the transaction
106
+ // Make sure that the chain is still correct
107
+ const updatedWalletClient = await switchChain(walletClient, statusManager, step, settings.switchChainHook, this.allowUserInteraction);
108
+ if (!updatedWalletClient) {
109
+ // Chain switch was not successful, stop execution here
110
+ return step;
111
+ }
112
+ walletClient = updatedWalletClient;
113
+ process = statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
114
+ if (!this.allowUserInteraction) {
115
+ return step;
116
+ }
117
+ let transactionRequest = {
118
+ to: step.transactionRequest.to,
119
+ from: step.transactionRequest.from,
120
+ data: step.transactionRequest.data,
121
+ value: step.transactionRequest.value
122
+ ? BigInt(step.transactionRequest.value)
123
+ : undefined,
124
+ gas: step.transactionRequest.gasLimit
125
+ ? BigInt(step.transactionRequest.gasLimit)
126
+ : undefined,
127
+ // gasPrice: step.transactionRequest.gasPrice
128
+ // ? BigInt(step.transactionRequest.gasPrice as string)
129
+ // : undefined,
130
+ // maxFeePerGas: step.transactionRequest.maxFeePerGas
131
+ // ? BigInt(step.transactionRequest.maxFeePerGas as string)
132
+ // : undefined,
133
+ maxPriorityFeePerGas: walletClient.account?.type === 'local'
134
+ ? await getMaxPriorityFeePerGas(client)
135
+ : step.transactionRequest.maxPriorityFeePerGas
136
+ ? BigInt(step.transactionRequest.maxPriorityFeePerGas)
137
+ : undefined,
138
+ };
139
+ if (settings.updateTransactionRequestHook) {
140
+ const customizedTransactionRequest = await settings.updateTransactionRequestHook({
141
+ requestType: 'transaction',
142
+ ...transactionRequest,
143
+ });
144
+ transactionRequest = {
145
+ ...transactionRequest,
146
+ ...customizedTransactionRequest,
147
+ };
148
+ }
149
+ if (shouldBatchTransactions &&
150
+ config.multisig?.sendBatchTransaction) {
151
+ if (transactionRequest.to && transactionRequest.data) {
152
+ const populatedTransaction = {
153
+ value: transactionRequest.value,
154
+ to: transactionRequest.to,
155
+ data: transactionRequest.data,
156
+ };
157
+ multisigBatchTransactions.push(populatedTransaction);
158
+ txHash = await config.multisig?.sendBatchTransaction(multisigBatchTransactions);
159
+ }
160
+ else {
161
+ throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
162
+ }
163
+ }
164
+ else {
165
+ txHash = await walletClient.sendTransaction({
166
+ to: transactionRequest.to,
167
+ account: walletClient.account,
168
+ data: transactionRequest.data,
169
+ gas: transactionRequest.gas,
170
+ gasPrice: transactionRequest.gasPrice,
171
+ maxFeePerGas: transactionRequest.maxFeePerGas,
172
+ maxPriorityFeePerGas: transactionRequest.maxPriorityFeePerGas,
173
+ chain: null,
174
+ });
175
+ }
176
+ // STEP 4: Wait for the transaction
177
+ if (isMultisigWalletClient) {
178
+ process = statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED', {
179
+ multisigTxHash: txHash,
180
+ });
181
+ }
182
+ else {
183
+ process = statusManager.updateProcess(step, process.type, 'PENDING', {
184
+ txHash: txHash,
185
+ txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${txHash}`,
186
+ });
187
+ }
188
+ }
189
+ let replacementReason;
190
+ const transactionReceipt = await client.waitForTransactionReceipt({
191
+ hash: txHash,
192
+ onReplaced(response) {
193
+ replacementReason = response.reason;
194
+ statusManager.updateProcess(step, process.type, 'PENDING', {
195
+ txHash: response.transaction.hash,
196
+ txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.hash}`,
197
+ });
198
+ },
199
+ });
200
+ if (replacementReason === 'cancelled') {
201
+ throw new TransactionError(LiFiErrorCode.TransactionCanceled, 'User canceled transaction.');
202
+ }
203
+ // if it's multisig wallet client and the process is in ACTION_REQUIRED
204
+ // then signatures are still needed
205
+ if (isMultisigWalletClient && process.status === 'ACTION_REQUIRED') {
206
+ await updateMultisigRouteProcess(transactionReceipt.transactionHash, step, statusManager, process.type, fromChain);
207
+ }
208
+ if (!isMultisigWalletClient) {
209
+ process = statusManager.updateProcess(step, process.type, 'PENDING', {
210
+ txHash: transactionReceipt.transactionHash,
211
+ txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${transactionReceipt.transactionHash}`,
212
+ });
213
+ }
214
+ if (isBridgeExecution) {
215
+ process = statusManager.updateProcess(step, process.type, 'DONE');
216
+ }
217
+ }
218
+ catch (e) {
219
+ const error = await parseError(e, step, process);
220
+ process = statusManager.updateProcess(step, process.type, 'FAILED', {
221
+ error: {
222
+ message: error.message,
223
+ htmlMessage: error.htmlMessage,
224
+ code: error.code,
225
+ },
226
+ });
227
+ statusManager.updateExecution(step, 'FAILED');
228
+ throw error;
229
+ }
230
+ }
231
+ // STEP 5: Wait for the receiving chain
232
+ const processTxHash = process.txHash;
233
+ if (isBridgeExecution) {
234
+ process = statusManager.findOrCreateProcess(step, 'RECEIVING_CHAIN', 'PENDING');
235
+ }
236
+ let statusResponse;
237
+ try {
238
+ if (!processTxHash) {
239
+ throw new Error('Transaction hash is undefined.');
240
+ }
241
+ statusResponse = (await waitForReceivingTransaction(processTxHash, statusManager, process.type, step));
242
+ const statusReceiving = statusResponse.receiving;
243
+ process = statusManager.updateProcess(step, process.type, 'DONE', {
244
+ substatus: statusResponse.substatus,
245
+ substatusMessage: statusResponse.substatusMessage ||
246
+ getSubstatusMessage(statusResponse.status, statusResponse.substatus),
247
+ txHash: statusReceiving?.txHash,
248
+ txLink: `${toChain.metamask.blockExplorerUrls[0]}tx/${statusReceiving?.txHash}`,
249
+ });
250
+ statusManager.updateExecution(step, 'DONE', {
251
+ fromAmount: statusResponse.sending.amount,
252
+ toAmount: statusReceiving?.amount,
253
+ toToken: statusReceiving?.token,
254
+ gasAmount: statusResponse.sending.gasAmount,
255
+ gasAmountUSD: statusResponse.sending.gasAmountUSD,
256
+ gasPrice: statusResponse.sending.gasPrice,
257
+ gasToken: statusResponse.sending.gasToken,
258
+ gasUsed: statusResponse.sending.gasUsed,
259
+ });
260
+ }
261
+ catch (e) {
262
+ const htmlMessage = await getTransactionFailedMessage(step, process.txLink);
263
+ process = statusManager.updateProcess(step, process.type, 'FAILED', {
264
+ error: {
265
+ code: LiFiErrorCode.TransactionFailed,
266
+ message: 'Failed while waiting for receiving chain.',
267
+ htmlMessage,
268
+ },
269
+ });
270
+ statusManager.updateExecution(step, 'FAILED');
271
+ console.warn(e);
272
+ throw e;
273
+ }
274
+ // DONE
275
+ return step;
276
+ }
277
+ });
278
+ }
279
+ }
280
+ //# sourceMappingURL=StepExecutionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepExecutionManager.js","sourceRoot":"","sources":["../../../src/execution/StepExecutionManager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { maxUint256, publicActions } from 'viem';
2
- import { getAllowance, setAllowance } from '../allowance';
3
- import { LiFiErrorCode, TransactionError } from '../utils';
4
- import { parseError } from '../utils/parseError';
2
+ import { getAllowance, setAllowance } from '../allowance/index.js';
3
+ import { LiFiErrorCode, TransactionError } from '../utils/index.js';
4
+ import { parseError } from '../utils/parseError.js';
5
5
  export const checkAllowance = async (walletClient, step, statusManager, settings, chain, allowUserInteraction = false, shouldBatchTransactions = false) => {
6
6
  // Ask the user to set an allowance
7
7
  let allowanceProcess = statusManager.findOrCreateProcess(step, 'TOKEN_ALLOWANCE');
@@ -21,7 +21,7 @@ export const checkAllowance = async (walletClient, step, statusManager, settings
21
21
  ? maxUint256
22
22
  : fromAmount;
23
23
  if (shouldBatchTransactions) {
24
- const approveTxHash = await setAllowance(walletClient, step.action.fromToken.address, step.estimate.approvalAddress, approvalAmount, true);
24
+ const approveTxHash = await setAllowance(walletClient, step.action.fromToken.address, step.estimate.approvalAddress, approvalAmount, settings, true);
25
25
  allowanceProcess = statusManager.updateProcess(step, allowanceProcess.type, 'DONE');
26
26
  return approveTxHash;
27
27
  }
@@ -71,3 +71,4 @@ const waitForApprovalTransaction = async (walletClient, txHash, processType, ste
71
71
  txLink: `${chain.metamask.blockExplorerUrls[0]}tx/${transactionReceipt.transactionHash}`,
72
72
  });
73
73
  };
74
+ //# sourceMappingURL=checkAllowance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkAllowance.js","sourceRoot":"","sources":["../../../src/execution/checkAllowance.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 '../balance/index.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/execution/checkBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,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,3 @@
1
+ export * from './StatusManager.js';
2
+ export * from './types.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/execution/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA"}
@@ -1,5 +1,5 @@
1
- import ConfigService from '../services/ConfigService';
2
- import { LiFiErrorCode, TransactionError } from '../utils/errors';
1
+ import { ConfigService } from '../services/ConfigService.js';
2
+ import { LiFiErrorCode, TransactionError } from '../utils/errors.js';
3
3
  export const updateMultisigRouteProcess = async (internalTxHash, step, statusManager, processType, fromChain) => {
4
4
  const config = ConfigService.getInstance().getConfig();
5
5
  if (!config.multisig?.getMultisigTransactionDetails) {
@@ -23,3 +23,4 @@ export const updateMultisigRouteProcess = async (internalTxHash, step, statusMan
23
23
  throw new TransactionError(LiFiErrorCode.SignatureRejected, 'Transaction was rejected by user.');
24
24
  }
25
25
  };
26
+ //# sourceMappingURL=multisig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multisig.js","sourceRoot":"","sources":["../../../src/execution/multisig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAIpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,cAAoB,EACpB,IAAc,EACd,aAA4B,EAC5B,WAAwB,EACxB,SAAwB,EACxB,EAAE;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAA;IAEtD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,6BAA6B,EAAE;QACnD,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAA;KACF;IAED,MAAM,gCAAgC,GAAG,GAAG,EAAE;QAC5C,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;IAC3D,CAAC,CAAA;IAED,MAAM,sBAAsB,GAC1B,MAAM,MAAM,CAAC,QAAQ,EAAE,6BAA6B,CAClD,cAAc,EACd,SAAS,CAAC,EAAE,EACZ,gCAAgC,CACjC,CAAA;IAEH,IAAI,sBAAsB,CAAC,MAAM,KAAK,MAAM,EAAE;QAC5C,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;YACxD,MAAM,EAAE,sBAAsB,CAAC,MAAM;YACrC,cAAc,EAAE,SAAS;YACzB,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,sBAAsB,CAAC,MAAM,EAAE;SACxF,CAAC,CAAA;KACH;IAED,IAAI,sBAAsB,CAAC,MAAM,KAAK,QAAQ,EAAE;QAC9C,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,iBAAiB,EAC/B,8BAA8B,CAC/B,CAAA;KACF;IAED,IAAI,sBAAsB,CAAC,MAAM,KAAK,WAAW,EAAE;QACjD,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,iBAAiB,EAC/B,mCAAmC,CACpC,CAAA;KACF;AACH,CAAC,CAAA"}