@lifi/sdk 2.3.1 → 3.0.0-alpha.10

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 (379) hide show
  1. package/dist/cjs/LiFi.js +222 -250
  2. package/dist/cjs/LiFi.js.map +1 -0
  3. package/dist/cjs/allowance/getAllowance.js +82 -0
  4. package/dist/cjs/allowance/getAllowance.js.map +1 -0
  5. package/dist/cjs/allowance/index.js +5 -16
  6. package/dist/cjs/allowance/index.js.map +1 -0
  7. package/dist/cjs/allowance/setAllowance.js +71 -0
  8. package/dist/cjs/allowance/setAllowance.js.map +1 -0
  9. package/dist/cjs/{types/internal.types.js → allowance/types.js} +1 -0
  10. package/dist/cjs/allowance/types.js.map +1 -0
  11. package/dist/cjs/balance/getBalance.js +97 -0
  12. package/dist/cjs/balance/getBalance.js.map +1 -0
  13. package/dist/cjs/balance/getTokenBalance.js +7 -10
  14. package/dist/cjs/balance/getTokenBalance.js.map +1 -0
  15. package/dist/cjs/balance/index.js +4 -24
  16. package/dist/cjs/balance/index.js.map +1 -0
  17. package/dist/cjs/connectors.js +28 -48
  18. package/dist/cjs/connectors.js.map +1 -0
  19. package/dist/cjs/constants.js +7 -0
  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 -197
  26. package/dist/cjs/execution/RouteExecutionManager.js.map +1 -0
  27. package/dist/cjs/execution/StatusManager.js +142 -136
  28. package/dist/cjs/execution/StatusManager.js.map +1 -0
  29. package/dist/cjs/execution/StepExecutionManager.js +220 -233
  30. package/dist/cjs/execution/StepExecutionManager.js.map +1 -0
  31. package/dist/cjs/execution/checkAllowance.js +76 -0
  32. package/dist/cjs/execution/checkAllowance.js.map +1 -0
  33. package/dist/cjs/execution/checkBalance.js +42 -0
  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 +13 -17
  38. package/dist/cjs/execution/multisig.js.map +1 -0
  39. package/dist/cjs/execution/prepareRestart.js +23 -0
  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 +10 -22
  44. package/dist/cjs/execution/switchChain.js.map +1 -0
  45. package/dist/cjs/execution/types.js +3 -0
  46. package/dist/cjs/execution/types.js.map +1 -0
  47. package/dist/cjs/execution/utils.js +12 -67
  48. package/dist/cjs/execution/utils.js.map +1 -0
  49. package/dist/cjs/execution/waitForReceivingTransaction.js +56 -0
  50. package/dist/cjs/execution/waitForReceivingTransaction.js.map +1 -0
  51. package/dist/cjs/helpers.js +12 -58
  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 +10 -13
  65. package/dist/cjs/request.js.map +1 -0
  66. package/dist/cjs/services/ApiService.js +70 -86
  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 -67
  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 +46 -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 +63 -40
  81. package/dist/cjs/utils/errors.js.map +1 -0
  82. package/dist/cjs/utils/getMaxPriorityFeePerGas.js +23 -0
  83. package/dist/cjs/utils/getMaxPriorityFeePerGas.js.map +1 -0
  84. package/dist/cjs/utils/index.js +9 -0
  85. package/dist/cjs/utils/index.js.map +1 -0
  86. package/dist/cjs/utils/median.js +16 -0
  87. package/dist/cjs/utils/median.js.map +1 -0
  88. package/dist/cjs/utils/parseError.js +55 -92
  89. package/dist/cjs/utils/parseError.js.map +1 -0
  90. package/dist/cjs/utils/utils.js +10 -85
  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/esm/allowance/getAllowance.js +79 -0
  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/esm/allowance/setAllowance.js +67 -0
  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/esm/balance/getBalance.js +93 -0
  105. package/dist/esm/balance/getBalance.js.map +1 -0
  106. package/dist/{balance → esm/balance}/getTokenBalance.js +5 -4
  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/esm/connectors.js +42 -0
  111. package/dist/esm/connectors.js.map +1 -0
  112. package/dist/esm/constants.js +7 -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/esm/execution/checkAllowance.js +74 -0
  125. package/dist/esm/execution/checkAllowance.js.map +1 -0
  126. package/dist/esm/execution/checkBalance.js +39 -0
  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/esm/execution/multisig.js +26 -0
  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 +5 -4
  135. package/dist/esm/execution/stepComparison.js.map +1 -0
  136. package/dist/{execution → esm/execution}/switchChain.js +19 -12
  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/esm/execution/utils.js +80 -0
  141. package/dist/esm/execution/utils.js.map +1 -0
  142. package/dist/esm/execution/waitForReceivingTransaction.js +52 -0
  143. package/dist/esm/execution/waitForReceivingTransaction.js.map +1 -0
  144. package/dist/{helpers.js → esm/helpers.js} +9 -37
  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} +6 -5
  158. package/dist/esm/request.js.map +1 -0
  159. package/dist/{services → esm/services}/ApiService.js +29 -26
  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/esm/types/abi.js +43 -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 +61 -35
  174. package/dist/esm/utils/errors.js.map +1 -0
  175. package/dist/esm/utils/getMaxPriorityFeePerGas.js +19 -0
  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/esm/utils/median.js +12 -0
  180. package/dist/esm/utils/median.js.map +1 -0
  181. package/dist/{utils → esm/utils}/parseError.js +45 -41
  182. package/dist/esm/utils/parseError.js.map +1 -0
  183. package/dist/esm/utils/utils.js +38 -0
  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/types/LiFi.d.ts +179 -0
  188. package/dist/types/LiFi.d.ts.map +1 -0
  189. package/dist/types/allowance/getAllowance.d.ts +7 -0
  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/types/allowance/types.d.ts +28 -0
  196. package/dist/types/allowance/types.d.ts.map +1 -0
  197. package/dist/types/balance/getBalance.d.ts +3 -0
  198. package/dist/types/balance/getBalance.d.ts.map +1 -0
  199. package/dist/{balance → types/balance}/getTokenBalance.d.ts +3 -2
  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/types/connectors.d.ts +9 -0
  204. package/dist/types/connectors.d.ts.map +1 -0
  205. package/dist/types/constants.d.ts +7 -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/types/execution/RouteExecutionManager.d.ts +61 -0
  212. package/dist/types/execution/RouteExecutionManager.d.ts.map +1 -0
  213. package/dist/types/execution/StatusManager.d.ts +69 -0
  214. package/dist/types/execution/StatusManager.d.ts.map +1 -0
  215. package/dist/types/execution/StepExecutionManager.d.ts +8 -0
  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/{execution → types/execution}/stepComparison.d.ts +6 -4
  228. package/dist/types/execution/stepComparison.d.ts.map +1 -0
  229. package/dist/types/execution/switchChain.d.ts +23 -0
  230. package/dist/types/execution/switchChain.d.ts.map +1 -0
  231. package/dist/types/execution/types.d.ts +83 -0
  232. package/dist/types/execution/types.d.ts.map +1 -0
  233. package/dist/types/execution/utils.d.ts +13 -0
  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/types/helpers.d.ts +19 -0
  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/{cjs → types}/services/ApiService.d.ts +5 -5
  252. package/dist/types/services/ApiService.d.ts.map +1 -0
  253. package/dist/{services → types/services}/ChainsService.d.ts +3 -2
  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/types/types/abi.d.ts +6 -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 +16 -14
  266. package/dist/types/utils/errors.d.ts.map +1 -0
  267. package/dist/types/utils/getMaxPriorityFeePerGas.d.ts +3 -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/types/utils/median.d.ts +2 -0
  272. package/dist/types/utils/median.d.ts.map +1 -0
  273. package/dist/{utils → types/utils}/parseError.d.ts +7 -6
  274. package/dist/types/utils/parseError.d.ts.map +1 -0
  275. package/dist/types/utils/utils.d.ts +11 -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 -95
  280. package/dist/LiFi.d.ts +0 -164
  281. package/dist/LiFi.js +0 -235
  282. package/dist/allowance/checkAllowance.d.ts +0 -4
  283. package/dist/allowance/checkAllowance.js +0 -96
  284. package/dist/allowance/index.d.ts +0 -2
  285. package/dist/allowance/index.js +0 -2
  286. package/dist/allowance/tokenApproval.d.ts +0 -22
  287. package/dist/allowance/tokenApproval.js +0 -59
  288. package/dist/allowance/utils.d.ts +0 -14
  289. package/dist/allowance/utils.js +0 -72
  290. package/dist/balance/checkBalance.d.ts +0 -3
  291. package/dist/balance/checkBalance.js +0 -38
  292. package/dist/balance/index.d.ts +0 -13
  293. package/dist/balance/index.js +0 -10
  294. package/dist/balance/utils.d.ts +0 -6
  295. package/dist/balance/utils.js +0 -143
  296. package/dist/cjs/LiFi.d.ts +0 -164
  297. package/dist/cjs/allowance/checkAllowance.d.ts +0 -4
  298. package/dist/cjs/allowance/checkAllowance.js +0 -103
  299. package/dist/cjs/allowance/index.d.ts +0 -2
  300. package/dist/cjs/allowance/tokenApproval.d.ts +0 -22
  301. package/dist/cjs/allowance/tokenApproval.js +0 -69
  302. package/dist/cjs/allowance/utils.d.ts +0 -14
  303. package/dist/cjs/allowance/utils.js +0 -82
  304. package/dist/cjs/balance/checkBalance.d.ts +0 -3
  305. package/dist/cjs/balance/checkBalance.js +0 -45
  306. package/dist/cjs/balance/getTokenBalance.d.ts +0 -8
  307. package/dist/cjs/balance/index.d.ts +0 -13
  308. package/dist/cjs/balance/utils.d.ts +0 -6
  309. package/dist/cjs/balance/utils.js +0 -150
  310. package/dist/cjs/connectors.d.ts +0 -6
  311. package/dist/cjs/execution/RouteExecutionManager.d.ts +0 -65
  312. package/dist/cjs/execution/StatusManager.d.ts +0 -68
  313. package/dist/cjs/execution/StepExecutionManager.d.ts +0 -7
  314. package/dist/cjs/execution/StepExecutor.d.ts +0 -15
  315. package/dist/cjs/execution/StepExecutor.js +0 -62
  316. package/dist/cjs/execution/index.d.ts +0 -1
  317. package/dist/cjs/execution/multisig.d.ts +0 -3
  318. package/dist/cjs/execution/stepComparison.d.ts +0 -14
  319. package/dist/cjs/execution/switchChain.d.ts +0 -16
  320. package/dist/cjs/execution/utils.d.ts +0 -6
  321. package/dist/cjs/helpers.d.ts +0 -28
  322. package/dist/cjs/index.d.ts +0 -5
  323. package/dist/cjs/request.d.ts +0 -9
  324. package/dist/cjs/services/ChainsService.d.ts +0 -11
  325. package/dist/cjs/services/ConfigService.d.ts +0 -23
  326. package/dist/cjs/types/ERC20.d.ts +0 -22
  327. package/dist/cjs/types/ERC20.js +0 -53
  328. package/dist/cjs/types/index.d.ts +0 -4
  329. package/dist/cjs/types/internal.types.d.ts +0 -151
  330. package/dist/cjs/utils/getProvider.d.ts +0 -3
  331. package/dist/cjs/utils/getProvider.js +0 -11
  332. package/dist/cjs/utils/multicall.d.ts +0 -10
  333. package/dist/cjs/utils/multicall.js +0 -68
  334. package/dist/cjs/utils/multicallAbi.json +0 -313
  335. package/dist/cjs/utils/parseError.d.ts +0 -37
  336. package/dist/cjs/utils/preRestart.d.ts +0 -3
  337. package/dist/cjs/utils/preRestart.js +0 -56
  338. package/dist/cjs/utils/utils.d.ts +0 -25
  339. package/dist/cjs/version.d.ts +0 -2
  340. package/dist/connectors.d.ts +0 -6
  341. package/dist/connectors.js +0 -57
  342. package/dist/execution/RouteExecutionManager.d.ts +0 -65
  343. package/dist/execution/RouteExecutionManager.js +0 -213
  344. package/dist/execution/StatusManager.d.ts +0 -68
  345. package/dist/execution/StatusManager.js +0 -168
  346. package/dist/execution/StepExecutionManager.d.ts +0 -7
  347. package/dist/execution/StepExecutionManager.js +0 -267
  348. package/dist/execution/StepExecutor.d.ts +0 -15
  349. package/dist/execution/StepExecutor.js +0 -58
  350. package/dist/execution/index.d.ts +0 -1
  351. package/dist/execution/index.js +0 -1
  352. package/dist/execution/multisig.d.ts +0 -3
  353. package/dist/execution/multisig.js +0 -27
  354. package/dist/execution/switchChain.d.ts +0 -16
  355. package/dist/execution/utils.d.ts +0 -6
  356. package/dist/execution/utils.js +0 -122
  357. package/dist/helpers.d.ts +0 -28
  358. package/dist/index.d.ts +0 -5
  359. package/dist/index.js +0 -6
  360. package/dist/services/ApiService.d.ts +0 -17
  361. package/dist/services/ConfigService.js +0 -101
  362. package/dist/typeguards.d.ts +0 -4
  363. package/dist/types/ERC20.d.ts +0 -22
  364. package/dist/types/ERC20.js +0 -50
  365. package/dist/types/index.js +0 -4
  366. package/dist/types/internal.types.d.ts +0 -151
  367. package/dist/types/internal.types.js +0 -1
  368. package/dist/utils/errors.d.ts +0 -106
  369. package/dist/utils/getProvider.d.ts +0 -3
  370. package/dist/utils/getProvider.js +0 -7
  371. package/dist/utils/multicall.d.ts +0 -10
  372. package/dist/utils/multicall.js +0 -61
  373. package/dist/utils/multicallAbi.json +0 -313
  374. package/dist/utils/preRestart.d.ts +0 -3
  375. package/dist/utils/preRestart.js +0 -52
  376. package/dist/utils/utils.d.ts +0 -25
  377. package/dist/utils/utils.js +0 -99
  378. package/dist/version.d.ts +0 -2
  379. package/dist/version.js +0 -2
