@lifi/sdk 3.0.0-alpha.6 → 3.0.0-alpha.60

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 (482) hide show
  1. package/package.json +40 -88
  2. package/src/_cjs/config.js +90 -0
  3. package/src/_cjs/config.js.map +1 -0
  4. package/{dist/cjs → src/_cjs}/constants.js +3 -5
  5. package/src/_cjs/constants.js.map +1 -0
  6. package/src/_cjs/core/BaseStepExecutor.js +55 -0
  7. package/src/_cjs/core/BaseStepExecutor.js.map +1 -0
  8. package/src/_cjs/core/EVM/EVM.js +43 -0
  9. package/src/_cjs/core/EVM/EVM.js.map +1 -0
  10. package/src/_cjs/core/EVM/EVMStepExecutor.js +304 -0
  11. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -0
  12. package/{dist/cjs/types → src/_cjs/core/EVM}/abi.js +1 -0
  13. package/src/_cjs/core/EVM/abi.js.map +1 -0
  14. package/{dist/cjs/execution → src/_cjs/core/EVM}/checkAllowance.js +19 -12
  15. package/src/_cjs/core/EVM/checkAllowance.js.map +1 -0
  16. package/{dist/cjs/allowance → src/_cjs/core/EVM}/getAllowance.js +13 -17
  17. package/src/_cjs/core/EVM/getAllowance.js.map +1 -0
  18. package/src/_cjs/core/EVM/getENSAddress.js +20 -0
  19. package/src/_cjs/core/EVM/getENSAddress.js.map +1 -0
  20. package/{dist/cjs/balance/getBalance.js → src/_cjs/core/EVM/getEVMBalance.js} +20 -22
  21. package/src/_cjs/core/EVM/getEVMBalance.js.map +1 -0
  22. package/{dist/cjs/execution → src/_cjs/core/EVM}/multisig.js +7 -11
  23. package/src/_cjs/core/EVM/multisig.js.map +1 -0
  24. package/src/_cjs/core/EVM/publicClient.js +43 -0
  25. package/src/_cjs/core/EVM/publicClient.js.map +1 -0
  26. package/{dist/cjs/allowance → src/_cjs/core/EVM}/setAllowance.js +11 -12
  27. package/src/_cjs/core/EVM/setAllowance.js.map +1 -0
  28. package/src/_cjs/core/EVM/switchChain.js +38 -0
  29. package/src/_cjs/core/EVM/switchChain.js.map +1 -0
  30. package/src/_cjs/core/EVM/types.js +9 -0
  31. package/src/_cjs/core/EVM/types.js.map +1 -0
  32. package/{dist/cjs/utils/getMaxPriorityFeePerGas.js → src/_cjs/core/EVM/utils.js} +13 -3
  33. package/src/_cjs/core/EVM/utils.js.map +1 -0
  34. package/src/_cjs/core/Solana/Solana.js +38 -0
  35. package/src/_cjs/core/Solana/Solana.js.map +1 -0
  36. package/src/_cjs/core/Solana/SolanaStepExecutor.js +174 -0
  37. package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -0
  38. package/src/_cjs/core/Solana/connection.js +19 -0
  39. package/src/_cjs/core/Solana/connection.js.map +1 -0
  40. package/src/_cjs/core/Solana/getSNSAddress.js +26 -0
  41. package/src/_cjs/core/Solana/getSNSAddress.js.map +1 -0
  42. package/src/_cjs/core/Solana/getSolanaBalance.js +60 -0
  43. package/src/_cjs/core/Solana/getSolanaBalance.js.map +1 -0
  44. package/src/_cjs/core/Solana/isAddress.js +15 -0
  45. package/src/_cjs/core/Solana/isAddress.js.map +1 -0
  46. package/src/_cjs/core/Solana/types.js +10 -0
  47. package/src/_cjs/core/Solana/types.js.map +1 -0
  48. package/src/_cjs/core/StatusManager.js +167 -0
  49. package/src/_cjs/core/StatusManager.js.map +1 -0
  50. package/{dist/cjs/execution → src/_cjs/core}/checkBalance.js +6 -6
  51. package/src/_cjs/core/checkBalance.js.map +1 -0
  52. package/src/_cjs/core/execution.js +134 -0
  53. package/src/_cjs/core/execution.js.map +1 -0
  54. package/src/_cjs/core/executionState.js +29 -0
  55. package/src/_cjs/core/executionState.js.map +1 -0
  56. package/src/_cjs/core/index.js +7 -0
  57. package/src/_cjs/core/index.js.map +1 -0
  58. package/src/_cjs/core/prepareRestart.js +23 -0
  59. package/src/_cjs/core/prepareRestart.js.map +1 -0
  60. package/src/_cjs/core/provider.js +15 -0
  61. package/src/_cjs/core/provider.js.map +1 -0
  62. package/src/_cjs/core/rpc.js +18 -0
  63. package/src/_cjs/core/rpc.js.map +1 -0
  64. package/src/_cjs/core/stepComparison.js +25 -0
  65. package/src/_cjs/core/stepComparison.js.map +1 -0
  66. package/{dist/cjs/allowance → src/_cjs/core}/types.js +1 -0
  67. package/src/_cjs/core/types.js.map +1 -0
  68. package/{dist/cjs/execution → src/_cjs/core}/utils.js +2 -11
  69. package/src/_cjs/core/utils.js.map +1 -0
  70. package/{dist/cjs/execution → src/_cjs/core}/waitForReceivingTransaction.js +13 -14
  71. package/src/_cjs/core/waitForReceivingTransaction.js.map +1 -0
  72. package/src/_cjs/createConfig.js +32 -0
  73. package/src/_cjs/createConfig.js.map +1 -0
  74. package/src/_cjs/helpers.js +57 -0
  75. package/src/_cjs/helpers.js.map +1 -0
  76. package/src/_cjs/index.js +23 -0
  77. package/src/_cjs/index.js.map +1 -0
  78. package/src/_cjs/package.json +1 -0
  79. package/src/_cjs/request.js +66 -0
  80. package/src/_cjs/request.js.map +1 -0
  81. package/src/_cjs/services/api.js +309 -0
  82. package/src/_cjs/services/api.js.map +1 -0
  83. package/src/_cjs/services/balance.js +49 -0
  84. package/src/_cjs/services/balance.js.map +1 -0
  85. package/src/_cjs/services/getNameServiceAddress.js +29 -0
  86. package/src/_cjs/services/getNameServiceAddress.js.map +1 -0
  87. package/{dist/cjs → src/_cjs}/typeguards.js +1 -0
  88. package/src/_cjs/typeguards.js.map +1 -0
  89. package/src/_cjs/types/index.js +5 -0
  90. package/src/_cjs/types/index.js.map +1 -0
  91. package/{dist/cjs/types/internal.types.js → src/_cjs/types/internal.js} +1 -0
  92. package/src/_cjs/types/internal.js.map +1 -0
  93. package/{dist/cjs → src/_cjs}/utils/errors.js +26 -3
  94. package/src/_cjs/utils/errors.js.map +1 -0
  95. package/src/_cjs/utils/getTransactionMessage.js +31 -0
  96. package/src/_cjs/utils/getTransactionMessage.js.map +1 -0
  97. package/src/_cjs/utils/index.js +9 -0
  98. package/src/_cjs/utils/index.js.map +1 -0
  99. package/{dist/cjs → src/_cjs}/utils/median.js +1 -0
  100. package/src/_cjs/utils/median.js.map +1 -0
  101. package/src/_cjs/utils/parseBackendError.js +27 -0
  102. package/src/_cjs/utils/parseBackendError.js.map +1 -0
  103. package/src/_cjs/utils/parseError.js +69 -0
  104. package/src/_cjs/utils/parseError.js.map +1 -0
  105. package/{dist/cjs → src/_cjs}/utils/utils.js +5 -11
  106. package/src/_cjs/utils/utils.js.map +1 -0
  107. package/{dist/cjs → src/_cjs}/version.js +2 -1
  108. package/src/_cjs/version.js.map +1 -0
  109. package/src/_esm/config.js +87 -0
  110. package/src/_esm/config.js.map +1 -0
  111. package/{dist → src/_esm}/constants.js +2 -4
  112. package/src/_esm/constants.js.map +1 -0
  113. package/src/_esm/core/BaseStepExecutor.js +52 -0
  114. package/src/_esm/core/BaseStepExecutor.js.map +1 -0
  115. package/src/_esm/core/EVM/EVM.js +39 -0
  116. package/src/_esm/core/EVM/EVM.js.map +1 -0
  117. package/src/_esm/core/EVM/EVMStepExecutor.js +329 -0
  118. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -0
  119. package/{dist/types → src/_esm/core/EVM}/abi.js +1 -0
  120. package/src/_esm/core/EVM/abi.js.map +1 -0
  121. package/{dist/execution → src/_esm/core/EVM}/checkAllowance.js +14 -5
  122. package/src/_esm/core/EVM/checkAllowance.js.map +1 -0
  123. package/{dist/allowance → src/_esm/core/EVM}/getAllowance.js +19 -6
  124. package/src/_esm/core/EVM/getAllowance.js.map +1 -0
  125. package/src/_esm/core/EVM/getENSAddress.js +17 -0
  126. package/src/_esm/core/EVM/getENSAddress.js.map +1 -0
  127. package/{dist/balance/getBalance.js → src/_esm/core/EVM/getEVMBalance.js} +10 -12
  128. package/src/_esm/core/EVM/getEVMBalance.js.map +1 -0
  129. package/{dist/execution → src/_esm/core/EVM}/multisig.js +5 -6
  130. package/src/_esm/core/EVM/multisig.js.map +1 -0
  131. package/src/_esm/core/EVM/publicClient.js +46 -0
  132. package/src/_esm/core/EVM/publicClient.js.map +1 -0
  133. package/{dist/allowance → src/_esm/core/EVM}/setAllowance.js +23 -4
  134. package/src/_esm/core/EVM/setAllowance.js.map +1 -0
  135. package/{dist/execution → src/_esm/core/EVM}/switchChain.js +7 -4
  136. package/src/_esm/core/EVM/switchChain.js.map +1 -0
  137. package/src/_esm/core/EVM/types.js +6 -0
  138. package/src/_esm/core/EVM/types.js.map +1 -0
  139. package/{dist/utils/getMaxPriorityFeePerGas.js → src/_esm/core/EVM/utils.js} +12 -1
  140. package/src/_esm/core/EVM/utils.js.map +1 -0
  141. package/src/_esm/core/Solana/Solana.js +34 -0
  142. package/src/_esm/core/Solana/Solana.js.map +1 -0
  143. package/src/_esm/core/Solana/SolanaStepExecutor.js +176 -0
  144. package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -0
  145. package/src/_esm/core/Solana/connection.js +20 -0
  146. package/src/_esm/core/Solana/connection.js.map +1 -0
  147. package/src/_esm/core/Solana/getSNSAddress.js +26 -0
  148. package/src/_esm/core/Solana/getSNSAddress.js.map +1 -0
  149. package/src/_esm/core/Solana/getSolanaBalance.js +56 -0
  150. package/src/_esm/core/Solana/getSolanaBalance.js.map +1 -0
  151. package/src/_esm/core/Solana/isAddress.js +11 -0
  152. package/src/_esm/core/Solana/isAddress.js.map +1 -0
  153. package/src/_esm/core/Solana/types.js +7 -0
  154. package/src/_esm/core/Solana/types.js.map +1 -0
  155. package/src/_esm/core/StatusManager.js +203 -0
  156. package/src/_esm/core/StatusManager.js.map +1 -0
  157. package/{dist/execution → src/_esm/core}/checkBalance.js +4 -3
  158. package/src/_esm/core/checkBalance.js.map +1 -0
  159. package/src/_esm/core/execution.js +172 -0
  160. package/src/_esm/core/execution.js.map +1 -0
  161. package/src/_esm/core/executionState.js +26 -0
  162. package/src/_esm/core/executionState.js.map +1 -0
  163. package/src/_esm/core/index.js +4 -0
  164. package/src/_esm/core/index.js.map +1 -0
  165. package/src/_esm/core/prepareRestart.js +64 -0
  166. package/src/_esm/core/prepareRestart.js.map +1 -0
  167. package/src/_esm/core/provider.js +11 -0
  168. package/src/_esm/core/provider.js.map +1 -0
  169. package/src/_esm/core/rpc.js +14 -0
  170. package/src/_esm/core/rpc.js.map +1 -0
  171. package/{dist/execution → src/_esm/core}/stepComparison.js +7 -5
  172. package/src/_esm/core/stepComparison.js.map +1 -0
  173. package/src/_esm/core/types.js +2 -0
  174. package/src/_esm/core/types.js.map +1 -0
  175. package/{dist/execution → src/_esm/core}/utils.js +4 -3
  176. package/src/_esm/core/utils.js.map +1 -0
  177. package/{dist/execution → src/_esm/core}/waitForReceivingTransaction.js +11 -9
  178. package/src/_esm/core/waitForReceivingTransaction.js.map +1 -0
  179. package/src/_esm/createConfig.js +28 -0
  180. package/src/_esm/createConfig.js.map +1 -0
  181. package/{dist → src/_esm}/helpers.js +5 -17
  182. package/src/_esm/helpers.js.map +1 -0
  183. package/src/_esm/index.js +14 -0
  184. package/src/_esm/index.js.map +1 -0
  185. package/src/_esm/package.json +1 -0
  186. package/{dist → src/_esm}/request.js +23 -13
  187. package/src/_esm/request.js.map +1 -0
  188. package/src/_esm/services/api.js +378 -0
  189. package/src/_esm/services/api.js.map +1 -0
  190. package/src/_esm/services/balance.js +65 -0
  191. package/src/_esm/services/balance.js.map +1 -0
  192. package/src/_esm/services/getNameServiceAddress.js +25 -0
  193. package/src/_esm/services/getNameServiceAddress.js.map +1 -0
  194. package/{dist → src/_esm}/typeguards.js +1 -0
  195. package/src/_esm/typeguards.js.map +1 -0
  196. package/src/_esm/types/index.js +2 -0
  197. package/src/_esm/types/index.js.map +1 -0
  198. package/src/_esm/types/internal.js +2 -0
  199. package/src/_esm/types/internal.js.map +1 -0
  200. package/{dist → src/_esm}/utils/errors.js +26 -0
  201. package/src/_esm/utils/errors.js.map +1 -0
  202. package/src/_esm/utils/getTransactionMessage.js +28 -0
  203. package/src/_esm/utils/getTransactionMessage.js.map +1 -0
  204. package/src/_esm/utils/index.js +6 -0
  205. package/src/_esm/utils/index.js.map +1 -0
  206. package/{dist → src/_esm}/utils/median.js +1 -0
  207. package/src/_esm/utils/median.js.map +1 -0
  208. package/src/_esm/utils/parseBackendError.js +24 -0
  209. package/src/_esm/utils/parseBackendError.js.map +1 -0
  210. package/{dist → src/_esm}/utils/parseError.js +6 -53
  211. package/src/_esm/utils/parseError.js.map +1 -0
  212. package/{dist → src/_esm}/utils/utils.js +2 -1
  213. package/src/_esm/utils/utils.js.map +1 -0
  214. package/src/_esm/version.js +3 -0
  215. package/src/_esm/version.js.map +1 -0
  216. package/src/_types/config.d.ts +15 -0
  217. package/src/_types/config.d.ts.map +1 -0
  218. package/{dist/cjs → src/_types}/constants.d.ts +2 -4
  219. package/src/_types/constants.d.ts.map +1 -0
  220. package/src/_types/core/BaseStepExecutor.d.ts +13 -0
  221. package/src/_types/core/BaseStepExecutor.d.ts.map +1 -0
  222. package/src/_types/core/EVM/EVM.d.ts +3 -0
  223. package/src/_types/core/EVM/EVM.d.ts.map +1 -0
  224. package/src/_types/core/EVM/EVMStepExecutor.d.ts +17 -0
  225. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -0
  226. package/{dist/cjs/types → src/_types/core/EVM}/abi.d.ts +1 -0
  227. package/src/_types/core/EVM/abi.d.ts.map +1 -0
  228. package/src/_types/core/EVM/checkAllowance.d.ts +6 -0
  229. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -0
  230. package/{dist/cjs/allowance → src/_types/core/EVM}/getAllowance.d.ts +15 -1
  231. package/src/_types/core/EVM/getAllowance.d.ts.map +1 -0
  232. package/src/_types/core/EVM/getENSAddress.d.ts +2 -0
  233. package/src/_types/core/EVM/getENSAddress.d.ts.map +1 -0
  234. package/src/_types/core/EVM/getEVMBalance.d.ts +3 -0
  235. package/src/_types/core/EVM/getEVMBalance.d.ts.map +1 -0
  236. package/src/_types/core/EVM/multisig.d.ts +6 -0
  237. package/src/_types/core/EVM/multisig.d.ts.map +1 -0
  238. package/src/_types/core/EVM/publicClient.d.ts +8 -0
  239. package/src/_types/core/EVM/publicClient.d.ts.map +1 -0
  240. package/src/_types/core/EVM/setAllowance.d.ts +25 -0
  241. package/src/_types/core/EVM/setAllowance.d.ts.map +1 -0
  242. package/{dist/cjs/execution → src/_types/core/EVM}/switchChain.d.ts +5 -4
  243. package/src/_types/core/EVM/switchChain.d.ts.map +1 -0
  244. package/src/_types/core/EVM/types.d.ts +55 -0
  245. package/src/_types/core/EVM/types.d.ts.map +1 -0
  246. package/src/_types/core/EVM/utils.d.ts +10 -0
  247. package/src/_types/core/EVM/utils.d.ts.map +1 -0
  248. package/src/_types/core/Solana/Solana.d.ts +3 -0
  249. package/src/_types/core/Solana/Solana.d.ts.map +1 -0
  250. package/src/_types/core/Solana/SolanaStepExecutor.d.ts +13 -0
  251. package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -0
  252. package/src/_types/core/Solana/connection.d.ts +8 -0
  253. package/src/_types/core/Solana/connection.d.ts.map +1 -0
  254. package/src/_types/core/Solana/getSNSAddress.d.ts +2 -0
  255. package/src/_types/core/Solana/getSNSAddress.d.ts.map +1 -0
  256. package/src/_types/core/Solana/getSolanaBalance.d.ts +3 -0
  257. package/src/_types/core/Solana/getSolanaBalance.d.ts.map +1 -0
  258. package/src/_types/core/Solana/isAddress.d.ts +2 -0
  259. package/src/_types/core/Solana/isAddress.d.ts.map +1 -0
  260. package/src/_types/core/Solana/types.d.ts +13 -0
  261. package/src/_types/core/Solana/types.d.ts.map +1 -0
  262. package/{dist/cjs/execution → src/_types/core}/StatusManager.d.ts +15 -28
  263. package/src/_types/core/StatusManager.d.ts.map +1 -0
  264. package/src/_types/core/checkBalance.d.ts +3 -0
  265. package/src/_types/core/checkBalance.d.ts.map +1 -0
  266. package/src/_types/core/execution.d.ts +42 -0
  267. package/src/_types/core/execution.d.ts.map +1 -0
  268. package/src/_types/core/executionState.d.ts +17 -0
  269. package/src/_types/core/executionState.d.ts.map +1 -0
  270. package/src/_types/core/index.d.ts +4 -0
  271. package/src/_types/core/index.d.ts.map +1 -0
  272. package/src/_types/core/prepareRestart.d.ts +3 -0
  273. package/src/_types/core/prepareRestart.d.ts.map +1 -0
  274. package/src/_types/core/provider.d.ts +3 -0
  275. package/src/_types/core/provider.d.ts.map +1 -0
  276. package/src/_types/core/rpc.d.ts +4 -0
  277. package/src/_types/core/rpc.d.ts.map +1 -0
  278. package/{dist/execution → src/_types/core}/stepComparison.d.ts +7 -4
  279. package/src/_types/core/stepComparison.d.ts.map +1 -0
  280. package/src/_types/core/types.d.ts +81 -0
  281. package/src/_types/core/types.d.ts.map +1 -0
  282. package/{dist/execution → src/_types/core}/utils.d.ts +3 -2
  283. package/src/_types/core/utils.d.ts.map +1 -0
  284. package/src/_types/core/waitForReceivingTransaction.d.ts +4 -0
  285. package/src/_types/core/waitForReceivingTransaction.d.ts.map +1 -0
  286. package/src/_types/createConfig.d.ts +4 -0
  287. package/src/_types/createConfig.d.ts.map +1 -0
  288. package/{dist → src/_types}/helpers.d.ts +4 -3
  289. package/src/_types/helpers.d.ts.map +1 -0
  290. package/src/_types/index.d.ts +15 -0
  291. package/src/_types/index.d.ts.map +1 -0
  292. package/{dist → src/_types}/request.d.ts +1 -0
  293. package/src/_types/request.d.ts.map +1 -0
  294. package/src/_types/services/api.d.ts +89 -0
  295. package/src/_types/services/api.d.ts.map +1 -0
  296. package/src/_types/services/balance.d.ts +30 -0
  297. package/src/_types/services/balance.d.ts.map +1 -0
  298. package/src/_types/services/getNameServiceAddress.d.ts +3 -0
  299. package/src/_types/services/getNameServiceAddress.d.ts.map +1 -0
  300. package/{dist/cjs → src/_types}/typeguards.d.ts +3 -2
  301. package/src/_types/typeguards.d.ts.map +1 -0
  302. package/src/_types/types/index.d.ts +2 -0
  303. package/src/_types/types/index.d.ts.map +1 -0
  304. package/src/_types/types/internal.d.ts +59 -0
  305. package/src/_types/types/internal.d.ts.map +1 -0
  306. package/{dist → src/_types}/utils/errors.d.ts +3 -1
  307. package/src/_types/utils/errors.d.ts.map +1 -0
  308. package/src/_types/utils/getTransactionMessage.d.ts +4 -0
  309. package/src/_types/utils/getTransactionMessage.d.ts.map +1 -0
  310. package/src/_types/utils/index.d.ts +6 -0
  311. package/src/_types/utils/index.d.ts.map +1 -0
  312. package/{dist/cjs → src/_types}/utils/median.d.ts +1 -0
  313. package/src/_types/utils/median.d.ts.map +1 -0
  314. package/src/_types/utils/parseBackendError.d.ts +3 -0
  315. package/src/_types/utils/parseBackendError.d.ts.map +1 -0
  316. package/{dist → src/_types}/utils/parseError.d.ts +4 -6
  317. package/src/_types/utils/parseError.d.ts.map +1 -0
  318. package/{dist → src/_types}/utils/utils.d.ts +1 -0
  319. package/src/_types/utils/utils.d.ts.map +1 -0
  320. package/src/_types/version.d.ts +3 -0
  321. package/src/_types/version.d.ts.map +1 -0
  322. package/src/config.ts +91 -0
  323. package/src/constants.ts +4 -0
  324. package/src/core/BaseStepExecutor.ts +40 -0
  325. package/src/core/EVM/EVM.ts +47 -0
  326. package/src/core/EVM/EVMStepExecutor.ts +503 -0
  327. package/src/core/EVM/abi.ts +47 -0
  328. package/src/core/EVM/checkAllowance.ts +168 -0
  329. package/src/core/EVM/getAllowance.ts +144 -0
  330. package/src/core/EVM/getENSAddress.ts +18 -0
  331. package/src/core/EVM/getEVMBalance.ts +118 -0
  332. package/src/core/EVM/multisig.ts +53 -0
  333. package/src/core/EVM/publicClient.ts +54 -0
  334. package/src/core/EVM/setAllowance.ts +144 -0
  335. package/src/core/EVM/switchChain.ts +77 -0
  336. package/src/core/EVM/types.ts +73 -0
  337. package/src/core/EVM/utils.ts +48 -0
  338. package/src/core/Solana/Solana.ts +41 -0
  339. package/src/core/Solana/SolanaStepExecutor.ts +272 -0
  340. package/src/core/Solana/connection.ts +20 -0
  341. package/src/core/Solana/getSNSAddress.ts +33 -0
  342. package/src/core/Solana/getSolanaBalance.ts +72 -0
  343. package/src/core/Solana/isAddress.ts +10 -0
  344. package/src/core/Solana/types.ts +18 -0
  345. package/src/core/StatusManager.ts +231 -0
  346. package/src/core/checkBalance.ts +48 -0
  347. package/src/core/execution.ts +210 -0
  348. package/src/core/executionState.ts +44 -0
  349. package/src/core/index.ts +3 -0
  350. package/src/core/prepareRestart.ts +82 -0
  351. package/src/core/provider.ts +12 -0
  352. package/src/core/rpc.ts +15 -0
  353. package/src/core/stepComparison.ts +51 -0
  354. package/src/core/types.ts +118 -0
  355. package/src/core/utils.ts +105 -0
  356. package/src/core/waitForReceivingTransaction.ts +74 -0
  357. package/src/createConfig.ts +33 -0
  358. package/src/helpers.ts +83 -0
  359. package/src/index.ts +18 -0
  360. package/src/request.ts +79 -0
  361. package/src/services/api.ts +509 -0
  362. package/src/services/balance.ts +93 -0
  363. package/src/services/getNameServiceAddress.ts +30 -0
  364. package/src/typeguards.ts +89 -0
  365. package/src/types/index.ts +1 -0
  366. package/src/types/internal.ts +62 -0
  367. package/src/utils/errors.ts +232 -0
  368. package/src/utils/getTransactionMessage.ts +46 -0
  369. package/src/utils/index.ts +5 -0
  370. package/src/utils/median.ts +11 -0
  371. package/src/utils/parseBackendError.ts +50 -0
  372. package/src/utils/parseError.ts +210 -0
  373. package/src/utils/utils.ts +48 -0
  374. package/src/version.ts +2 -0
  375. package/dist/LiFi.d.ts +0 -175
  376. package/dist/LiFi.js +0 -250
  377. package/dist/allowance/getAllowance.d.ts +0 -6
  378. package/dist/allowance/index.d.ts +0 -3
  379. package/dist/allowance/index.js +0 -3
  380. package/dist/allowance/setAllowance.d.ts +0 -6
  381. package/dist/allowance/types.d.ts +0 -27
  382. package/dist/allowance/types.js +0 -1
  383. package/dist/balance/getBalance.d.ts +0 -2
  384. package/dist/balance/getTokenBalance.d.ts +0 -8
  385. package/dist/balance/getTokenBalance.js +0 -27
  386. package/dist/balance/index.d.ts +0 -2
  387. package/dist/balance/index.js +0 -2
  388. package/dist/cjs/LiFi.d.ts +0 -175
  389. package/dist/cjs/LiFi.js +0 -280
  390. package/dist/cjs/allowance/index.d.ts +0 -3
  391. package/dist/cjs/allowance/index.js +0 -19
  392. package/dist/cjs/allowance/setAllowance.d.ts +0 -6
  393. package/dist/cjs/allowance/types.d.ts +0 -27
  394. package/dist/cjs/balance/getBalance.d.ts +0 -2
  395. package/dist/cjs/balance/getTokenBalance.d.ts +0 -8
  396. package/dist/cjs/balance/getTokenBalance.js +0 -33
  397. package/dist/cjs/balance/index.d.ts +0 -2
  398. package/dist/cjs/balance/index.js +0 -18
  399. package/dist/cjs/connectors.d.ts +0 -8
  400. package/dist/cjs/connectors.js +0 -75
  401. package/dist/cjs/execution/RouteExecutionManager.d.ts +0 -59
  402. package/dist/cjs/execution/RouteExecutionManager.js +0 -202
  403. package/dist/cjs/execution/StatusManager.js +0 -171
  404. package/dist/cjs/execution/StepExecutionManager.d.ts +0 -7
  405. package/dist/cjs/execution/StepExecutionManager.js +0 -272
  406. package/dist/cjs/execution/StepExecutor.d.ts +0 -15
  407. package/dist/cjs/execution/StepExecutor.js +0 -62
  408. package/dist/cjs/execution/checkAllowance.d.ts +0 -4
  409. package/dist/cjs/execution/checkBalance.d.ts +0 -2
  410. package/dist/cjs/execution/index.d.ts +0 -1
  411. package/dist/cjs/execution/index.js +0 -17
  412. package/dist/cjs/execution/multisig.d.ts +0 -4
  413. package/dist/cjs/execution/prepareRestart.d.ts +0 -3
  414. package/dist/cjs/execution/prepareRestart.js +0 -65
  415. package/dist/cjs/execution/stepComparison.d.ts +0 -14
  416. package/dist/cjs/execution/stepComparison.js +0 -37
  417. package/dist/cjs/execution/switchChain.js +0 -54
  418. package/dist/cjs/execution/utils.d.ts +0 -12
  419. package/dist/cjs/execution/waitForReceivingTransaction.d.ts +0 -3
  420. package/dist/cjs/helpers.d.ts +0 -18
  421. package/dist/cjs/helpers.js +0 -84
  422. package/dist/cjs/index.d.ts +0 -5
  423. package/dist/cjs/index.js +0 -24
  424. package/dist/cjs/request.d.ts +0 -9
  425. package/dist/cjs/request.js +0 -60
  426. package/dist/cjs/services/ApiService.d.ts +0 -17
  427. package/dist/cjs/services/ApiService.js +0 -326
  428. package/dist/cjs/services/ChainsService.d.ts +0 -11
  429. package/dist/cjs/services/ChainsService.js +0 -39
  430. package/dist/cjs/services/ConfigService.d.ts +0 -23
  431. package/dist/cjs/services/ConfigService.js +0 -101
  432. package/dist/cjs/types/index.d.ts +0 -4
  433. package/dist/cjs/types/index.js +0 -22
  434. package/dist/cjs/types/internal.types.d.ts +0 -145
  435. package/dist/cjs/utils/errors.d.ts +0 -107
  436. package/dist/cjs/utils/getMaxPriorityFeePerGas.d.ts +0 -2
  437. package/dist/cjs/utils/index.d.ts +0 -5
  438. package/dist/cjs/utils/index.js +0 -21
  439. package/dist/cjs/utils/parseError.d.ts +0 -37
  440. package/dist/cjs/utils/parseError.js +0 -157
  441. package/dist/cjs/utils/utils.d.ts +0 -10
  442. package/dist/cjs/version.d.ts +0 -2
  443. package/dist/connectors.d.ts +0 -8
  444. package/dist/connectors.js +0 -41
  445. package/dist/constants.d.ts +0 -6
  446. package/dist/execution/RouteExecutionManager.d.ts +0 -59
  447. package/dist/execution/RouteExecutionManager.js +0 -195
  448. package/dist/execution/StatusManager.d.ts +0 -67
  449. package/dist/execution/StatusManager.js +0 -167
  450. package/dist/execution/StepExecutionManager.d.ts +0 -7
  451. package/dist/execution/StepExecutionManager.js +0 -265
  452. package/dist/execution/StepExecutor.d.ts +0 -15
  453. package/dist/execution/StepExecutor.js +0 -58
  454. package/dist/execution/checkAllowance.d.ts +0 -4
  455. package/dist/execution/checkBalance.d.ts +0 -2
  456. package/dist/execution/index.d.ts +0 -1
  457. package/dist/execution/index.js +0 -1
  458. package/dist/execution/multisig.d.ts +0 -4
  459. package/dist/execution/prepareRestart.d.ts +0 -3
  460. package/dist/execution/prepareRestart.js +0 -61
  461. package/dist/execution/switchChain.d.ts +0 -21
  462. package/dist/execution/waitForReceivingTransaction.d.ts +0 -3
  463. package/dist/index.d.ts +0 -5
  464. package/dist/index.js +0 -6
  465. package/dist/services/ApiService.d.ts +0 -17
  466. package/dist/services/ApiService.js +0 -321
  467. package/dist/services/ChainsService.d.ts +0 -11
  468. package/dist/services/ChainsService.js +0 -33
  469. package/dist/services/ConfigService.d.ts +0 -23
  470. package/dist/services/ConfigService.js +0 -99
  471. package/dist/typeguards.d.ts +0 -4
  472. package/dist/types/abi.d.ts +0 -5
  473. package/dist/types/index.d.ts +0 -4
  474. package/dist/types/index.js +0 -4
  475. package/dist/types/internal.types.d.ts +0 -145
  476. package/dist/types/internal.types.js +0 -1
  477. package/dist/utils/getMaxPriorityFeePerGas.d.ts +0 -2
  478. package/dist/utils/index.d.ts +0 -5
  479. package/dist/utils/index.js +0 -5
  480. package/dist/utils/median.d.ts +0 -1
  481. package/dist/version.d.ts +0 -2
  482. package/dist/version.js +0 -2
