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

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 (485) hide show
  1. package/dist/_cjs/config.js.map +1 -0
  2. package/dist/_cjs/constants.js.map +1 -0
  3. package/dist/_cjs/core/BaseStepExecutor.js.map +1 -0
  4. package/dist/_cjs/core/EVM/EVM.js.map +1 -0
  5. package/dist/_cjs/core/EVM/EVMStepExecutor.js.map +1 -0
  6. package/dist/_cjs/core/EVM/abi.js.map +1 -0
  7. package/dist/_cjs/core/EVM/checkAllowance.js.map +1 -0
  8. package/dist/_cjs/core/EVM/getAllowance.js.map +1 -0
  9. package/dist/_cjs/core/EVM/getEVMBalance.js.map +1 -0
  10. package/dist/_cjs/core/EVM/multisig.js.map +1 -0
  11. package/dist/_cjs/core/EVM/publicClient.js.map +1 -0
  12. package/dist/_cjs/core/EVM/setAllowance.js.map +1 -0
  13. package/dist/_cjs/core/EVM/switchChain.js.map +1 -0
  14. package/dist/_cjs/core/EVM/types.js.map +1 -0
  15. package/dist/_cjs/core/EVM/utils.js.map +1 -0
  16. package/dist/_cjs/core/Solana/Solana.js.map +1 -0
  17. package/dist/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -0
  18. package/dist/_cjs/core/Solana/connection.js.map +1 -0
  19. package/dist/_cjs/core/Solana/getSolanaBalance.js.map +1 -0
  20. package/dist/_cjs/core/Solana/types.js.map +1 -0
  21. package/dist/_cjs/core/StatusManager.js.map +1 -0
  22. package/dist/_cjs/core/checkBalance.js.map +1 -0
  23. package/dist/_cjs/core/execution.js.map +1 -0
  24. package/dist/_cjs/core/executionState.js.map +1 -0
  25. package/dist/_cjs/core/index.js.map +1 -0
  26. package/dist/_cjs/core/prepareRestart.js.map +1 -0
  27. package/dist/_cjs/core/provider.js.map +1 -0
  28. package/dist/_cjs/core/stepComparison.js.map +1 -0
  29. package/dist/_cjs/core/types.js.map +1 -0
  30. package/dist/_cjs/core/utils.js.map +1 -0
  31. package/dist/_cjs/core/waitForReceivingTransaction.js.map +1 -0
  32. package/dist/_cjs/createConfig.js.map +1 -0
  33. package/dist/_cjs/helpers.js.map +1 -0
  34. package/dist/_cjs/index.js.map +1 -0
  35. package/dist/_cjs/request.js.map +1 -0
  36. package/dist/_cjs/services/api.js.map +1 -0
  37. package/dist/_cjs/services/balance.js.map +1 -0
  38. package/dist/_cjs/typeguards.js.map +1 -0
  39. package/dist/_cjs/types/index.js.map +1 -0
  40. package/dist/_cjs/types/internal.js.map +1 -0
  41. package/dist/_cjs/utils/errors.js.map +1 -0
  42. package/dist/_cjs/utils/getTransactionMessage.js.map +1 -0
  43. package/dist/_cjs/utils/index.js.map +1 -0
  44. package/dist/_cjs/utils/median.js.map +1 -0
  45. package/dist/_cjs/utils/parseBackendError.js.map +1 -0
  46. package/dist/_cjs/utils/parseError.js.map +1 -0
  47. package/dist/_cjs/utils/utils.js.map +1 -0
  48. package/dist/{cjs → _cjs}/version.js +1 -1
  49. package/dist/_cjs/version.js.map +1 -0
  50. package/dist/_esm/config.js.map +1 -0
  51. package/dist/_esm/constants.js.map +1 -0
  52. package/dist/_esm/core/BaseStepExecutor.js.map +1 -0
  53. package/dist/_esm/core/EVM/EVM.js.map +1 -0
  54. package/dist/_esm/core/EVM/EVMStepExecutor.js.map +1 -0
  55. package/dist/_esm/core/EVM/abi.js.map +1 -0
  56. package/dist/_esm/core/EVM/checkAllowance.js.map +1 -0
  57. package/dist/_esm/core/EVM/getAllowance.js.map +1 -0
  58. package/dist/_esm/core/EVM/getEVMBalance.js.map +1 -0
  59. package/dist/_esm/core/EVM/multisig.js.map +1 -0
  60. package/dist/_esm/core/EVM/publicClient.js.map +1 -0
  61. package/dist/_esm/core/EVM/setAllowance.js.map +1 -0
  62. package/dist/_esm/core/EVM/switchChain.js.map +1 -0
  63. package/dist/_esm/core/EVM/types.js.map +1 -0
  64. package/dist/_esm/core/EVM/utils.js.map +1 -0
  65. package/dist/_esm/core/Solana/Solana.js.map +1 -0
  66. package/dist/_esm/core/Solana/SolanaStepExecutor.js.map +1 -0
  67. package/dist/_esm/core/Solana/connection.js.map +1 -0
  68. package/dist/_esm/core/Solana/getSolanaBalance.js.map +1 -0
  69. package/dist/_esm/core/Solana/types.js.map +1 -0
  70. package/dist/_esm/core/StatusManager.js.map +1 -0
  71. package/dist/_esm/core/checkBalance.js.map +1 -0
  72. package/dist/_esm/core/execution.js.map +1 -0
  73. package/dist/_esm/core/executionState.js.map +1 -0
  74. package/dist/_esm/core/index.js.map +1 -0
  75. package/dist/_esm/core/prepareRestart.js.map +1 -0
  76. package/dist/_esm/core/provider.js.map +1 -0
  77. package/dist/_esm/core/stepComparison.js.map +1 -0
  78. package/dist/_esm/core/types.js.map +1 -0
  79. package/dist/_esm/core/utils.js.map +1 -0
  80. package/dist/_esm/core/waitForReceivingTransaction.js.map +1 -0
  81. package/dist/_esm/createConfig.js.map +1 -0
  82. package/dist/_esm/helpers.js.map +1 -0
  83. package/dist/_esm/index.js.map +1 -0
  84. package/dist/_esm/request.js.map +1 -0
  85. package/dist/_esm/services/api.js.map +1 -0
  86. package/dist/_esm/services/balance.js.map +1 -0
  87. package/dist/_esm/typeguards.js.map +1 -0
  88. package/dist/_esm/types/index.js.map +1 -0
  89. package/dist/_esm/types/internal.js.map +1 -0
  90. package/dist/_esm/utils/errors.js.map +1 -0
  91. package/dist/_esm/utils/getTransactionMessage.js.map +1 -0
  92. package/dist/_esm/utils/index.js.map +1 -0
  93. package/dist/_esm/utils/median.js.map +1 -0
  94. package/dist/_esm/utils/parseBackendError.js.map +1 -0
  95. package/dist/_esm/utils/parseError.js.map +1 -0
  96. package/dist/_esm/utils/utils.js.map +1 -0
  97. package/dist/_esm/version.js +3 -0
  98. package/dist/_esm/version.js.map +1 -0
  99. package/dist/_types/config.d.ts.map +1 -0
  100. package/dist/_types/constants.d.ts.map +1 -0
  101. package/dist/_types/core/BaseStepExecutor.d.ts.map +1 -0
  102. package/dist/_types/core/EVM/EVM.d.ts.map +1 -0
  103. package/dist/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -0
  104. package/dist/_types/core/EVM/abi.d.ts.map +1 -0
  105. package/dist/_types/core/EVM/checkAllowance.d.ts.map +1 -0
  106. package/dist/_types/core/EVM/getAllowance.d.ts.map +1 -0
  107. package/dist/_types/core/EVM/getEVMBalance.d.ts.map +1 -0
  108. package/dist/_types/core/EVM/multisig.d.ts.map +1 -0
  109. package/dist/_types/core/EVM/publicClient.d.ts.map +1 -0
  110. package/dist/_types/core/EVM/setAllowance.d.ts.map +1 -0
  111. package/dist/_types/core/EVM/switchChain.d.ts.map +1 -0
  112. package/dist/_types/core/EVM/types.d.ts.map +1 -0
  113. package/dist/_types/core/EVM/utils.d.ts.map +1 -0
  114. package/dist/_types/core/Solana/Solana.d.ts.map +1 -0
  115. package/dist/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -0
  116. package/dist/_types/core/Solana/connection.d.ts.map +1 -0
  117. package/dist/_types/core/Solana/getSolanaBalance.d.ts.map +1 -0
  118. package/dist/_types/core/Solana/types.d.ts.map +1 -0
  119. package/dist/_types/core/StatusManager.d.ts.map +1 -0
  120. package/dist/_types/core/checkBalance.d.ts.map +1 -0
  121. package/dist/_types/core/execution.d.ts.map +1 -0
  122. package/dist/_types/core/executionState.d.ts.map +1 -0
  123. package/dist/_types/core/index.d.ts.map +1 -0
  124. package/dist/_types/core/prepareRestart.d.ts.map +1 -0
  125. package/dist/_types/core/provider.d.ts.map +1 -0
  126. package/dist/_types/core/stepComparison.d.ts.map +1 -0
  127. package/dist/_types/core/types.d.ts.map +1 -0
  128. package/dist/_types/core/utils.d.ts.map +1 -0
  129. package/dist/_types/core/waitForReceivingTransaction.d.ts.map +1 -0
  130. package/dist/_types/createConfig.d.ts.map +1 -0
  131. package/dist/_types/helpers.d.ts.map +1 -0
  132. package/dist/_types/index.d.ts.map +1 -0
  133. package/dist/_types/request.d.ts.map +1 -0
  134. package/dist/_types/services/api.d.ts.map +1 -0
  135. package/dist/_types/services/balance.d.ts.map +1 -0
  136. package/dist/_types/typeguards.d.ts.map +1 -0
  137. package/dist/_types/types/index.d.ts.map +1 -0
  138. package/dist/_types/types/internal.d.ts.map +1 -0
  139. package/dist/_types/utils/errors.d.ts.map +1 -0
  140. package/dist/_types/utils/getTransactionMessage.d.ts.map +1 -0
  141. package/dist/_types/utils/index.d.ts.map +1 -0
  142. package/dist/_types/utils/median.d.ts.map +1 -0
  143. package/dist/_types/utils/parseBackendError.d.ts.map +1 -0
  144. package/dist/_types/utils/parseError.d.ts.map +1 -0
  145. package/dist/_types/utils/utils.d.ts.map +1 -0
  146. package/dist/_types/version.d.ts +3 -0
  147. package/dist/_types/version.d.ts.map +1 -0
  148. package/dist/config.ts +47 -0
  149. package/dist/constants.ts +7 -0
  150. package/dist/core/BaseStepExecutor.ts +40 -0
  151. package/dist/core/EVM/EVM.ts +50 -0
  152. package/dist/core/EVM/EVMStepExecutor.ts +472 -0
  153. package/dist/core/EVM/abi.ts +47 -0
  154. package/dist/core/EVM/checkAllowance.ts +152 -0
  155. package/dist/core/EVM/getAllowance.ts +146 -0
  156. package/dist/core/EVM/getEVMBalance.ts +120 -0
  157. package/dist/core/EVM/multisig.ts +53 -0
  158. package/dist/core/EVM/publicClient.ts +46 -0
  159. package/dist/core/EVM/setAllowance.ts +144 -0
  160. package/dist/core/EVM/switchChain.ts +77 -0
  161. package/dist/core/EVM/types.ts +75 -0
  162. package/dist/core/EVM/utils.ts +43 -0
  163. package/dist/core/Solana/Solana.ts +46 -0
  164. package/dist/core/Solana/SolanaStepExecutor.ts +253 -0
  165. package/dist/core/Solana/connection.ts +19 -0
  166. package/dist/core/Solana/getSolanaBalance.ts +62 -0
  167. package/dist/core/Solana/types.ts +18 -0
  168. package/dist/core/StatusManager.ts +238 -0
  169. package/dist/core/checkBalance.ts +48 -0
  170. package/dist/core/execution.ts +218 -0
  171. package/dist/core/executionState.ts +40 -0
  172. package/dist/core/index.ts +3 -0
  173. package/dist/core/prepareRestart.ts +81 -0
  174. package/dist/core/provider.ts +12 -0
  175. package/dist/core/stepComparison.ts +51 -0
  176. package/dist/core/types.ts +103 -0
  177. package/dist/core/utils.ts +122 -0
  178. package/dist/core/waitForReceivingTransaction.ts +73 -0
  179. package/dist/createConfig.ts +54 -0
  180. package/dist/helpers.ts +97 -0
  181. package/dist/index.ts +11 -0
  182. package/dist/request.ts +79 -0
  183. package/dist/services/api.ts +472 -0
  184. package/dist/services/balance.ts +93 -0
  185. package/dist/typeguards.ts +89 -0
  186. package/dist/types/index.ts +1 -0
  187. package/dist/types/internal.ts +58 -0
  188. package/dist/utils/errors.ts +231 -0
  189. package/dist/utils/getTransactionMessage.ts +46 -0
  190. package/dist/utils/index.ts +5 -0
  191. package/dist/utils/median.ts +11 -0
  192. package/dist/utils/parseBackendError.ts +50 -0
  193. package/dist/utils/parseError.ts +204 -0
  194. package/dist/utils/utils.ts +48 -0
  195. package/dist/version.ts +2 -0
  196. package/package.json +8 -8
  197. package/dist/cjs/config.js.map +0 -1
  198. package/dist/cjs/constants.js.map +0 -1
  199. package/dist/cjs/core/BaseStepExecutor.js.map +0 -1
  200. package/dist/cjs/core/EVM/EVM.js.map +0 -1
  201. package/dist/cjs/core/EVM/EVMStepExecutor.js.map +0 -1
  202. package/dist/cjs/core/EVM/abi.js.map +0 -1
  203. package/dist/cjs/core/EVM/checkAllowance.js.map +0 -1
  204. package/dist/cjs/core/EVM/getAllowance.js.map +0 -1
  205. package/dist/cjs/core/EVM/getEVMBalance.js.map +0 -1
  206. package/dist/cjs/core/EVM/multisig.js.map +0 -1
  207. package/dist/cjs/core/EVM/publicClient.js.map +0 -1
  208. package/dist/cjs/core/EVM/setAllowance.js.map +0 -1
  209. package/dist/cjs/core/EVM/switchChain.js.map +0 -1
  210. package/dist/cjs/core/EVM/types.js.map +0 -1
  211. package/dist/cjs/core/EVM/utils.js.map +0 -1
  212. package/dist/cjs/core/Solana/Solana.js.map +0 -1
  213. package/dist/cjs/core/Solana/SolanaStepExecutor.js.map +0 -1
  214. package/dist/cjs/core/Solana/connection.js.map +0 -1
  215. package/dist/cjs/core/Solana/getSolanaBalance.js.map +0 -1
  216. package/dist/cjs/core/Solana/types.js.map +0 -1
  217. package/dist/cjs/core/StatusManager.js.map +0 -1
  218. package/dist/cjs/core/checkBalance.js.map +0 -1
  219. package/dist/cjs/core/execution.js.map +0 -1
  220. package/dist/cjs/core/executionState.js.map +0 -1
  221. package/dist/cjs/core/index.js.map +0 -1
  222. package/dist/cjs/core/prepareRestart.js.map +0 -1
  223. package/dist/cjs/core/provider.js.map +0 -1
  224. package/dist/cjs/core/stepComparison.js.map +0 -1
  225. package/dist/cjs/core/types.js.map +0 -1
  226. package/dist/cjs/core/utils.js.map +0 -1
  227. package/dist/cjs/core/waitForReceivingTransaction.js.map +0 -1
  228. package/dist/cjs/createConfig.js.map +0 -1
  229. package/dist/cjs/helpers.js.map +0 -1
  230. package/dist/cjs/index.js.map +0 -1
  231. package/dist/cjs/request.js.map +0 -1
  232. package/dist/cjs/services/api.js.map +0 -1
  233. package/dist/cjs/services/balance.js.map +0 -1
  234. package/dist/cjs/typeguards.js.map +0 -1
  235. package/dist/cjs/types/index.js.map +0 -1
  236. package/dist/cjs/types/internal.js.map +0 -1
  237. package/dist/cjs/utils/errors.js.map +0 -1
  238. package/dist/cjs/utils/getTransactionMessage.js.map +0 -1
  239. package/dist/cjs/utils/index.js.map +0 -1
  240. package/dist/cjs/utils/median.js.map +0 -1
  241. package/dist/cjs/utils/parseBackendError.js.map +0 -1
  242. package/dist/cjs/utils/parseError.js.map +0 -1
  243. package/dist/cjs/utils/utils.js.map +0 -1
  244. package/dist/cjs/version.js.map +0 -1
  245. package/dist/esm/config.js.map +0 -1
  246. package/dist/esm/constants.js.map +0 -1
  247. package/dist/esm/core/BaseStepExecutor.js.map +0 -1
  248. package/dist/esm/core/EVM/EVM.js.map +0 -1
  249. package/dist/esm/core/EVM/EVMStepExecutor.js.map +0 -1
  250. package/dist/esm/core/EVM/abi.js.map +0 -1
  251. package/dist/esm/core/EVM/checkAllowance.js.map +0 -1
  252. package/dist/esm/core/EVM/getAllowance.js.map +0 -1
  253. package/dist/esm/core/EVM/getEVMBalance.js.map +0 -1
  254. package/dist/esm/core/EVM/multisig.js.map +0 -1
  255. package/dist/esm/core/EVM/publicClient.js.map +0 -1
  256. package/dist/esm/core/EVM/setAllowance.js.map +0 -1
  257. package/dist/esm/core/EVM/switchChain.js.map +0 -1
  258. package/dist/esm/core/EVM/types.js.map +0 -1
  259. package/dist/esm/core/EVM/utils.js.map +0 -1
  260. package/dist/esm/core/Solana/Solana.js.map +0 -1
  261. package/dist/esm/core/Solana/SolanaStepExecutor.js.map +0 -1
  262. package/dist/esm/core/Solana/connection.js.map +0 -1
  263. package/dist/esm/core/Solana/getSolanaBalance.js.map +0 -1
  264. package/dist/esm/core/Solana/types.js.map +0 -1
  265. package/dist/esm/core/StatusManager.js.map +0 -1
  266. package/dist/esm/core/checkBalance.js.map +0 -1
  267. package/dist/esm/core/execution.js.map +0 -1
  268. package/dist/esm/core/executionState.js.map +0 -1
  269. package/dist/esm/core/index.js.map +0 -1
  270. package/dist/esm/core/prepareRestart.js.map +0 -1
  271. package/dist/esm/core/provider.js.map +0 -1
  272. package/dist/esm/core/stepComparison.js.map +0 -1
  273. package/dist/esm/core/types.js.map +0 -1
  274. package/dist/esm/core/utils.js.map +0 -1
  275. package/dist/esm/core/waitForReceivingTransaction.js.map +0 -1
  276. package/dist/esm/createConfig.js.map +0 -1
  277. package/dist/esm/helpers.js.map +0 -1
  278. package/dist/esm/index.js.map +0 -1
  279. package/dist/esm/request.js.map +0 -1
  280. package/dist/esm/services/api.js.map +0 -1
  281. package/dist/esm/services/balance.js.map +0 -1
  282. package/dist/esm/typeguards.js.map +0 -1
  283. package/dist/esm/types/index.js.map +0 -1
  284. package/dist/esm/types/internal.js.map +0 -1
  285. package/dist/esm/utils/errors.js.map +0 -1
  286. package/dist/esm/utils/getTransactionMessage.js.map +0 -1
  287. package/dist/esm/utils/index.js.map +0 -1
  288. package/dist/esm/utils/median.js.map +0 -1
  289. package/dist/esm/utils/parseBackendError.js.map +0 -1
  290. package/dist/esm/utils/parseError.js.map +0 -1
  291. package/dist/esm/utils/utils.js.map +0 -1
  292. package/dist/esm/version.js +0 -3
  293. package/dist/esm/version.js.map +0 -1
  294. package/dist/types/config.d.ts.map +0 -1
  295. package/dist/types/constants.d.ts.map +0 -1
  296. package/dist/types/core/BaseStepExecutor.d.ts.map +0 -1
  297. package/dist/types/core/EVM/EVM.d.ts.map +0 -1
  298. package/dist/types/core/EVM/EVMStepExecutor.d.ts.map +0 -1
  299. package/dist/types/core/EVM/abi.d.ts.map +0 -1
  300. package/dist/types/core/EVM/checkAllowance.d.ts.map +0 -1
  301. package/dist/types/core/EVM/getAllowance.d.ts.map +0 -1
  302. package/dist/types/core/EVM/getEVMBalance.d.ts.map +0 -1
  303. package/dist/types/core/EVM/multisig.d.ts.map +0 -1
  304. package/dist/types/core/EVM/publicClient.d.ts.map +0 -1
  305. package/dist/types/core/EVM/setAllowance.d.ts.map +0 -1
  306. package/dist/types/core/EVM/switchChain.d.ts.map +0 -1
  307. package/dist/types/core/EVM/types.d.ts.map +0 -1
  308. package/dist/types/core/EVM/utils.d.ts.map +0 -1
  309. package/dist/types/core/Solana/Solana.d.ts.map +0 -1
  310. package/dist/types/core/Solana/SolanaStepExecutor.d.ts.map +0 -1
  311. package/dist/types/core/Solana/connection.d.ts.map +0 -1
  312. package/dist/types/core/Solana/getSolanaBalance.d.ts.map +0 -1
  313. package/dist/types/core/Solana/types.d.ts.map +0 -1
  314. package/dist/types/core/StatusManager.d.ts.map +0 -1
  315. package/dist/types/core/checkBalance.d.ts.map +0 -1
  316. package/dist/types/core/execution.d.ts.map +0 -1
  317. package/dist/types/core/executionState.d.ts.map +0 -1
  318. package/dist/types/core/index.d.ts.map +0 -1
  319. package/dist/types/core/prepareRestart.d.ts.map +0 -1
  320. package/dist/types/core/provider.d.ts.map +0 -1
  321. package/dist/types/core/stepComparison.d.ts.map +0 -1
  322. package/dist/types/core/types.d.ts.map +0 -1
  323. package/dist/types/core/utils.d.ts.map +0 -1
  324. package/dist/types/core/waitForReceivingTransaction.d.ts.map +0 -1
  325. package/dist/types/createConfig.d.ts.map +0 -1
  326. package/dist/types/helpers.d.ts.map +0 -1
  327. package/dist/types/index.d.ts.map +0 -1
  328. package/dist/types/request.d.ts.map +0 -1
  329. package/dist/types/services/api.d.ts.map +0 -1
  330. package/dist/types/services/balance.d.ts.map +0 -1
  331. package/dist/types/typeguards.d.ts.map +0 -1
  332. package/dist/types/types/index.d.ts.map +0 -1
  333. package/dist/types/types/internal.d.ts.map +0 -1
  334. package/dist/types/utils/errors.d.ts.map +0 -1
  335. package/dist/types/utils/getTransactionMessage.d.ts.map +0 -1
  336. package/dist/types/utils/index.d.ts.map +0 -1
  337. package/dist/types/utils/median.d.ts.map +0 -1
  338. package/dist/types/utils/parseBackendError.d.ts.map +0 -1
  339. package/dist/types/utils/parseError.d.ts.map +0 -1
  340. package/dist/types/utils/utils.d.ts.map +0 -1
  341. package/dist/types/version.d.ts +0 -3
  342. package/dist/types/version.d.ts.map +0 -1
  343. /package/dist/{cjs → _cjs}/config.js +0 -0
  344. /package/dist/{cjs → _cjs}/constants.js +0 -0
  345. /package/dist/{cjs → _cjs}/core/BaseStepExecutor.js +0 -0
  346. /package/dist/{cjs → _cjs}/core/EVM/EVM.js +0 -0
  347. /package/dist/{cjs → _cjs}/core/EVM/EVMStepExecutor.js +0 -0
  348. /package/dist/{cjs → _cjs}/core/EVM/abi.js +0 -0
  349. /package/dist/{cjs → _cjs}/core/EVM/checkAllowance.js +0 -0
  350. /package/dist/{cjs → _cjs}/core/EVM/getAllowance.js +0 -0
  351. /package/dist/{cjs → _cjs}/core/EVM/getEVMBalance.js +0 -0
  352. /package/dist/{cjs → _cjs}/core/EVM/multisig.js +0 -0
  353. /package/dist/{cjs → _cjs}/core/EVM/publicClient.js +0 -0
  354. /package/dist/{cjs → _cjs}/core/EVM/setAllowance.js +0 -0
  355. /package/dist/{cjs → _cjs}/core/EVM/switchChain.js +0 -0
  356. /package/dist/{cjs → _cjs}/core/EVM/types.js +0 -0
  357. /package/dist/{cjs → _cjs}/core/EVM/utils.js +0 -0
  358. /package/dist/{cjs → _cjs}/core/Solana/Solana.js +0 -0
  359. /package/dist/{cjs → _cjs}/core/Solana/SolanaStepExecutor.js +0 -0
  360. /package/dist/{cjs → _cjs}/core/Solana/connection.js +0 -0
  361. /package/dist/{cjs → _cjs}/core/Solana/getSolanaBalance.js +0 -0
  362. /package/dist/{cjs → _cjs}/core/Solana/types.js +0 -0
  363. /package/dist/{cjs → _cjs}/core/StatusManager.js +0 -0
  364. /package/dist/{cjs → _cjs}/core/checkBalance.js +0 -0
  365. /package/dist/{cjs → _cjs}/core/execution.js +0 -0
  366. /package/dist/{cjs → _cjs}/core/executionState.js +0 -0
  367. /package/dist/{cjs → _cjs}/core/index.js +0 -0
  368. /package/dist/{cjs → _cjs}/core/prepareRestart.js +0 -0
  369. /package/dist/{cjs → _cjs}/core/provider.js +0 -0
  370. /package/dist/{cjs → _cjs}/core/stepComparison.js +0 -0
  371. /package/dist/{cjs → _cjs}/core/types.js +0 -0
  372. /package/dist/{cjs → _cjs}/core/utils.js +0 -0
  373. /package/dist/{cjs → _cjs}/core/waitForReceivingTransaction.js +0 -0
  374. /package/dist/{cjs → _cjs}/createConfig.js +0 -0
  375. /package/dist/{cjs → _cjs}/helpers.js +0 -0
  376. /package/dist/{cjs → _cjs}/index.js +0 -0
  377. /package/dist/{cjs → _cjs}/package.json +0 -0
  378. /package/dist/{cjs → _cjs}/request.js +0 -0
  379. /package/dist/{cjs → _cjs}/services/api.js +0 -0
  380. /package/dist/{cjs → _cjs}/services/balance.js +0 -0
  381. /package/dist/{cjs → _cjs}/typeguards.js +0 -0
  382. /package/dist/{cjs → _cjs}/types/index.js +0 -0
  383. /package/dist/{cjs → _cjs}/types/internal.js +0 -0
  384. /package/dist/{cjs → _cjs}/utils/errors.js +0 -0
  385. /package/dist/{cjs → _cjs}/utils/getTransactionMessage.js +0 -0
  386. /package/dist/{cjs → _cjs}/utils/index.js +0 -0
  387. /package/dist/{cjs → _cjs}/utils/median.js +0 -0
  388. /package/dist/{cjs → _cjs}/utils/parseBackendError.js +0 -0
  389. /package/dist/{cjs → _cjs}/utils/parseError.js +0 -0
  390. /package/dist/{cjs → _cjs}/utils/utils.js +0 -0
  391. /package/dist/{esm → _esm}/config.js +0 -0
  392. /package/dist/{esm → _esm}/constants.js +0 -0
  393. /package/dist/{esm → _esm}/core/BaseStepExecutor.js +0 -0
  394. /package/dist/{esm → _esm}/core/EVM/EVM.js +0 -0
  395. /package/dist/{esm → _esm}/core/EVM/EVMStepExecutor.js +0 -0
  396. /package/dist/{esm → _esm}/core/EVM/abi.js +0 -0
  397. /package/dist/{esm → _esm}/core/EVM/checkAllowance.js +0 -0
  398. /package/dist/{esm → _esm}/core/EVM/getAllowance.js +0 -0
  399. /package/dist/{esm → _esm}/core/EVM/getEVMBalance.js +0 -0
  400. /package/dist/{esm → _esm}/core/EVM/multisig.js +0 -0
  401. /package/dist/{esm → _esm}/core/EVM/publicClient.js +0 -0
  402. /package/dist/{esm → _esm}/core/EVM/setAllowance.js +0 -0
  403. /package/dist/{esm → _esm}/core/EVM/switchChain.js +0 -0
  404. /package/dist/{esm → _esm}/core/EVM/types.js +0 -0
  405. /package/dist/{esm → _esm}/core/EVM/utils.js +0 -0
  406. /package/dist/{esm → _esm}/core/Solana/Solana.js +0 -0
  407. /package/dist/{esm → _esm}/core/Solana/SolanaStepExecutor.js +0 -0
  408. /package/dist/{esm → _esm}/core/Solana/connection.js +0 -0
  409. /package/dist/{esm → _esm}/core/Solana/getSolanaBalance.js +0 -0
  410. /package/dist/{esm → _esm}/core/Solana/types.js +0 -0
  411. /package/dist/{esm → _esm}/core/StatusManager.js +0 -0
  412. /package/dist/{esm → _esm}/core/checkBalance.js +0 -0
  413. /package/dist/{esm → _esm}/core/execution.js +0 -0
  414. /package/dist/{esm → _esm}/core/executionState.js +0 -0
  415. /package/dist/{esm → _esm}/core/index.js +0 -0
  416. /package/dist/{esm → _esm}/core/prepareRestart.js +0 -0
  417. /package/dist/{esm → _esm}/core/provider.js +0 -0
  418. /package/dist/{esm → _esm}/core/stepComparison.js +0 -0
  419. /package/dist/{esm → _esm}/core/types.js +0 -0
  420. /package/dist/{esm → _esm}/core/utils.js +0 -0
  421. /package/dist/{esm → _esm}/core/waitForReceivingTransaction.js +0 -0
  422. /package/dist/{esm → _esm}/createConfig.js +0 -0
  423. /package/dist/{esm → _esm}/helpers.js +0 -0
  424. /package/dist/{esm → _esm}/index.js +0 -0
  425. /package/dist/{esm → _esm}/package.json +0 -0
  426. /package/dist/{esm → _esm}/request.js +0 -0
  427. /package/dist/{esm → _esm}/services/api.js +0 -0
  428. /package/dist/{esm → _esm}/services/balance.js +0 -0
  429. /package/dist/{esm → _esm}/typeguards.js +0 -0
  430. /package/dist/{esm → _esm}/types/index.js +0 -0
  431. /package/dist/{esm → _esm}/types/internal.js +0 -0
  432. /package/dist/{esm → _esm}/utils/errors.js +0 -0
  433. /package/dist/{esm → _esm}/utils/getTransactionMessage.js +0 -0
  434. /package/dist/{esm → _esm}/utils/index.js +0 -0
  435. /package/dist/{esm → _esm}/utils/median.js +0 -0
  436. /package/dist/{esm → _esm}/utils/parseBackendError.js +0 -0
  437. /package/dist/{esm → _esm}/utils/parseError.js +0 -0
  438. /package/dist/{esm → _esm}/utils/utils.js +0 -0
  439. /package/dist/{types → _types}/config.d.ts +0 -0
  440. /package/dist/{types → _types}/constants.d.ts +0 -0
  441. /package/dist/{types → _types}/core/BaseStepExecutor.d.ts +0 -0
  442. /package/dist/{types → _types}/core/EVM/EVM.d.ts +0 -0
  443. /package/dist/{types → _types}/core/EVM/EVMStepExecutor.d.ts +0 -0
  444. /package/dist/{types → _types}/core/EVM/abi.d.ts +0 -0
  445. /package/dist/{types → _types}/core/EVM/checkAllowance.d.ts +0 -0
  446. /package/dist/{types → _types}/core/EVM/getAllowance.d.ts +0 -0
  447. /package/dist/{types → _types}/core/EVM/getEVMBalance.d.ts +0 -0
  448. /package/dist/{types → _types}/core/EVM/multisig.d.ts +0 -0
  449. /package/dist/{types → _types}/core/EVM/publicClient.d.ts +0 -0
  450. /package/dist/{types → _types}/core/EVM/setAllowance.d.ts +0 -0
  451. /package/dist/{types → _types}/core/EVM/switchChain.d.ts +0 -0
  452. /package/dist/{types → _types}/core/EVM/types.d.ts +0 -0
  453. /package/dist/{types → _types}/core/EVM/utils.d.ts +0 -0
  454. /package/dist/{types → _types}/core/Solana/Solana.d.ts +0 -0
  455. /package/dist/{types → _types}/core/Solana/SolanaStepExecutor.d.ts +0 -0
  456. /package/dist/{types → _types}/core/Solana/connection.d.ts +0 -0
  457. /package/dist/{types → _types}/core/Solana/getSolanaBalance.d.ts +0 -0
  458. /package/dist/{types → _types}/core/Solana/types.d.ts +0 -0
  459. /package/dist/{types → _types}/core/StatusManager.d.ts +0 -0
  460. /package/dist/{types → _types}/core/checkBalance.d.ts +0 -0
  461. /package/dist/{types → _types}/core/execution.d.ts +0 -0
  462. /package/dist/{types → _types}/core/executionState.d.ts +0 -0
  463. /package/dist/{types → _types}/core/index.d.ts +0 -0
  464. /package/dist/{types → _types}/core/prepareRestart.d.ts +0 -0
  465. /package/dist/{types → _types}/core/provider.d.ts +0 -0
  466. /package/dist/{types → _types}/core/stepComparison.d.ts +0 -0
  467. /package/dist/{types → _types}/core/types.d.ts +0 -0
  468. /package/dist/{types → _types}/core/utils.d.ts +0 -0
  469. /package/dist/{types → _types}/core/waitForReceivingTransaction.d.ts +0 -0
  470. /package/dist/{types → _types}/createConfig.d.ts +0 -0
  471. /package/dist/{types → _types}/helpers.d.ts +0 -0
  472. /package/dist/{types → _types}/index.d.ts +0 -0
  473. /package/dist/{types → _types}/request.d.ts +0 -0
  474. /package/dist/{types → _types}/services/api.d.ts +0 -0
  475. /package/dist/{types → _types}/services/balance.d.ts +0 -0
  476. /package/dist/{types → _types}/typeguards.d.ts +0 -0
  477. /package/dist/{types → _types}/types/index.d.ts +0 -0
  478. /package/dist/{types → _types}/types/internal.d.ts +0 -0
  479. /package/dist/{types → _types}/utils/errors.d.ts +0 -0
  480. /package/dist/{types → _types}/utils/getTransactionMessage.d.ts +0 -0
  481. /package/dist/{types → _types}/utils/index.d.ts +0 -0
  482. /package/dist/{types → _types}/utils/median.d.ts +0 -0
  483. /package/dist/{types → _types}/utils/parseBackendError.d.ts +0 -0
  484. /package/dist/{types → _types}/utils/parseError.d.ts +0 -0
  485. /package/dist/{types → _types}/utils/utils.d.ts +0 -0