@@ -1,4 +1,4 @@
1
- import utils from './utils';
1
+ import { getBalance } from './getBalance.js';
2
2
  export const getTokenBalance = async (walletAddress, token) => {
3
3
  const tokenAmounts = await getTokenBalances(walletAddress, [token]);
4
4
  return tokenAmounts.length ? tokenAmounts[0] : null;
@@ -12,16 +12,17 @@ export const getTokenBalances = async (walletAddress, tokens) => {
12
12
  }
13
13
  tokensByChain[token.chainId].push(token);
14
14
  });
15
- const tokenAmountsByChain = await getTokenBalancesForChains(walletAddress, tokensByChain);
15
+ const tokenAmountsByChain = await getTokenBalancesByChain(walletAddress, tokensByChain);
16
16
  return Object.values(tokenAmountsByChain).flat();
17
17
  };
18
- export const getTokenBalancesForChains = async (walletAddress, tokensByChain) => {
18
+ export const getTokenBalancesByChain = async (walletAddress, tokensByChain) => {
19
19
  const tokenAmountsByChain = {};
20
20
  const promises = Object.keys(tokensByChain).map(async (chainIdStr) => {
21
21
  const chainId = parseInt(chainIdStr);
22
- const tokenAmounts = await utils.getBalances(walletAddress, tokensByChain[chainId]);
22
+ const tokenAmounts = await getBalance(walletAddress, tokensByChain[chainId]);
23
23
  tokenAmountsByChain[chainId] = tokenAmounts;
24
24
  });
25
25
  await Promise.allSettled(promises);
26
26
  return tokenAmountsByChain;
27
27
  };
28
+ //# sourceMappingURL=getTokenBalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTokenBalance.js","sourceRoot":"","sources":["../../../src/balance/getTokenBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,aAAqB,EACrB,KAAY,EACiB,EAAE;IAC/B,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACnE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,aAAqB,EACrB,MAAe,EACS,EAAE;IAC1B,iBAAiB;IACjB,MAAM,aAAa,GAAmC,EAAE,CAAA;IACxD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACjC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;SAClC;QACD,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,MAAM,mBAAmB,GAAG,MAAM,uBAAuB,CACvD,aAAa,EACb,aAAa,CACd,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAA;AAClD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,aAAqB,EACrB,aAA6C,EACE,EAAE;IACjD,MAAM,mBAAmB,GAAyC,EAAE,CAAA;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;QAC5E,mBAAmB,CAAC,OAAO,CAAC,GAAG,YAAY,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAClC,OAAO,mBAAmB,CAAA;AAC5B,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './getBalance.js';
2
+ export * from './getTokenBalance.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/balance/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { createPublicClient, fallback, http } from 'viem';
2
+ import * as chains from 'viem/chains'; // TODO: optimize using BE chains
3
+ import { ConfigService } from './services/ConfigService.js';
4
+ import { ServerError } from './utils/errors.js';
5
+ // cached providers
6
+ const publicClients = {};
7
+ export const getChainById = (chainId) => {
8
+ return Object.values(chains).find((chain) => chain.id === chainId);
9
+ };
10
+ // RPC Urls
11
+ export const getRpcUrl = async (chainId) => {
12
+ const rpcUrls = await getRpcUrls(chainId);
13
+ return rpcUrls[0];
14
+ };
15
+ export const getRpcUrls = async (chainId) => {
16
+ const configService = ConfigService.getInstance();
17
+ const config = await configService.getConfigAsync();
18
+ return config.rpcs[chainId];
19
+ };
20
+ export const getPublicClient = async (chainId) => {
21
+ if (!publicClients[chainId]) {
22
+ const urls = await getRpcUrls(chainId);
23
+ const fallbackTransports = urls.map((url) => http(url, {
24
+ batch: true,
25
+ }));
26
+ publicClients[chainId] = createPublicClient({
27
+ chain: getChainById(chainId),
28
+ transport: fallback(fallbackTransports),
29
+ });
30
+ }
31
+ if (!publicClients[chainId]) {
32
+ throw new ServerError(`Unable to configure provider for chain ${chainId}`);
33
+ }
34
+ return publicClients[chainId];
35
+ };
36
+ // Multicall
37
+ export const getMulticallAddress = async (chainId) => {
38
+ const configService = ConfigService.getInstance();
39
+ const config = await configService.getConfigAsync();
40
+ return config.multicallAddresses[chainId];
41
+ };
42
+ //# sourceMappingURL=connectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../src/connectors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAEzD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA,CAAC,iCAAiC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,mBAAmB;AACnB,MAAM,aAAa,GAAiC,EAAE,CAAA;AAEtD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAqB,EAAE;IAClE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;AACpE,CAAC,CAAA;AAED,WAAW;AACX,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,OAAgB,EAAmB,EAAE;IACnE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAA;IACzC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,OAAgB,EAAqB,EAAE;IACtE,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAA;IACjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,CAAA;IACnD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,OAAe,EACQ,EAAE;IACzB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1C,IAAI,CAAC,GAAG,EAAE;YACR,KAAK,EAAE,IAAI;SACZ,CAAC,CACH,CAAA;QAED,aAAa,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC;YAC1C,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;YAC5B,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC;SACxC,CAAC,CAAA;KACH;IAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,IAAI,WAAW,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAA;KAC3E;IAED,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC,CAAA;AAED,YAAY;AACZ,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAAgB,EACa,EAAE;IAC/B,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAA;IACjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,CAAA;IACnD,OAAO,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAC3C,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ export const AddressZero = '0x0000000000000000000000000000000000000000';
2
+ export const AlternativeAddressZero = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
3
+ /**
4
+ * Cronos require bigger multicall chunks than default 1024 (1 KB)
5
+ */
6
+ export const MulticallBatchSize = 16384; // 16 Kilobytes (KB)
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,4CAA4C,CAAA;AACvE,MAAM,CAAC,MAAM,sBAAsB,GACjC,4CAA4C,CAAA;AAC9C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAM,CAAA,CAAC,oBAAoB"}
@@ -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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"}