@@ -1,272 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StepExecutionManager = void 0;
7
- const viem_1 = require("viem");
8
- const ApiService_1 = __importDefault(require("../services/ApiService"));
9
- const ChainsService_1 = __importDefault(require("../services/ChainsService"));
10
- const ConfigService_1 = __importDefault(require("../services/ConfigService"));
11
- const utils_1 = require("../utils");
12
- const errors_1 = require("../utils/errors");
13
- const parseError_1 = require("../utils/parseError");
14
- const utils_2 = require("../utils/utils");
15
- const checkAllowance_1 = require("./checkAllowance");
16
- const checkBalance_1 = require("./checkBalance");
17
- const multisig_1 = require("./multisig");
18
- const stepComparison_1 = require("./stepComparison");
19
- const switchChain_1 = require("./switchChain");
20
- const utils_3 = require("./utils");
21
- const waitForReceivingTransaction_1 = require("./waitForReceivingTransaction");
22
- class StepExecutionManager {
23
- constructor() {
24
- this.allowUserInteraction = true;
25
- this.allowInteraction = (value) => {
26
- this.allowUserInteraction = value;
27
- };
28
- this.execute = async ({ walletClient, step, statusManager, settings, }) => {
29
- const client = walletClient.extend(viem_1.publicActions);
30
- const config = ConfigService_1.default.getInstance().getConfig();
31
- const isMultisigWalletClient = !!config.multisig?.isMultisigWalletClient;
32
- const multisigBatchTransactions = [];
33
- const shouldBatchTransactions = config.multisig?.shouldBatchTransactions &&
34
- !!config.multisig.sendBatchTransaction;
35
- step.execution = statusManager.initExecutionObject(step);
36
- const chainsService = ChainsService_1.default.getInstance();
37
- const fromChain = await chainsService.getChainById(step.action.fromChainId);
38
- const toChain = await chainsService.getChainById(step.action.toChainId);
39
- const isBridgeExecution = fromChain.id !== toChain.id;
40
- const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
41
- // STEP 1: Check allowance
42
- const existingProcess = step.execution.process.find((p) => p.type === currentProcessType);
43
- // Check token approval only if fromToken is not the native token => no approval needed in that case
44
- const checkForAllowance = !existingProcess?.txHash &&
45
- !(0, utils_2.isZeroAddress)(step.action.fromToken.address) &&
46
- (shouldBatchTransactions || !isMultisigWalletClient);
47
- if (checkForAllowance) {
48
- const data = await (0, checkAllowance_1.checkAllowance)(client, step, statusManager, settings, fromChain, this.allowUserInteraction, shouldBatchTransactions);
49
- if (data) {
50
- // allowance doesn't need value
51
- const baseTransaction = {
52
- to: step.action.fromToken.address,
53
- data,
54
- };
55
- multisigBatchTransactions.push(baseTransaction);
56
- }
57
- }
58
- // STEP 2: Get transaction
59
- let process = statusManager.findOrCreateProcess(step, currentProcessType);
60
- if (process.status !== 'DONE') {
61
- const multisigProcess = step.execution.process.find((p) => !!p.multisigTxHash);
62
- try {
63
- if (isMultisigWalletClient && multisigProcess) {
64
- const multisigTxHash = multisigProcess.multisigTxHash;
65
- if (!multisigTxHash) {
66
- throw new errors_1.ValidationError('Multisig internal transaction hash is undefined.');
67
- }
68
- await (0, multisig_1.updateMultisigRouteProcess)(multisigTxHash, step, statusManager, process.type, fromChain);
69
- }
70
- let txHash;
71
- if (process.txHash) {
72
- // Make sure that the chain is still correct
73
- const updatedWalletClient = await (0, switchChain_1.switchChain)(walletClient, statusManager, step, settings.switchChainHook, this.allowUserInteraction);
74
- if (!updatedWalletClient) {
75
- // Chain switch was not successful, stop execution here
76
- return step.execution;
77
- }
78
- walletClient = updatedWalletClient;
79
- // Load exiting transaction
80
- txHash = process.txHash;
81
- }
82
- else {
83
- process = statusManager.updateProcess(step, process.type, 'STARTED');
84
- // Check balance
85
- await (0, checkBalance_1.checkBalance)(client.account.address, step);
86
- // Create new transaction
87
- if (!step.transactionRequest) {
88
- const updatedStep = await ApiService_1.default.getStepTransaction(step);
89
- const comparedStep = await (0, stepComparison_1.stepComparison)(statusManager, step, updatedStep, settings, this.allowUserInteraction);
90
- step = {
91
- ...comparedStep,
92
- execution: step.execution,
93
- };
94
- }
95
- if (!step.transactionRequest) {
96
- throw new errors_1.TransactionError(errors_1.LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
97
- }
98
- // STEP 3: Send the transaction
99
- // Make sure that the chain is still correct
100
- const updatedWalletClient = await (0, switchChain_1.switchChain)(walletClient, statusManager, step, settings.switchChainHook, this.allowUserInteraction);
101
- if (!updatedWalletClient) {
102
- // Chain switch was not successful, stop execution here
103
- return step.execution;
104
- }
105
- walletClient = updatedWalletClient;
106
- process = statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
107
- if (!this.allowUserInteraction) {
108
- return step.execution;
109
- }
110
- let transactionRequest = {
111
- to: step.transactionRequest.to,
112
- from: step.transactionRequest.from,
113
- data: step.transactionRequest.data,
114
- value: step.transactionRequest.value
115
- ? BigInt(step.transactionRequest.value)
116
- : undefined,
117
- gas: step.transactionRequest.gasLimit
118
- ? BigInt(step.transactionRequest.gasLimit)
119
- : undefined,
120
- // gasPrice: step.transactionRequest.gasPrice
121
- // ? BigInt(step.transactionRequest.gasPrice as string)
122
- // : undefined,
123
- // maxFeePerGas: step.transactionRequest.maxFeePerGas
124
- // ? BigInt(step.transactionRequest.maxFeePerGas as string)
125
- // : undefined,
126
- maxPriorityFeePerGas: walletClient.account?.type === 'local'
127
- ? await (0, utils_1.getMaxPriorityFeePerGas)(client)
128
- : step.transactionRequest.maxPriorityFeePerGas
129
- ? BigInt(step.transactionRequest.maxPriorityFeePerGas)
130
- : undefined,
131
- };
132
- if (settings.updateTransactionRequestHook) {
133
- const customizedTransactionRequest = await settings.updateTransactionRequestHook({
134
- requestType: 'transaction',
135
- ...transactionRequest,
136
- });
137
- transactionRequest = {
138
- ...transactionRequest,
139
- ...customizedTransactionRequest,
140
- };
141
- }
142
- if (shouldBatchTransactions &&
143
- config.multisig?.sendBatchTransaction) {
144
- if (transactionRequest.to && transactionRequest.data) {
145
- const populatedTransaction = {
146
- value: transactionRequest.value,
147
- to: transactionRequest.to,
148
- data: transactionRequest.data,
149
- };
150
- multisigBatchTransactions.push(populatedTransaction);
151
- txHash = await config.multisig?.sendBatchTransaction(multisigBatchTransactions);
152
- }
153
- else {
154
- throw new errors_1.TransactionError(errors_1.LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
155
- }
156
- }
157
- else {
158
- txHash = await walletClient.sendTransaction({
159
- to: transactionRequest.to,
160
- account: walletClient.account,
161
- data: transactionRequest.data,
162
- gas: transactionRequest.gas,
163
- gasPrice: transactionRequest.gasPrice,
164
- maxFeePerGas: transactionRequest.maxFeePerGas,
165
- maxPriorityFeePerGas: transactionRequest.maxPriorityFeePerGas,
166
- chain: null,
167
- });
168
- }
169
- // STEP 4: Wait for the transaction
170
- if (isMultisigWalletClient) {
171
- process = statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED', {
172
- multisigTxHash: txHash,
173
- });
174
- }
175
- else {
176
- process = statusManager.updateProcess(step, process.type, 'PENDING', {
177
- txHash: txHash,
178
- txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${txHash}`,
179
- });
180
- }
181
- }
182
- let replacementReason;
183
- const transactionReceipt = await client.waitForTransactionReceipt({
184
- hash: txHash,
185
- onReplaced(response) {
186
- replacementReason = response.reason;
187
- statusManager.updateProcess(step, process.type, 'PENDING', {
188
- txHash: response.transaction.hash,
189
- txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.hash}`,
190
- });
191
- },
192
- });
193
- if (replacementReason === 'cancelled') {
194
- throw new errors_1.TransactionError(errors_1.LiFiErrorCode.TransactionCanceled, 'User canceled transaction.');
195
- }
196
- // if it's multisig wallet client and the process is in ACTION_REQUIRED
197
- // then signatures are still needed
198
- if (isMultisigWalletClient && process.status === 'ACTION_REQUIRED') {
199
- await (0, multisig_1.updateMultisigRouteProcess)(transactionReceipt.transactionHash, step, statusManager, process.type, fromChain);
200
- }
201
- if (!isMultisigWalletClient) {
202
- process = statusManager.updateProcess(step, process.type, 'PENDING', {
203
- txHash: transactionReceipt.transactionHash,
204
- txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${transactionReceipt.transactionHash}`,
205
- });
206
- }
207
- if (isBridgeExecution) {
208
- process = statusManager.updateProcess(step, process.type, 'DONE');
209
- }
210
- }
211
- catch (e) {
212
- const error = await (0, parseError_1.parseError)(e, step, process);
213
- process = statusManager.updateProcess(step, process.type, 'FAILED', {
214
- error: {
215
- message: error.message,
216
- htmlMessage: error.htmlMessage,
217
- code: error.code,
218
- },
219
- });
220
- statusManager.updateExecution(step, 'FAILED');
221
- throw error;
222
- }
223
- }
224
- // STEP 5: Wait for the receiving chain
225
- const processTxHash = process.txHash;
226
- if (isBridgeExecution) {
227
- process = statusManager.findOrCreateProcess(step, 'RECEIVING_CHAIN', 'PENDING');
228
- }
229
- let statusResponse;
230
- try {
231
- if (!processTxHash) {
232
- throw new Error('Transaction hash is undefined.');
233
- }
234
- statusResponse = (await (0, waitForReceivingTransaction_1.waitForReceivingTransaction)(processTxHash, statusManager, process.type, step));
235
- const statusReceiving = statusResponse.receiving;
236
- process = statusManager.updateProcess(step, process.type, 'DONE', {
237
- substatus: statusResponse.substatus,
238
- substatusMessage: statusResponse.substatusMessage ||
239
- (0, utils_3.getSubstatusMessage)(statusResponse.status, statusResponse.substatus),
240
- txHash: statusReceiving?.txHash,
241
- txLink: `${toChain.metamask.blockExplorerUrls[0]}tx/${statusReceiving?.txHash}`,
242
- });
243
- statusManager.updateExecution(step, 'DONE', {
244
- fromAmount: statusResponse.sending.amount,
245
- toAmount: statusReceiving?.amount,
246
- toToken: statusReceiving?.token,
247
- gasAmount: statusResponse.sending.gasAmount,
248
- gasAmountUSD: statusResponse.sending.gasAmountUSD,
249
- gasPrice: statusResponse.sending.gasPrice,
250
- gasToken: statusResponse.sending.gasToken,
251
- gasUsed: statusResponse.sending.gasUsed,
252
- });
253
- }
254
- catch (e) {
255
- const htmlMessage = await (0, parseError_1.getTransactionFailedMessage)(step, process.txLink);
256
- process = statusManager.updateProcess(step, process.type, 'FAILED', {
257
- error: {
258
- code: errors_1.LiFiErrorCode.TransactionFailed,
259
- message: 'Failed while waiting for receiving chain.',
260
- htmlMessage,
261
- },
262
- });
263
- statusManager.updateExecution(step, 'FAILED');
264
- console.warn(e);
265
- throw e;
266
- }
267
- // DONE
268
- return step.execution;
269
- };
270
- }
271
- }
272
- exports.StepExecutionManager = StepExecutionManager;
@@ -1,15 +0,0 @@
1
- import type { WalletClient } from 'viem';
2
- import type { InteractionSettings, InternalExecutionSettings, LifiStep } from '../types';
3
- import type { StatusManager } from './StatusManager';
4
- import { StepExecutionManager } from './StepExecutionManager';
5
- export declare class StepExecutor {
6
- stepExecutionManager: StepExecutionManager;
7
- statusManager: StatusManager;
8
- settings: InternalExecutionSettings;
9
- allowUserInteraction: boolean;
10
- executionStopped: boolean;
11
- constructor(statusManager: StatusManager, settings: InternalExecutionSettings);
12
- setInteraction: (settings?: InteractionSettings) => void;
13
- checkChain: () => never;
14
- executeStep: (walletClient: WalletClient, step: LifiStep) => Promise<LifiStep>;
15
- }
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StepExecutor = void 0;
4
- const StepExecutionManager_1 = require("./StepExecutionManager");
5
- const switchChain_1 = require("./switchChain");
6
- // Please be careful when changing the defaults as it may break the behavior (e.g., background execution)
7
- const defaultInteractionSettings = {
8
- allowInteraction: true,
9
- allowUpdates: true,
10
- stopExecution: false,
11
- };
12
- class StepExecutor {
13
- constructor(statusManager, settings) {
14
- this.allowUserInteraction = true;
15
- this.executionStopped = false;
16
- this.setInteraction = (settings) => {
17
- const interactionSettings = {
18
- ...defaultInteractionSettings,
19
- ...settings,
20
- };
21
- this.allowUserInteraction = interactionSettings.allowInteraction;
22
- this.stepExecutionManager.allowInteraction(interactionSettings.allowInteraction);
23
- this.statusManager.allowUpdates(interactionSettings.allowUpdates);
24
- this.executionStopped = interactionSettings.stopExecution;
25
- };
26
- // TODO: add checkChain method and update wallet client inside executors
27
- // This can come in handy when we execute multiple routes simultaneously and
28
- // should be sure that we are on the right chain when waiting for transactions.
29
- this.checkChain = () => {
30
- throw new Error('checkChain is not implemented.');
31
- };
32
- this.executeStep = async (walletClient, step) => {
33
- // Make sure that the chain is still correct
34
- // Find if it's bridging and the step is waiting for a transaction on the receiving chain
35
- const recievingChainProcess = step.execution?.process.find((process) => process.type === 'RECEIVING_CHAIN');
36
- // If the step is waiting for a transaction on the receiving chain, we do not switch the chain
37
- // All changes are already done from the source chain
38
- // Return the step
39
- if (recievingChainProcess?.substatus !== 'WAIT_DESTINATION_TRANSACTION' ||
40
- !recievingChainProcess) {
41
- const updatedWalletClient = await (0, switchChain_1.switchChain)(walletClient, this.statusManager, step, this.settings.switchChainHook, this.allowUserInteraction);
42
- if (!updatedWalletClient) {
43
- // Chain switch was not successful, stop execution here
44
- return step;
45
- }
46
- walletClient = updatedWalletClient;
47
- }
48
- const parameters = {
49
- walletClient,
50
- step,
51
- settings: this.settings,
52
- statusManager: this.statusManager,
53
- };
54
- await this.stepExecutionManager.execute(parameters);
55
- return step;
56
- };
57
- this.stepExecutionManager = new StepExecutionManager_1.StepExecutionManager();
58
- this.statusManager = statusManager;
59
- this.settings = settings;
60
- }
61
- }
62
- exports.StepExecutor = StepExecutor;
@@ -1,4 +0,0 @@
1
- import type { Hash, WalletClient } from 'viem';
2
- import type { StatusManager } from '../execution/StatusManager';
3
- import type { Chain, InternalExecutionSettings, LifiStep } from '../types';
4
- export declare const checkAllowance: (walletClient: WalletClient, step: LifiStep, statusManager: StatusManager, settings: InternalExecutionSettings, chain: Chain, allowUserInteraction?: boolean, shouldBatchTransactions?: boolean) => Promise<Hash | void>;
@@ -1,2 +0,0 @@
1
- import type { LifiStep } from '..';
2
- export declare const checkBalance: (walletAddress: string, step: LifiStep, depth?: number) => Promise<void>;
@@ -1 +0,0 @@
1
- export * from './StatusManager';
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./StatusManager"), exports);
@@ -1,4 +0,0 @@
1
- import type { ExtendedChain, LifiStep, ProcessType } from '@lifi/types';
2
- import type { Hash } from 'viem';
3
- import type { StatusManager } from './StatusManager';
4
- export declare const updateMultisigRouteProcess: (internalTxHash: Hash, step: LifiStep, statusManager: StatusManager, processType: ProcessType, fromChain: ExtendedChain) => Promise<void>;
@@ -1,3 +0,0 @@
1
- import { type WalletClient } from 'viem';
2
- import type { Route } from '../types';
3
- export declare const prepareRestart: (route: Route, walletClient: WalletClient) => Promise<void>;
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.prepareRestart = void 0;
4
- const viem_1 = require("viem");
5
- const errors_1 = require("../utils/errors");
6
- const prepareRestart = async (route, walletClient) => {
7
- for (let index = 0; index < route.steps.length; index++) {
8
- const step = route.steps[index];
9
- const stepHasFailed = step.execution?.status === 'FAILED';
10
- if (stepHasFailed) {
11
- await handleErrorType(walletClient, step);
12
- deleteFailedProcesses(step);
13
- deleteTransactionData(step);
14
- }
15
- }
16
- };
17
- exports.prepareRestart = prepareRestart;
18
- const handleErrorType = async (walletClient, step) => {
19
- const client = walletClient.extend(viem_1.publicActions);
20
- const isGasLimitError = step.execution?.process.some((p) => p.error?.code === errors_1.LiFiErrorCode.GasLimitError);
21
- const isGasPriceError = step.execution?.process.some((p) => p.error?.code === errors_1.LiFiErrorCode.TransactionUnderpriced);
22
- const { transactionRequest } = step;
23
- // if (isGasLimitError) {
24
- // if (transactionRequest) {
25
- // let gasLimit = transactionRequest.gasLimit
26
- // try {
27
- // gasLimit = await client.estimateGas(transactionRequest)
28
- // } catch (error) {}
29
- // if (gasLimit) {
30
- // transactionRequest.gasLimit = BigNumber.from(
31
- // `${(BigInt(gasLimit.toString()) * 125n) / 100n}`
32
- // )
33
- // }
34
- // }
35
- // step.estimate.gasCosts?.forEach(
36
- // (gasCost) =>
37
- // (gasCost.limit = `${Math.round(Number(gasCost.limit) * 1.25)}`)
38
- // )
39
- // }
40
- // if (isGasPriceError) {
41
- // if (transactionRequest) {
42
- // let gasPrice = transactionRequest.gasPrice
43
- // try {
44
- // gasPrice = await client.getGasPrice()
45
- // } catch (error) {}
46
- // if (gasPrice) {
47
- // transactionRequest.gasPrice = BigNumber.from(
48
- // `${(BigInt(gasPrice.toString()) * 125n) / 100n}`
49
- // )
50
- // }
51
- // }
52
- // step.estimate.gasCosts?.forEach(
53
- // (gasCost) =>
54
- // (gasCost.price = `${Math.round(Number(gasCost.price) * 1.25)}`)
55
- // )
56
- // }
57
- };
58
- const deleteFailedProcesses = (step) => {
59
- if (step.execution) {
60
- step.execution.process = step.execution.process.filter((process) => process.status === 'DONE');
61
- }
62
- };
63
- const deleteTransactionData = (step) => {
64
- step.transactionRequest = undefined;
65
- };
@@ -1,14 +0,0 @@
1
- import type { InternalExecutionSettings, LifiStep } from '../types';
2
- import type { StatusManager } from './StatusManager';
3
- /**
4
- * This method checks whether the new and updated Step meets the required exchange rate conditions.
5
- * If yes it returns the updated Step.
6
- * If no and if user interaction is allowed it triggers the acceptExchangeRateUpdateHook. If no user interaction is allowed it aborts.
7
- * @param statusManager
8
- * @param oldStep
9
- * @param newStep
10
- * @param settings
11
- * @param allowUserInteraction
12
- * @returns Return LifiStep
13
- */
14
- export declare const stepComparison: (statusManager: StatusManager, oldStep: LifiStep, newStep: LifiStep, settings: InternalExecutionSettings, allowUserInteraction: boolean) => Promise<LifiStep>;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stepComparison = void 0;
4
- const errors_1 = require("../utils/errors");
5
- const utils_1 = require("./utils");
6
- /**
7
- * This method checks whether the new and updated Step meets the required exchange rate conditions.
8
- * If yes it returns the updated Step.
9
- * If no and if user interaction is allowed it triggers the acceptExchangeRateUpdateHook. If no user interaction is allowed it aborts.
10
- * @param statusManager
11
- * @param oldStep
12
- * @param newStep
13
- * @param settings
14
- * @param allowUserInteraction
15
- * @returns Return LifiStep
16
- */
17
- const stepComparison = async (statusManager, oldStep, newStep, settings, allowUserInteraction) => {
18
- // Check if changed exchange rate is in the range of slippage threshold
19
- if ((0, utils_1.checkStepSlippageThreshold)(oldStep, newStep)) {
20
- return statusManager.updateStepInRoute(newStep);
21
- }
22
- let allowStepUpdate;
23
- if (allowUserInteraction) {
24
- allowStepUpdate = await settings.acceptExchangeRateUpdateHook({
25
- oldToAmount: oldStep.estimate.toAmount,
26
- newToAmount: newStep.estimate.toAmount,
27
- toToken: newStep.action.toToken,
28
- });
29
- }
30
- if (!allowStepUpdate) {
31
- // The user declined the new exchange rate, so we are not going to proceed
32
- throw new errors_1.TransactionError(errors_1.LiFiErrorCode.ExchangeRateUpdateCanceled, 'Exchange rate has changed!', `Transaction was not sent, your funds are still in your wallet.
33
- The exchange rate has changed and the previous estimation can not be fulfilled due to value loss.`);
34
- }
35
- return statusManager.updateStepInRoute(newStep);
36
- };
37
- exports.stepComparison = stepComparison;
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.switchChain = void 0;
4
- const errors_1 = require("../utils/errors");
5
- /**
6
- * This method checks whether the wallet client is configured for the correct chain.
7
- * If yes it returns the wallet clien.
8
- * If no and if user interaction is allowed it triggers the switchChainHook. If no user interaction is allowed it aborts.
9
- *
10
- * Account Type: local -
11
- * We need to create and return a new WalletClient from the switchChainHook in order to continue execution on a new chain.
12
- *
13
- * Account Type: json-rpc -
14
- * We can switch chain and return existing WalletClient from the switchChainHook in order to continue execution on a new chain.
15
- * @param walletClient
16
- * @param statusManager
17
- * @param step
18
- * @param switchChainHook
19
- * @param allowUserInteraction
20
- */
21
- const switchChain = async (walletClient, statusManager, step, switchChainHook, allowUserInteraction) => {
22
- // if we are already on the correct chain we can proceed directly
23
- if ((await walletClient.getChainId()) === step.action.fromChainId) {
24
- return walletClient;
25
- }
26
- // -> set status message
27
- step.execution = statusManager.initExecutionObject(step);
28
- statusManager.updateExecution(step, 'ACTION_REQUIRED');
29
- let switchProcess = statusManager.findOrCreateProcess(step, 'SWITCH_CHAIN', 'ACTION_REQUIRED');
30
- if (!allowUserInteraction) {
31
- return;
32
- }
33
- try {
34
- const updatedWalletClient = await switchChainHook(step.action.fromChainId);
35
- const updatedChainId = await updatedWalletClient?.getChainId();
36
- if (updatedChainId !== step.action.fromChainId) {
37
- throw new errors_1.ProviderError(errors_1.LiFiErrorCode.ChainSwitchError, 'Chain switch required.');
38
- }
39
- switchProcess = statusManager.updateProcess(step, switchProcess.type, 'DONE');
40
- statusManager.updateExecution(step, 'PENDING');
41
- return updatedWalletClient;
42
- }
43
- catch (error) {
44
- statusManager.updateProcess(step, switchProcess.type, 'FAILED', {
45
- error: {
46
- message: error.message,
47
- code: errors_1.LiFiErrorCode.ChainSwitchError,
48
- },
49
- });
50
- statusManager.updateExecution(step, 'FAILED');
51
- throw error;
52
- }
53
- };
54
- exports.switchChain = switchChain;
@@ -1,12 +0,0 @@
1
- import type { LifiStep, ProcessType, Status, StatusMessage, Substatus } from '@lifi/types';
2
- export declare function getProcessMessage(type: ProcessType, status: Status): string | undefined;
3
- export declare function getSubstatusMessage(status: StatusMessage, substatus?: Substatus): string | undefined;
4
- /**
5
- * Used to check if changed exchange rate is in the range of slippage threshold.
6
- * We use a slippage value as a threshold to trigger the rate change hook.
7
- * This can result in almost doubled slippage for the user and need to be revisited.
8
- * @param oldStep
9
- * @param newStep
10
- * @returns Boolean
11
- */
12
- export declare function checkStepSlippageThreshold(oldStep: LifiStep, newStep: LifiStep): boolean;
@@ -1,3 +0,0 @@
1
- import type { LifiStep, ProcessType, StatusResponse } from '@lifi/types';
2
- import type { StatusManager } from '..';
3
- export declare function waitForReceivingTransaction(txHash: string, statusManager: StatusManager, processType: ProcessType, step: LifiStep): Promise<StatusResponse>;
@@ -1,18 +0,0 @@
1
- import type { LifiStep, Route } from '@lifi/types';
2
- import type { TenderlyResponse } from './types';
3
- /**
4
- * Returns a random number between min (inclusive) and max (inclusive)
5
- * @param min - minimum number.
6
- * @param max - maximum number.
7
- * @returns - random number.
8
- */
9
- export declare const getRandomNumber: (min: number, max: number) => number;
10
- export declare const checkPackageUpdates: (packageName?: string, packageVersion?: string, disableCheck?: boolean) => Promise<void>;
11
- /**
12
- * Converts a quote to Route
13
- * @param step - Step returned from the quote endpoint.
14
- * @returns - The route to be executed.
15
- * @throws {ValidationError} Throws a ValidationError if the step has missing values.
16
- */
17
- export declare const convertQuoteToRoute: (step: LifiStep) => Route;
18
- export declare const fetchTxErrorDetails: (txHash: string, chainId: number) => Promise<TenderlyResponse>;