@@ -0,0 +1,472 @@
1
+ import type {
2
+ ChainId,
3
+ ChainKey,
4
+ ChainsRequest,
5
+ ChainsResponse,
6
+ ConnectionsRequest,
7
+ ConnectionsResponse,
8
+ ContractCallQuoteRequest,
9
+ ExtendedChain,
10
+ GasRecommendationRequest,
11
+ GasRecommendationResponse,
12
+ GetStatusRequest,
13
+ LiFiStep,
14
+ QuoteRequest,
15
+ RequestOptions,
16
+ RoutesRequest,
17
+ RoutesResponse,
18
+ StatusResponse,
19
+ Token,
20
+ TokensRequest,
21
+ TokensResponse,
22
+ ToolsRequest,
23
+ ToolsResponse,
24
+ } from '@lifi/types'
25
+ import { config } from '../config.js'
26
+ import { request } from '../request.js'
27
+ import { isRoutesRequest, isStep } from '../typeguards.js'
28
+ import { ValidationError } from '../utils/errors.js'
29
+ import { parseBackendError } from '../utils/parseBackendError.js'
30
+
31
+ /**
32
+ * Fetch information about a Token
33
+ * @param chain - Id or key of the chain that contains the token
34
+ * @param token - Address or symbol of the token on the requested chain
35
+ * @param options - Request options
36
+ * @throws {LiFiError} - Throws a LiFiError if request fails
37
+ * @returns Token information
38
+ */
39
+ export const getToken = async (
40
+ chain: ChainKey | ChainId,
41
+ token: string,
42
+ options?: RequestOptions
43
+ ): Promise<Token> => {
44
+ if (!chain) {
45
+ throw new ValidationError('Required parameter "chain" is missing.')
46
+ }
47
+ if (!token) {
48
+ throw new ValidationError('Required parameter "token" is missing.')
49
+ }
50
+ try {
51
+ const response = await request<Token>(
52
+ `${config.get().apiUrl}/token?${new URLSearchParams({
53
+ chain,
54
+ token,
55
+ } as Record<string, string>)}`,
56
+ {
57
+ signal: options?.signal,
58
+ }
59
+ )
60
+ return response
61
+ } catch (e) {
62
+ throw await parseBackendError(e)
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Get a quote for a token transfer
68
+ * @param params - The configuration of the requested quote
69
+ * @param options - Request options
70
+ * @throws {LiFiError} - Throws a LiFiError if request fails
71
+ * @returns Quote for a token transfer
72
+ */
73
+ export const getQuote = async (
74
+ params: QuoteRequest,
75
+ options?: RequestOptions
76
+ ): Promise<LiFiStep> => {
77
+ const requiredParameters: Array<keyof QuoteRequest> = [
78
+ 'fromChain',
79
+ 'fromToken',
80
+ 'fromAddress',
81
+ 'fromAmount',
82
+ 'toChain',
83
+ 'toToken',
84
+ ]
85
+ requiredParameters.forEach((requiredParameter) => {
86
+ if (!params[requiredParameter]) {
87
+ throw new ValidationError(
88
+ `Required parameter "${requiredParameter}" is missing.`
89
+ )
90
+ }
91
+ })
92
+ const _config = config.get()
93
+ // apply defaults
94
+ params.integrator ??= _config.integrator
95
+ params.order ??= _config.routeOptions?.order
96
+ params.slippage ??= _config.routeOptions?.slippage
97
+ params.referrer ??= _config.routeOptions?.referrer
98
+ params.fee ??= _config.routeOptions?.fee
99
+ params.allowBridges ??= _config.routeOptions?.bridges?.allow
100
+ params.denyBridges ??= _config.routeOptions?.bridges?.deny
101
+ params.preferBridges ??= _config.routeOptions?.bridges?.prefer
102
+ params.allowExchanges ??= _config.routeOptions?.exchanges?.allow
103
+ params.denyExchanges ??= _config.routeOptions?.exchanges?.deny
104
+ params.preferExchanges ??= _config.routeOptions?.exchanges?.prefer
105
+
106
+ Object.keys(params).forEach(
107
+ (key) =>
108
+ !params[key as keyof QuoteRequest] &&
109
+ delete params[key as keyof QuoteRequest]
110
+ )
111
+
112
+ try {
113
+ const response = await request<LiFiStep>(
114
+ `${_config.apiUrl}/quote?${new URLSearchParams(
115
+ params as unknown as Record<string, string>
116
+ )}`,
117
+ {
118
+ signal: options?.signal,
119
+ }
120
+ )
121
+ return response
122
+ } catch (e) {
123
+ throw await parseBackendError(e)
124
+ }
125
+ }
126
+
127
+ /**
128
+ * Get a quote for a destination contract call
129
+ * @param params - The configuration of the requested destination call
130
+ * @param options - Request options
131
+ * @throws {LiFiError} - Throws a LiFiError if request fails
132
+ * @returns - Returns step.
133
+ */
134
+ export const getContractCallQuote = async (
135
+ params: ContractCallQuoteRequest,
136
+ options?: RequestOptions
137
+ ): Promise<LiFiStep> => {
138
+ // validation
139
+ const requiredParameters: Array<keyof ContractCallQuoteRequest> = [
140
+ 'fromChain',
141
+ 'fromToken',
142
+ 'fromAddress',
143
+ 'toChain',
144
+ 'toToken',
145
+ 'toAmount',
146
+ 'toContractAddress',
147
+ 'toContractCallData',
148
+ 'toContractGasLimit',
149
+ ]
150
+ requiredParameters.forEach((requiredParameter) => {
151
+ if (!params[requiredParameter]) {
152
+ throw new ValidationError(
153
+ `Required parameter "${requiredParameter}" is missing.`
154
+ )
155
+ }
156
+ })
157
+ const _config = config.get()
158
+ // apply defaults
159
+ // option.order is not used in this endpoint
160
+ params.integrator ??= _config.integrator
161
+ params.slippage ??= _config.routeOptions?.slippage
162
+ params.referrer ??= _config.routeOptions?.referrer
163
+ params.fee ??= _config.routeOptions?.fee
164
+ params.allowBridges ??= _config.routeOptions?.bridges?.allow
165
+ params.denyBridges ??= _config.routeOptions?.bridges?.deny
166
+ params.preferBridges ??= _config.routeOptions?.bridges?.prefer
167
+ params.allowExchanges ??= _config.routeOptions?.exchanges?.allow
168
+ params.denyExchanges ??= _config.routeOptions?.exchanges?.deny
169
+ params.preferExchanges ??= _config.routeOptions?.exchanges?.prefer
170
+ // send request
171
+ try {
172
+ const response = await request<LiFiStep>(
173
+ `${_config.apiUrl}/quote/contractCall`,
174
+ {
175
+ method: 'POST',
176
+ headers: {
177
+ 'Content-Type': 'application/json',
178
+ },
179
+ body: JSON.stringify(params),
180
+ signal: options?.signal,
181
+ }
182
+ )
183
+ return response
184
+ } catch (e) {
185
+ throw await parseBackendError(e)
186
+ }
187
+ }
188
+
189
+ /**
190
+ * Check the status of a transfer. For cross chain transfers, the "bridge" parameter is required.
191
+ * @param params - Configuration of the requested status
192
+ * @param options - Request options.
193
+ * @throws {LiFiError} - Throws a LiFiError if request fails
194
+ * @returns Returns status response.
195
+ */
196
+ export const getStatus = async (
197
+ params: GetStatusRequest,
198
+ options?: RequestOptions
199
+ ): Promise<StatusResponse> => {
200
+ if (!params.txHash) {
201
+ throw new ValidationError('Required parameter "txHash" is missing.')
202
+ }
203
+ const queryParams = new URLSearchParams(
204
+ params as unknown as Record<string, string>
205
+ )
206
+ try {
207
+ const response = await request<StatusResponse>(
208
+ `${config.get().apiUrl}/status?${queryParams}`,
209
+ {
210
+ signal: options?.signal,
211
+ }
212
+ )
213
+ return response
214
+ } catch (e) {
215
+ throw await parseBackendError(e)
216
+ }
217
+ }
218
+
219
+ /**
220
+ * Get all available chains
221
+ * @param params - The configuration of the requested chains
222
+ * @param options - Request options
223
+ * @returns A list of all available chains
224
+ * @throws {LiFiError} Throws a LiFiError if request fails.
225
+ */
226
+ export const getChains = async (
227
+ params?: ChainsRequest,
228
+ options?: RequestOptions
229
+ ): Promise<ExtendedChain[]> => {
230
+ if (params) {
231
+ Object.keys(params).forEach(
232
+ (key) =>
233
+ !params[key as keyof ChainsRequest] &&
234
+ delete params[key as keyof ChainsRequest]
235
+ )
236
+ }
237
+ try {
238
+ const response = await request<ChainsResponse>(
239
+ `${config.get().apiUrl}/chains?${new URLSearchParams(
240
+ params as Record<string, string>
241
+ )}`,
242
+ {
243
+ signal: options?.signal,
244
+ }
245
+ )
246
+ return response.chains
247
+ } catch (e) {
248
+ throw await parseBackendError(e)
249
+ }
250
+ }
251
+
252
+ /**
253
+ * Get a set of routes for a request that describes a transfer of tokens.
254
+ * @param params - A description of the transfer.
255
+ * @param options - Request options
256
+ * @returns The resulting routes that can be used to realize the described transfer of tokens.
257
+ * @throws {LiFiError} Throws a LiFiError if request fails.
258
+ */
259
+ export const getRoutes = async (
260
+ params: RoutesRequest,
261
+ options?: RequestOptions
262
+ ): Promise<RoutesResponse> => {
263
+ if (!isRoutesRequest(params)) {
264
+ throw new ValidationError('Invalid routes request.')
265
+ }
266
+ const _config = config.get()
267
+ // apply defaults
268
+ params.options = {
269
+ ..._config.routeOptions,
270
+ ...params.options,
271
+ }
272
+ // send request
273
+ try {
274
+ const response = await request<RoutesResponse>(
275
+ `${_config.apiUrl}/advanced/routes`,
276
+ {
277
+ method: 'POST',
278
+ headers: {
279
+ 'Content-Type': 'application/json',
280
+ },
281
+ body: JSON.stringify(params),
282
+ signal: options?.signal,
283
+ }
284
+ )
285
+ return response
286
+ } catch (e) {
287
+ throw await parseBackendError(e)
288
+ }
289
+ }
290
+
291
+ /**
292
+ * Get the transaction data for a single step of a route
293
+ * @param step - The step object.
294
+ * @param options - Request options
295
+ * @returns The step populated with the transaction data.
296
+ * @throws {LiFiError} Throws a LiFiError if request fails.
297
+ */
298
+ export const getStepTransaction = async (
299
+ step: LiFiStep,
300
+ options?: RequestOptions
301
+ ): Promise<LiFiStep> => {
302
+ if (!isStep(step)) {
303
+ // While the validation fails for some users we should not enforce it
304
+ // eslint-disable-next-line no-console
305
+ console.warn('SDK Validation: Invalid Step', step)
306
+ }
307
+ try {
308
+ const response = await request<LiFiStep>(
309
+ `${config.get().apiUrl}/advanced/stepTransaction`,
310
+ {
311
+ method: 'POST',
312
+ headers: {
313
+ 'Content-Type': 'application/json',
314
+ },
315
+ body: JSON.stringify(step),
316
+ signal: options?.signal,
317
+ }
318
+ )
319
+ return response
320
+ } catch (e) {
321
+ throw await parseBackendError(e)
322
+ }
323
+ }
324
+
325
+ /**
326
+ * Get the available tools to bridge and swap tokens.
327
+ * @param params - The configuration of the requested tools
328
+ * @param options - Request options
329
+ * @returns The tools that are available on the requested chains
330
+ */
331
+ export const getTools = async (
332
+ params?: ToolsRequest,
333
+ options?: RequestOptions
334
+ ): Promise<ToolsResponse> => {
335
+ if (params) {
336
+ Object.keys(params).forEach(
337
+ (key) =>
338
+ !params[key as keyof ToolsRequest] &&
339
+ delete params[key as keyof ToolsRequest]
340
+ )
341
+ }
342
+ try {
343
+ const response = await request<ToolsResponse>(
344
+ `${config.get().apiUrl}/tools?${new URLSearchParams(
345
+ params as Record<string, string>
346
+ )}`,
347
+ {
348
+ signal: options?.signal,
349
+ }
350
+ )
351
+ return response
352
+ } catch (e) {
353
+ throw await parseBackendError(e)
354
+ }
355
+ }
356
+
357
+ /**
358
+ * Get all known tokens.
359
+ * @param params - The configuration of the requested tokens
360
+ * @param options - Request options
361
+ * @returns The tokens that are available on the requested chains
362
+ */
363
+ export const getTokens = async (
364
+ params?: TokensRequest,
365
+ options?: RequestOptions
366
+ ): Promise<TokensResponse> => {
367
+ if (params) {
368
+ Object.keys(params).forEach(
369
+ (key) =>
370
+ !params[key as keyof TokensRequest] &&
371
+ delete params[key as keyof TokensRequest]
372
+ )
373
+ }
374
+
375
+ try {
376
+ const response = await request<TokensResponse>(
377
+ `${config.get().apiUrl}/tokens?${new URLSearchParams(
378
+ params as Record<string, string>
379
+ )}`,
380
+ {
381
+ signal: options?.signal,
382
+ }
383
+ )
384
+ return response
385
+ } catch (e) {
386
+ throw await parseBackendError(e)
387
+ }
388
+ }
389
+
390
+ /**
391
+ * Get gas recommendation for a certain chain
392
+ * @param params - Configuration of the requested gas recommendation.
393
+ * @param options - Request options
394
+ * @throws {LiFiError} Throws a LiFiError if request fails.
395
+ * @returns Gas recommendation response.
396
+ */
397
+ export const getGasRecommendation = async (
398
+ params: GasRecommendationRequest,
399
+ options?: RequestOptions
400
+ ): Promise<GasRecommendationResponse> => {
401
+ if (!params.chainId) {
402
+ throw new ValidationError('Required parameter "chainId" is missing.')
403
+ }
404
+
405
+ const url = new URL(`${config.get().apiUrl}/gas/suggestion/${params.chainId}`)
406
+ if (params.fromChain) {
407
+ url.searchParams.append('fromChain', params.fromChain as unknown as string)
408
+ }
409
+ if (params.fromToken) {
410
+ url.searchParams.append('fromToken', params.fromToken)
411
+ }
412
+
413
+ try {
414
+ const response = await request<GasRecommendationResponse>(url.toString(), {
415
+ signal: options?.signal,
416
+ })
417
+ return response
418
+ } catch (e) {
419
+ throw await parseBackendError(e)
420
+ }
421
+ }
422
+
423
+ /**
424
+ * Get all the available connections for swap/bridging tokens
425
+ * @param connectionRequest ConnectionsRequest
426
+ * @returns ConnectionsResponse
427
+ */
428
+ export const getConnections = async (
429
+ connectionRequest: ConnectionsRequest
430
+ ): Promise<ConnectionsResponse> => {
431
+ const url = new URL(`${config.get().apiUrl}/connections`)
432
+
433
+ const { fromChain, fromToken, toChain, toToken } = connectionRequest
434
+
435
+ if (fromChain) {
436
+ url.searchParams.append('fromChain', fromChain as unknown as string)
437
+ }
438
+ if (fromToken) {
439
+ url.searchParams.append('fromToken', fromToken)
440
+ }
441
+ if (toChain) {
442
+ url.searchParams.append('toChain', toChain as unknown as string)
443
+ }
444
+ if (toToken) {
445
+ url.searchParams.append('toToken', toToken)
446
+ }
447
+ const connectionRequestArrayParams: Array<keyof ConnectionsRequest> = [
448
+ 'allowBridges',
449
+ 'denyBridges',
450
+ 'preferBridges',
451
+ 'allowExchanges',
452
+ 'denyExchanges',
453
+ 'preferExchanges',
454
+ ]
455
+ connectionRequestArrayParams.forEach((parameter) => {
456
+ const connectionRequestArrayParam: string[] = connectionRequest[
457
+ parameter
458
+ ] as string[]
459
+
460
+ if (connectionRequestArrayParam?.length) {
461
+ connectionRequestArrayParam?.forEach((value) => {
462
+ url.searchParams.append(parameter, value)
463
+ })
464
+ }
465
+ })
466
+ try {
467
+ const response = await request<ConnectionsResponse>(url.toString())
468
+ return response
469
+ } catch (e) {
470
+ throw await parseBackendError(e)
471
+ }
472
+ }
@@ -0,0 +1,93 @@
1
+ import type { Token, TokenAmount } from '@lifi/types'
2
+ import { config } from '../config.js'
3
+ import { isToken } from '../typeguards.js'
4
+ import { ValidationError } from '../utils/errors.js'
5
+
6
+ /**
7
+ * Returns the balances of a specific token a wallet holds across all aggregated chains.
8
+ * @param walletAddress - A wallet address.
9
+ * @param token - A Token object.
10
+ * @returns An object containing the token and the amounts on different chains.
11
+ * @throws {ValidationError} Throws a ValidationError if parameters are invalid.
12
+ */
13
+ export const getTokenBalance = async (
14
+ walletAddress: string,
15
+ token: Token
16
+ ): Promise<TokenAmount | null> => {
17
+ const tokenAmounts = await getTokenBalances(walletAddress, [token])
18
+ return tokenAmounts.length ? tokenAmounts[0] : null
19
+ }
20
+
21
+ /**
22
+ * Returns the balances for a list tokens a wallet holds across all aggregated chains.
23
+ * @param walletAddress - A wallet address.
24
+ * @param tokens - A list of Token objects.
25
+ * @returns A list of objects containing the tokens and the amounts on different chains.
26
+ * @throws {ValidationError} Throws a ValidationError if parameters are invalid.
27
+ */
28
+ export const getTokenBalances = async (
29
+ walletAddress: string,
30
+ tokens: Token[]
31
+ ): Promise<TokenAmount[]> => {
32
+ // split by chain
33
+ const tokensByChain = tokens.reduce(
34
+ (tokens, token) => {
35
+ if (!tokens[token.chainId]) {
36
+ tokens[token.chainId] = []
37
+ }
38
+ tokens[token.chainId].push(token)
39
+ return tokens
40
+ },
41
+ {} as { [chainId: number]: Token[] }
42
+ )
43
+
44
+ const tokenAmountsByChain = await getTokenBalancesByChain(
45
+ walletAddress,
46
+ tokensByChain
47
+ )
48
+ return Object.values(tokenAmountsByChain).flat()
49
+ }
50
+
51
+ /**
52
+ * This method queries the balances of tokens for a specific list of chains for a given wallet.
53
+ * @param walletAddress - A walletaddress.
54
+ * @param tokensByChain - A list of Token objects organized by chain ids.
55
+ * @returns A list of objects containing the tokens and the amounts on different chains organized by the chosen chains.
56
+ * @throws {ValidationError} Throws a ValidationError if parameters are invalid.
57
+ */
58
+ export const getTokenBalancesByChain = async (
59
+ walletAddress: string,
60
+ tokensByChain: { [chainId: number]: Token[] }
61
+ ): Promise<{ [chainId: number]: TokenAmount[] }> => {
62
+ if (!walletAddress) {
63
+ throw new ValidationError('Missing walletAddress.')
64
+ }
65
+
66
+ const tokenList = Object.values(tokensByChain).flat()
67
+ const invalidTokens = tokenList.filter((token) => !isToken(token))
68
+ if (invalidTokens.length) {
69
+ throw new ValidationError(
70
+ `Invalid token passed: address "${invalidTokens[0].address}" on chainId "${invalidTokens[0].chainId}"`
71
+ )
72
+ }
73
+
74
+ const tokenAmountsByChain: { [chainId: number]: TokenAmount[] } = {}
75
+ await Promise.allSettled(
76
+ Object.keys(tokensByChain).map(async (chainIdStr) => {
77
+ const chainId = parseInt(chainIdStr)
78
+ const baseTokenAddress = tokensByChain[chainId][0].address
79
+ const provider = config
80
+ .get()
81
+ .providers?.find((provider) => provider.isAddress(baseTokenAddress))
82
+ if (!provider) {
83
+ throw new Error('SDK Token Provider not found.')
84
+ }
85
+ const tokenAmounts = await provider.getBalance(
86
+ walletAddress,
87
+ tokensByChain[chainId]
88
+ )
89
+ tokenAmountsByChain[chainId] = tokenAmounts
90
+ })
91
+ )
92
+ return tokenAmountsByChain
93
+ }
@@ -0,0 +1,89 @@
1
+ import type {
2
+ Action,
3
+ Estimate,
4
+ LiFiStep,
5
+ RouteOptions,
6
+ RoutesRequest,
7
+ StaticToken,
8
+ } from '@lifi/types'
9
+
10
+ export const isRoutesRequest = (
11
+ routesRequest: RoutesRequest
12
+ ): routesRequest is RoutesRequest => {
13
+ const {
14
+ fromChainId,
15
+ fromAmount,
16
+ fromTokenAddress,
17
+ toChainId,
18
+ toTokenAddress,
19
+ options,
20
+ } = routesRequest
21
+
22
+ return (
23
+ typeof fromChainId === 'number' &&
24
+ typeof fromAmount === 'string' &&
25
+ fromAmount !== '' &&
26
+ typeof fromTokenAddress === 'string' &&
27
+ fromTokenAddress !== '' &&
28
+ typeof toChainId === 'number' &&
29
+ typeof toTokenAddress === 'string' &&
30
+ toTokenAddress !== '' &&
31
+ (!options || isRoutesOptions(options))
32
+ )
33
+ }
34
+
35
+ const isRoutesOptions = (
36
+ routeOptions: RouteOptions
37
+ ): routeOptions is RouteOptions =>
38
+ !routeOptions?.slippage || typeof routeOptions.slippage === 'number'
39
+
40
+ export const isStep = (step: LiFiStep): step is LiFiStep => {
41
+ const { id, type, tool, action, estimate } = step
42
+
43
+ return (
44
+ typeof id === 'string' &&
45
+ ['swap', 'cross', 'lifi'].includes(type) &&
46
+ typeof tool === 'string' &&
47
+ isAction(action) &&
48
+ isEstimate(estimate)
49
+ )
50
+ }
51
+
52
+ const isAction = (action: Action): action is Action => {
53
+ const { fromChainId, fromAmount, fromToken, toChainId, toToken, slippage } =
54
+ action
55
+
56
+ return (
57
+ typeof fromChainId === 'number' &&
58
+ typeof fromAmount === 'string' &&
59
+ fromAmount !== '' &&
60
+ isToken(fromToken) &&
61
+ typeof toChainId === 'number' &&
62
+ isToken(toToken) &&
63
+ typeof slippage === 'number'
64
+ )
65
+ }
66
+
67
+ const isEstimate = (estimate: Estimate): estimate is Estimate => {
68
+ const { fromAmount, toAmount, toAmountMin, approvalAddress } = estimate
69
+
70
+ return (
71
+ typeof fromAmount === 'string' &&
72
+ fromAmount !== '' &&
73
+ typeof toAmount === 'string' &&
74
+ toAmount !== '' &&
75
+ typeof toAmountMin === 'string' &&
76
+ toAmountMin !== '' &&
77
+ typeof approvalAddress === 'string'
78
+ )
79
+ }
80
+
81
+ export const isToken = (token: StaticToken): token is StaticToken => {
82
+ const { address, decimals, chainId } = token
83
+
84
+ return (
85
+ typeof address === 'string' &&
86
+ typeof decimals === 'number' &&
87
+ typeof chainId === 'number'
88
+ )
89
+ }
@@ -0,0 +1 @@
1
+ export * from './internal.js'
@@ -0,0 +1,58 @@
1
+ import type { ChainId, RouteOptions } from '@lifi/types'
2
+ import type { SDKProvider } from '../core/types.js'
3
+
4
+ export interface SDKConfig {
5
+ integrator: string
6
+ apiUrl: string
7
+ apiKey?: string
8
+ userId?: string
9
+ disableVersionCheck?: boolean
10
+ widgetVersion?: string
11
+ routeOptions?: RouteOptions
12
+ providers?: SDKProvider[]
13
+ rpcUrls: Partial<Record<ChainId, string[]>>
14
+ }
15
+
16
+ export interface SDKOptions extends Partial<Omit<SDKConfig, 'integrator'>> {
17
+ integrator: string
18
+ }
19
+
20
+ export interface TenderlyResponse {
21
+ hash: string
22
+ block_hash: string
23
+ block_number: number
24
+ from: string
25
+ gas: number
26
+ gas_price: number
27
+ gas_fee_cap: number
28
+ gas_tip_cap: number
29
+ cumulative_gas_used: number
30
+ gas_used: number
31
+ effective_gas_price: number
32
+ input: string
33
+ nonce: number
34
+ to: string
35
+ index: number
36
+ value: string
37
+ access_list: unknown
38
+ status: boolean
39
+ addresses: string[]
40
+ contract_ids: string[]
41
+ network_id: string
42
+ timestamp: string
43
+ function_selector: string
44
+ l1_block_number: number
45
+ l1_timestamp: number
46
+ deposit_tx: boolean
47
+ system_tx: boolean
48
+ mint: number
49
+ sig: {
50
+ v: string
51
+ r: string
52
+ s: string
53
+ }
54
+ error_message: string
55
+ method: string
56
+ decoded_input: unknown
57
+ call_trace: unknown
58
+ }