@lifi/sdk 0.0.0-preview-f5cf9f8

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 (555) hide show
  1. package/CHANGELOG.md +1213 -0
  2. package/LICENSE +201 -0
  3. package/README.md +79 -0
  4. package/dist/cjs/actions/getChains.d.ts +17 -0
  5. package/dist/cjs/actions/getChains.js +28 -0
  6. package/dist/cjs/actions/getChains.js.map +1 -0
  7. package/dist/cjs/actions/getConnections.d.ts +15 -0
  8. package/dist/cjs/actions/getConnections.js +34 -0
  9. package/dist/cjs/actions/getConnections.js.map +1 -0
  10. package/dist/cjs/actions/getContractCallsQuote.d.ts +16 -0
  11. package/dist/cjs/actions/getContractCallsQuote.js +45 -0
  12. package/dist/cjs/actions/getContractCallsQuote.js.map +1 -0
  13. package/dist/cjs/actions/getGasRecommendation.d.ts +16 -0
  14. package/dist/cjs/actions/getGasRecommendation.js +24 -0
  15. package/dist/cjs/actions/getGasRecommendation.js.map +1 -0
  16. package/dist/cjs/actions/getNameServiceAddress.d.ts +15 -0
  17. package/dist/cjs/actions/getNameServiceAddress.js +29 -0
  18. package/dist/cjs/actions/getNameServiceAddress.js.map +1 -0
  19. package/dist/cjs/actions/getQuote.d.ts +18 -0
  20. package/dist/cjs/actions/getQuote.js +35 -0
  21. package/dist/cjs/actions/getQuote.js.map +1 -0
  22. package/dist/cjs/actions/getRelayedTransactionStatus.d.ts +16 -0
  23. package/dist/cjs/actions/getRelayedTransactionStatus.js +30 -0
  24. package/dist/cjs/actions/getRelayedTransactionStatus.js.map +1 -0
  25. package/dist/cjs/actions/getRelayerQuote.d.ts +17 -0
  26. package/dist/cjs/actions/getRelayerQuote.js +44 -0
  27. package/dist/cjs/actions/getRelayerQuote.js.map +1 -0
  28. package/dist/cjs/actions/getRoutes.d.ts +16 -0
  29. package/dist/cjs/actions/getRoutes.js +32 -0
  30. package/dist/cjs/actions/getRoutes.js.map +1 -0
  31. package/dist/cjs/actions/getStatus.d.ts +17 -0
  32. package/dist/cjs/actions/getStatus.js +22 -0
  33. package/dist/cjs/actions/getStatus.js.map +1 -0
  34. package/dist/cjs/actions/getStepTransaction.d.ts +16 -0
  35. package/dist/cjs/actions/getStepTransaction.js +36 -0
  36. package/dist/cjs/actions/getStepTransaction.js.map +1 -0
  37. package/dist/cjs/actions/getToken.d.ts +17 -0
  38. package/dist/cjs/actions/getToken.js +26 -0
  39. package/dist/cjs/actions/getToken.js.map +1 -0
  40. package/dist/cjs/actions/getTokenBalance.d.ts +17 -0
  41. package/dist/cjs/actions/getTokenBalance.js +20 -0
  42. package/dist/cjs/actions/getTokenBalance.js.map +1 -0
  43. package/dist/cjs/actions/getTokenBalances.d.ts +17 -0
  44. package/dist/cjs/actions/getTokenBalances.js +15 -0
  45. package/dist/cjs/actions/getTokenBalances.js.map +1 -0
  46. package/dist/cjs/actions/getTokenBalancesByChain.d.ts +21 -0
  47. package/dist/cjs/actions/getTokenBalancesByChain.js +25 -0
  48. package/dist/cjs/actions/getTokenBalancesByChain.js.map +1 -0
  49. package/dist/cjs/actions/getTokens.d.ts +20 -0
  50. package/dist/cjs/actions/getTokens.js +17 -0
  51. package/dist/cjs/actions/getTokens.js.map +1 -0
  52. package/dist/cjs/actions/getTools.d.ts +15 -0
  53. package/dist/cjs/actions/getTools.js +21 -0
  54. package/dist/cjs/actions/getTools.js.map +1 -0
  55. package/dist/cjs/actions/getTransactionHistory.d.ts +26 -0
  56. package/dist/cjs/actions/getTransactionHistory.js +31 -0
  57. package/dist/cjs/actions/getTransactionHistory.js.map +1 -0
  58. package/dist/cjs/actions/getWalletBalances.d.ts +16 -0
  59. package/dist/cjs/actions/getWalletBalances.js +20 -0
  60. package/dist/cjs/actions/getWalletBalances.js.map +1 -0
  61. package/dist/cjs/actions/index.d.ts +172 -0
  62. package/dist/cjs/actions/index.js +52 -0
  63. package/dist/cjs/actions/index.js.map +1 -0
  64. package/dist/cjs/actions/patchContractCalls.d.ts +15 -0
  65. package/dist/cjs/actions/patchContractCalls.js +15 -0
  66. package/dist/cjs/actions/patchContractCalls.js.map +1 -0
  67. package/dist/cjs/actions/relayTransaction.d.ts +16 -0
  68. package/dist/cjs/actions/relayTransaction.js +34 -0
  69. package/dist/cjs/actions/relayTransaction.js.map +1 -0
  70. package/dist/cjs/client/createClient.d.ts +7 -0
  71. package/dist/cjs/client/createClient.js +70 -0
  72. package/dist/cjs/client/createClient.js.map +1 -0
  73. package/dist/cjs/client/getClientStorage.d.ts +14 -0
  74. package/dist/cjs/client/getClientStorage.js +48 -0
  75. package/dist/cjs/client/getClientStorage.js.map +1 -0
  76. package/dist/cjs/core/BaseStepExecutionTask.d.ts +10 -0
  77. package/dist/cjs/core/BaseStepExecutionTask.js +11 -0
  78. package/dist/cjs/core/BaseStepExecutionTask.js.map +1 -0
  79. package/dist/cjs/core/BaseStepExecutor.d.ts +24 -0
  80. package/dist/cjs/core/BaseStepExecutor.js +71 -0
  81. package/dist/cjs/core/BaseStepExecutor.js.map +1 -0
  82. package/dist/cjs/core/StatusManager.d.ts +83 -0
  83. package/dist/cjs/core/StatusManager.js +160 -0
  84. package/dist/cjs/core/StatusManager.js.map +1 -0
  85. package/dist/cjs/core/TaskPipeline.d.ts +12 -0
  86. package/dist/cjs/core/TaskPipeline.js +21 -0
  87. package/dist/cjs/core/TaskPipeline.js.map +1 -0
  88. package/dist/cjs/core/actionMessages.d.ts +9 -0
  89. package/dist/cjs/core/actionMessages.js +81 -0
  90. package/dist/cjs/core/actionMessages.js.map +1 -0
  91. package/dist/cjs/core/execution.d.ts +48 -0
  92. package/dist/cjs/core/execution.js +147 -0
  93. package/dist/cjs/core/execution.js.map +1 -0
  94. package/dist/cjs/core/executionState.d.ts +21 -0
  95. package/dist/cjs/core/executionState.js +29 -0
  96. package/dist/cjs/core/executionState.js.map +1 -0
  97. package/dist/cjs/core/prepareRestart.d.ts +7 -0
  98. package/dist/cjs/core/prepareRestart.js +21 -0
  99. package/dist/cjs/core/prepareRestart.js.map +1 -0
  100. package/dist/cjs/core/storage.d.ts +21 -0
  101. package/dist/cjs/core/storage.js +35 -0
  102. package/dist/cjs/core/storage.js.map +1 -0
  103. package/dist/cjs/core/tasks/CheckBalanceTask.d.ts +19 -0
  104. package/dist/cjs/core/tasks/CheckBalanceTask.js +35 -0
  105. package/dist/cjs/core/tasks/CheckBalanceTask.js.map +1 -0
  106. package/dist/cjs/core/tasks/PrepareTransactionTask.d.ts +10 -0
  107. package/dist/cjs/core/tasks/PrepareTransactionTask.js +30 -0
  108. package/dist/cjs/core/tasks/PrepareTransactionTask.js.map +1 -0
  109. package/dist/cjs/core/tasks/WaitForTransactionStatusTask.d.ts +13 -0
  110. package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js +63 -0
  111. package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js.map +1 -0
  112. package/dist/cjs/core/tasks/helpers/checkBalance.d.ts +30 -0
  113. package/dist/cjs/core/tasks/helpers/checkBalance.js +108 -0
  114. package/dist/cjs/core/tasks/helpers/checkBalance.js.map +1 -0
  115. package/dist/cjs/core/tasks/helpers/getTransactionRequestData.d.ts +7 -0
  116. package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js +25 -0
  117. package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js.map +1 -0
  118. package/dist/cjs/core/tasks/helpers/stepComparison.d.ts +21 -0
  119. package/dist/cjs/core/tasks/helpers/stepComparison.js +32 -0
  120. package/dist/cjs/core/tasks/helpers/stepComparison.js.map +1 -0
  121. package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.d.ts +9 -0
  122. package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.js +48 -0
  123. package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.js.map +1 -0
  124. package/dist/cjs/core/utils.d.ts +17 -0
  125. package/dist/cjs/core/utils.js +42 -0
  126. package/dist/cjs/core/utils.js.map +1 -0
  127. package/dist/cjs/errors/SDKError.d.ts +17 -0
  128. package/dist/cjs/errors/SDKError.js +24 -0
  129. package/dist/cjs/errors/SDKError.js.map +1 -0
  130. package/dist/cjs/errors/baseError.d.ts +11 -0
  131. package/dist/cjs/errors/baseError.js +19 -0
  132. package/dist/cjs/errors/baseError.js.map +1 -0
  133. package/dist/cjs/errors/constants.d.ts +55 -0
  134. package/dist/cjs/errors/constants.js +61 -0
  135. package/dist/cjs/errors/constants.js.map +1 -0
  136. package/dist/cjs/errors/errors.d.ts +38 -0
  137. package/dist/cjs/errors/errors.js +62 -0
  138. package/dist/cjs/errors/errors.js.map +1 -0
  139. package/dist/cjs/errors/httpError.d.ts +24 -0
  140. package/dist/cjs/errors/httpError.js +70 -0
  141. package/dist/cjs/errors/httpError.js.map +1 -0
  142. package/dist/cjs/errors/utils/baseErrorRootCause.d.ts +8 -0
  143. package/dist/cjs/errors/utils/baseErrorRootCause.js +18 -0
  144. package/dist/cjs/errors/utils/baseErrorRootCause.js.map +1 -0
  145. package/dist/cjs/errors/utils/rootCause.d.ts +5 -0
  146. package/dist/cjs/errors/utils/rootCause.js +11 -0
  147. package/dist/cjs/errors/utils/rootCause.js.map +1 -0
  148. package/dist/cjs/index.d.ts +55 -0
  149. package/dist/cjs/index.js +130 -0
  150. package/dist/cjs/package.json +1 -0
  151. package/dist/cjs/types/actions.d.ts +14 -0
  152. package/dist/cjs/types/actions.js +0 -0
  153. package/dist/cjs/types/core.d.ts +184 -0
  154. package/dist/cjs/types/core.js +0 -0
  155. package/dist/cjs/types/execution.d.ts +28 -0
  156. package/dist/cjs/types/execution.js +0 -0
  157. package/dist/cjs/types/request.d.ts +7 -0
  158. package/dist/cjs/types/request.js +0 -0
  159. package/dist/cjs/utils/checkPackageUpdates.d.ts +5 -0
  160. package/dist/cjs/utils/checkPackageUpdates.js +15 -0
  161. package/dist/cjs/utils/checkPackageUpdates.js.map +1 -0
  162. package/dist/cjs/utils/convertQuoteToRoute.d.ts +22 -0
  163. package/dist/cjs/utils/convertQuoteToRoute.js +88 -0
  164. package/dist/cjs/utils/convertQuoteToRoute.js.map +1 -0
  165. package/dist/cjs/utils/decode.d.ts +5 -0
  166. package/dist/cjs/utils/decode.js +9 -0
  167. package/dist/cjs/utils/decode.js.map +1 -0
  168. package/dist/cjs/utils/fetchTxErrorDetails.d.ts +5 -0
  169. package/dist/cjs/utils/fetchTxErrorDetails.js +13 -0
  170. package/dist/cjs/utils/fetchTxErrorDetails.js.map +1 -0
  171. package/dist/cjs/utils/formatUnits.d.ts +8 -0
  172. package/dist/cjs/utils/formatUnits.js +18 -0
  173. package/dist/cjs/utils/formatUnits.js.map +1 -0
  174. package/dist/cjs/utils/getTransactionMessage.d.ts +8 -0
  175. package/dist/cjs/utils/getTransactionMessage.js +12 -0
  176. package/dist/cjs/utils/getTransactionMessage.js.map +1 -0
  177. package/dist/cjs/utils/isHex.d.ts +10 -0
  178. package/dist/cjs/utils/isHex.js +11 -0
  179. package/dist/cjs/utils/isHex.js.map +1 -0
  180. package/dist/cjs/utils/isRoutesRequest.d.ts +7 -0
  181. package/dist/cjs/utils/isRoutesRequest.js +11 -0
  182. package/dist/cjs/utils/isRoutesRequest.js.map +1 -0
  183. package/dist/cjs/utils/isStep.d.ts +7 -0
  184. package/dist/cjs/utils/isStep.js +23 -0
  185. package/dist/cjs/utils/isStep.js.map +1 -0
  186. package/dist/cjs/utils/isToken.d.ts +7 -0
  187. package/dist/cjs/utils/isToken.js +10 -0
  188. package/dist/cjs/utils/isToken.js.map +1 -0
  189. package/dist/cjs/utils/parseUnits.d.ts +8 -0
  190. package/dist/cjs/utils/parseUnits.js +35 -0
  191. package/dist/cjs/utils/parseUnits.js.map +1 -0
  192. package/dist/cjs/utils/request.d.ts +11 -0
  193. package/dist/cjs/utils/request.js +56 -0
  194. package/dist/cjs/utils/request.js.map +1 -0
  195. package/dist/cjs/utils/sleep.d.ts +5 -0
  196. package/dist/cjs/utils/sleep.js +11 -0
  197. package/dist/cjs/utils/sleep.js.map +1 -0
  198. package/dist/cjs/utils/waitForResult.d.ts +14 -0
  199. package/dist/cjs/utils/waitForResult.js +36 -0
  200. package/dist/cjs/utils/waitForResult.js.map +1 -0
  201. package/dist/cjs/utils/withDedupe.d.ts +23 -0
  202. package/dist/cjs/utils/withDedupe.js +34 -0
  203. package/dist/cjs/utils/withDedupe.js.map +1 -0
  204. package/dist/cjs/utils/withTimeout.d.ts +26 -0
  205. package/dist/cjs/utils/withTimeout.js +35 -0
  206. package/dist/cjs/utils/withTimeout.js.map +1 -0
  207. package/dist/cjs/version.d.ts +6 -0
  208. package/dist/cjs/version.js +9 -0
  209. package/dist/cjs/version.js.map +1 -0
  210. package/dist/esm/actions/getChains.d.ts +17 -0
  211. package/dist/esm/actions/getChains.d.ts.map +1 -0
  212. package/dist/esm/actions/getChains.js +26 -0
  213. package/dist/esm/actions/getChains.js.map +1 -0
  214. package/dist/esm/actions/getConnections.d.ts +15 -0
  215. package/dist/esm/actions/getConnections.d.ts.map +1 -0
  216. package/dist/esm/actions/getConnections.js +33 -0
  217. package/dist/esm/actions/getConnections.js.map +1 -0
  218. package/dist/esm/actions/getContractCallsQuote.d.ts +16 -0
  219. package/dist/esm/actions/getContractCallsQuote.d.ts.map +1 -0
  220. package/dist/esm/actions/getContractCallsQuote.js +44 -0
  221. package/dist/esm/actions/getContractCallsQuote.js.map +1 -0
  222. package/dist/esm/actions/getGasRecommendation.d.ts +16 -0
  223. package/dist/esm/actions/getGasRecommendation.d.ts.map +1 -0
  224. package/dist/esm/actions/getGasRecommendation.js +23 -0
  225. package/dist/esm/actions/getGasRecommendation.js.map +1 -0
  226. package/dist/esm/actions/getNameServiceAddress.d.ts +15 -0
  227. package/dist/esm/actions/getNameServiceAddress.d.ts.map +1 -0
  228. package/dist/esm/actions/getNameServiceAddress.js +28 -0
  229. package/dist/esm/actions/getNameServiceAddress.js.map +1 -0
  230. package/dist/esm/actions/getQuote.d.ts +18 -0
  231. package/dist/esm/actions/getQuote.d.ts.map +1 -0
  232. package/dist/esm/actions/getQuote.js +34 -0
  233. package/dist/esm/actions/getQuote.js.map +1 -0
  234. package/dist/esm/actions/getRelayedTransactionStatus.d.ts +16 -0
  235. package/dist/esm/actions/getRelayedTransactionStatus.d.ts.map +1 -0
  236. package/dist/esm/actions/getRelayedTransactionStatus.js +29 -0
  237. package/dist/esm/actions/getRelayedTransactionStatus.js.map +1 -0
  238. package/dist/esm/actions/getRelayerQuote.d.ts +17 -0
  239. package/dist/esm/actions/getRelayerQuote.d.ts.map +1 -0
  240. package/dist/esm/actions/getRelayerQuote.js +43 -0
  241. package/dist/esm/actions/getRelayerQuote.js.map +1 -0
  242. package/dist/esm/actions/getRoutes.d.ts +16 -0
  243. package/dist/esm/actions/getRoutes.d.ts.map +1 -0
  244. package/dist/esm/actions/getRoutes.js +31 -0
  245. package/dist/esm/actions/getRoutes.js.map +1 -0
  246. package/dist/esm/actions/getStatus.d.ts +17 -0
  247. package/dist/esm/actions/getStatus.d.ts.map +1 -0
  248. package/dist/esm/actions/getStatus.js +21 -0
  249. package/dist/esm/actions/getStatus.js.map +1 -0
  250. package/dist/esm/actions/getStepTransaction.d.ts +16 -0
  251. package/dist/esm/actions/getStepTransaction.d.ts.map +1 -0
  252. package/dist/esm/actions/getStepTransaction.js +35 -0
  253. package/dist/esm/actions/getStepTransaction.js.map +1 -0
  254. package/dist/esm/actions/getToken.d.ts +17 -0
  255. package/dist/esm/actions/getToken.d.ts.map +1 -0
  256. package/dist/esm/actions/getToken.js +25 -0
  257. package/dist/esm/actions/getToken.js.map +1 -0
  258. package/dist/esm/actions/getTokenBalance.d.ts +17 -0
  259. package/dist/esm/actions/getTokenBalance.d.ts.map +1 -0
  260. package/dist/esm/actions/getTokenBalance.js +19 -0
  261. package/dist/esm/actions/getTokenBalance.js.map +1 -0
  262. package/dist/esm/actions/getTokenBalances.d.ts +17 -0
  263. package/dist/esm/actions/getTokenBalances.d.ts.map +1 -0
  264. package/dist/esm/actions/getTokenBalances.js +14 -0
  265. package/dist/esm/actions/getTokenBalances.js.map +1 -0
  266. package/dist/esm/actions/getTokenBalancesByChain.d.ts +21 -0
  267. package/dist/esm/actions/getTokenBalancesByChain.d.ts.map +1 -0
  268. package/dist/esm/actions/getTokenBalancesByChain.js +24 -0
  269. package/dist/esm/actions/getTokenBalancesByChain.js.map +1 -0
  270. package/dist/esm/actions/getTokens.d.ts +20 -0
  271. package/dist/esm/actions/getTokens.d.ts.map +1 -0
  272. package/dist/esm/actions/getTokens.js +16 -0
  273. package/dist/esm/actions/getTokens.js.map +1 -0
  274. package/dist/esm/actions/getTools.d.ts +15 -0
  275. package/dist/esm/actions/getTools.d.ts.map +1 -0
  276. package/dist/esm/actions/getTools.js +20 -0
  277. package/dist/esm/actions/getTools.js.map +1 -0
  278. package/dist/esm/actions/getTransactionHistory.d.ts +26 -0
  279. package/dist/esm/actions/getTransactionHistory.d.ts.map +1 -0
  280. package/dist/esm/actions/getTransactionHistory.js +30 -0
  281. package/dist/esm/actions/getTransactionHistory.js.map +1 -0
  282. package/dist/esm/actions/getWalletBalances.d.ts +16 -0
  283. package/dist/esm/actions/getWalletBalances.d.ts.map +1 -0
  284. package/dist/esm/actions/getWalletBalances.js +19 -0
  285. package/dist/esm/actions/getWalletBalances.js.map +1 -0
  286. package/dist/esm/actions/index.d.ts +172 -0
  287. package/dist/esm/actions/index.d.ts.map +1 -0
  288. package/dist/esm/actions/index.js +51 -0
  289. package/dist/esm/actions/index.js.map +1 -0
  290. package/dist/esm/actions/patchContractCalls.d.ts +15 -0
  291. package/dist/esm/actions/patchContractCalls.d.ts.map +1 -0
  292. package/dist/esm/actions/patchContractCalls.js +14 -0
  293. package/dist/esm/actions/patchContractCalls.js.map +1 -0
  294. package/dist/esm/actions/relayTransaction.d.ts +16 -0
  295. package/dist/esm/actions/relayTransaction.d.ts.map +1 -0
  296. package/dist/esm/actions/relayTransaction.js +33 -0
  297. package/dist/esm/actions/relayTransaction.js.map +1 -0
  298. package/dist/esm/client/createClient.d.ts +7 -0
  299. package/dist/esm/client/createClient.d.ts.map +1 -0
  300. package/dist/esm/client/createClient.js +69 -0
  301. package/dist/esm/client/createClient.js.map +1 -0
  302. package/dist/esm/client/getClientStorage.d.ts +14 -0
  303. package/dist/esm/client/getClientStorage.d.ts.map +1 -0
  304. package/dist/esm/client/getClientStorage.js +47 -0
  305. package/dist/esm/client/getClientStorage.js.map +1 -0
  306. package/dist/esm/core/BaseStepExecutionTask.d.ts +10 -0
  307. package/dist/esm/core/BaseStepExecutionTask.d.ts.map +1 -0
  308. package/dist/esm/core/BaseStepExecutionTask.js +10 -0
  309. package/dist/esm/core/BaseStepExecutionTask.js.map +1 -0
  310. package/dist/esm/core/BaseStepExecutor.d.ts +24 -0
  311. package/dist/esm/core/BaseStepExecutor.d.ts.map +1 -0
  312. package/dist/esm/core/BaseStepExecutor.js +70 -0
  313. package/dist/esm/core/BaseStepExecutor.js.map +1 -0
  314. package/dist/esm/core/StatusManager.d.ts +83 -0
  315. package/dist/esm/core/StatusManager.d.ts.map +1 -0
  316. package/dist/esm/core/StatusManager.js +159 -0
  317. package/dist/esm/core/StatusManager.js.map +1 -0
  318. package/dist/esm/core/TaskPipeline.d.ts +12 -0
  319. package/dist/esm/core/TaskPipeline.d.ts.map +1 -0
  320. package/dist/esm/core/TaskPipeline.js +20 -0
  321. package/dist/esm/core/TaskPipeline.js.map +1 -0
  322. package/dist/esm/core/actionMessages.d.ts +9 -0
  323. package/dist/esm/core/actionMessages.d.ts.map +1 -0
  324. package/dist/esm/core/actionMessages.js +79 -0
  325. package/dist/esm/core/actionMessages.js.map +1 -0
  326. package/dist/esm/core/execution.d.ts +48 -0
  327. package/dist/esm/core/execution.d.ts.map +1 -0
  328. package/dist/esm/core/execution.js +141 -0
  329. package/dist/esm/core/execution.js.map +1 -0
  330. package/dist/esm/core/executionState.d.ts +21 -0
  331. package/dist/esm/core/executionState.d.ts.map +1 -0
  332. package/dist/esm/core/executionState.js +28 -0
  333. package/dist/esm/core/executionState.js.map +1 -0
  334. package/dist/esm/core/prepareRestart.d.ts +7 -0
  335. package/dist/esm/core/prepareRestart.d.ts.map +1 -0
  336. package/dist/esm/core/prepareRestart.js +20 -0
  337. package/dist/esm/core/prepareRestart.js.map +1 -0
  338. package/dist/esm/core/storage.d.ts +21 -0
  339. package/dist/esm/core/storage.d.ts.map +1 -0
  340. package/dist/esm/core/storage.js +32 -0
  341. package/dist/esm/core/storage.js.map +1 -0
  342. package/dist/esm/core/tasks/CheckBalanceTask.d.ts +19 -0
  343. package/dist/esm/core/tasks/CheckBalanceTask.d.ts.map +1 -0
  344. package/dist/esm/core/tasks/CheckBalanceTask.js +34 -0
  345. package/dist/esm/core/tasks/CheckBalanceTask.js.map +1 -0
  346. package/dist/esm/core/tasks/PrepareTransactionTask.d.ts +10 -0
  347. package/dist/esm/core/tasks/PrepareTransactionTask.d.ts.map +1 -0
  348. package/dist/esm/core/tasks/PrepareTransactionTask.js +29 -0
  349. package/dist/esm/core/tasks/PrepareTransactionTask.js.map +1 -0
  350. package/dist/esm/core/tasks/WaitForTransactionStatusTask.d.ts +13 -0
  351. package/dist/esm/core/tasks/WaitForTransactionStatusTask.d.ts.map +1 -0
  352. package/dist/esm/core/tasks/WaitForTransactionStatusTask.js +61 -0
  353. package/dist/esm/core/tasks/WaitForTransactionStatusTask.js.map +1 -0
  354. package/dist/esm/core/tasks/helpers/checkBalance.d.ts +30 -0
  355. package/dist/esm/core/tasks/helpers/checkBalance.d.ts.map +1 -0
  356. package/dist/esm/core/tasks/helpers/checkBalance.js +107 -0
  357. package/dist/esm/core/tasks/helpers/checkBalance.js.map +1 -0
  358. package/dist/esm/core/tasks/helpers/getTransactionRequestData.d.ts +7 -0
  359. package/dist/esm/core/tasks/helpers/getTransactionRequestData.d.ts.map +1 -0
  360. package/dist/esm/core/tasks/helpers/getTransactionRequestData.js +24 -0
  361. package/dist/esm/core/tasks/helpers/getTransactionRequestData.js.map +1 -0
  362. package/dist/esm/core/tasks/helpers/stepComparison.d.ts +21 -0
  363. package/dist/esm/core/tasks/helpers/stepComparison.d.ts.map +1 -0
  364. package/dist/esm/core/tasks/helpers/stepComparison.js +31 -0
  365. package/dist/esm/core/tasks/helpers/stepComparison.js.map +1 -0
  366. package/dist/esm/core/tasks/helpers/waitForTransactionStatus.d.ts +9 -0
  367. package/dist/esm/core/tasks/helpers/waitForTransactionStatus.d.ts.map +1 -0
  368. package/dist/esm/core/tasks/helpers/waitForTransactionStatus.js +47 -0
  369. package/dist/esm/core/tasks/helpers/waitForTransactionStatus.js.map +1 -0
  370. package/dist/esm/core/utils.d.ts +17 -0
  371. package/dist/esm/core/utils.d.ts.map +1 -0
  372. package/dist/esm/core/utils.js +40 -0
  373. package/dist/esm/core/utils.js.map +1 -0
  374. package/dist/esm/errors/SDKError.d.ts +17 -0
  375. package/dist/esm/errors/SDKError.d.ts.map +1 -0
  376. package/dist/esm/errors/SDKError.js +23 -0
  377. package/dist/esm/errors/SDKError.js.map +1 -0
  378. package/dist/esm/errors/baseError.d.ts +11 -0
  379. package/dist/esm/errors/baseError.d.ts.map +1 -0
  380. package/dist/esm/errors/baseError.js +18 -0
  381. package/dist/esm/errors/baseError.js.map +1 -0
  382. package/dist/esm/errors/constants.d.ts +55 -0
  383. package/dist/esm/errors/constants.d.ts.map +1 -0
  384. package/dist/esm/errors/constants.js +58 -0
  385. package/dist/esm/errors/constants.js.map +1 -0
  386. package/dist/esm/errors/errors.d.ts +38 -0
  387. package/dist/esm/errors/errors.d.ts.map +1 -0
  388. package/dist/esm/errors/errors.js +54 -0
  389. package/dist/esm/errors/errors.js.map +1 -0
  390. package/dist/esm/errors/httpError.d.ts +24 -0
  391. package/dist/esm/errors/httpError.d.ts.map +1 -0
  392. package/dist/esm/errors/httpError.js +69 -0
  393. package/dist/esm/errors/httpError.js.map +1 -0
  394. package/dist/esm/errors/utils/baseErrorRootCause.d.ts +8 -0
  395. package/dist/esm/errors/utils/baseErrorRootCause.d.ts.map +1 -0
  396. package/dist/esm/errors/utils/baseErrorRootCause.js +16 -0
  397. package/dist/esm/errors/utils/baseErrorRootCause.js.map +1 -0
  398. package/dist/esm/errors/utils/rootCause.d.ts +5 -0
  399. package/dist/esm/errors/utils/rootCause.d.ts.map +1 -0
  400. package/dist/esm/errors/utils/rootCause.js +10 -0
  401. package/dist/esm/errors/utils/rootCause.js.map +1 -0
  402. package/dist/esm/index.d.ts +55 -0
  403. package/dist/esm/index.js +53 -0
  404. package/dist/esm/package.json +1 -0
  405. package/dist/esm/types/actions.d.ts +14 -0
  406. package/dist/esm/types/actions.d.ts.map +1 -0
  407. package/dist/esm/types/actions.js +1 -0
  408. package/dist/esm/types/core.d.ts +184 -0
  409. package/dist/esm/types/core.d.ts.map +1 -0
  410. package/dist/esm/types/core.js +1 -0
  411. package/dist/esm/types/execution.d.ts +28 -0
  412. package/dist/esm/types/execution.d.ts.map +1 -0
  413. package/dist/esm/types/execution.js +1 -0
  414. package/dist/esm/types/request.d.ts +7 -0
  415. package/dist/esm/types/request.d.ts.map +1 -0
  416. package/dist/esm/types/request.js +1 -0
  417. package/dist/esm/utils/checkPackageUpdates.d.ts +5 -0
  418. package/dist/esm/utils/checkPackageUpdates.d.ts.map +1 -0
  419. package/dist/esm/utils/checkPackageUpdates.js +14 -0
  420. package/dist/esm/utils/checkPackageUpdates.js.map +1 -0
  421. package/dist/esm/utils/convertQuoteToRoute.d.ts +22 -0
  422. package/dist/esm/utils/convertQuoteToRoute.d.ts.map +1 -0
  423. package/dist/esm/utils/convertQuoteToRoute.js +86 -0
  424. package/dist/esm/utils/convertQuoteToRoute.js.map +1 -0
  425. package/dist/esm/utils/decode.d.ts +5 -0
  426. package/dist/esm/utils/decode.d.ts.map +1 -0
  427. package/dist/esm/utils/decode.js +8 -0
  428. package/dist/esm/utils/decode.js.map +1 -0
  429. package/dist/esm/utils/fetchTxErrorDetails.d.ts +5 -0
  430. package/dist/esm/utils/fetchTxErrorDetails.d.ts.map +1 -0
  431. package/dist/esm/utils/fetchTxErrorDetails.js +12 -0
  432. package/dist/esm/utils/fetchTxErrorDetails.js.map +1 -0
  433. package/dist/esm/utils/formatUnits.d.ts +8 -0
  434. package/dist/esm/utils/formatUnits.d.ts.map +1 -0
  435. package/dist/esm/utils/formatUnits.js +17 -0
  436. package/dist/esm/utils/formatUnits.js.map +1 -0
  437. package/dist/esm/utils/getTransactionMessage.d.ts +8 -0
  438. package/dist/esm/utils/getTransactionMessage.d.ts.map +1 -0
  439. package/dist/esm/utils/getTransactionMessage.js +11 -0
  440. package/dist/esm/utils/getTransactionMessage.js.map +1 -0
  441. package/dist/esm/utils/isHex.d.ts +10 -0
  442. package/dist/esm/utils/isHex.d.ts.map +1 -0
  443. package/dist/esm/utils/isHex.js +10 -0
  444. package/dist/esm/utils/isHex.js.map +1 -0
  445. package/dist/esm/utils/isRoutesRequest.d.ts +7 -0
  446. package/dist/esm/utils/isRoutesRequest.d.ts.map +1 -0
  447. package/dist/esm/utils/isRoutesRequest.js +10 -0
  448. package/dist/esm/utils/isRoutesRequest.js.map +1 -0
  449. package/dist/esm/utils/isStep.d.ts +7 -0
  450. package/dist/esm/utils/isStep.d.ts.map +1 -0
  451. package/dist/esm/utils/isStep.js +22 -0
  452. package/dist/esm/utils/isStep.js.map +1 -0
  453. package/dist/esm/utils/isToken.d.ts +7 -0
  454. package/dist/esm/utils/isToken.d.ts.map +1 -0
  455. package/dist/esm/utils/isToken.js +9 -0
  456. package/dist/esm/utils/isToken.js.map +1 -0
  457. package/dist/esm/utils/parseUnits.d.ts +8 -0
  458. package/dist/esm/utils/parseUnits.d.ts.map +1 -0
  459. package/dist/esm/utils/parseUnits.js +34 -0
  460. package/dist/esm/utils/parseUnits.js.map +1 -0
  461. package/dist/esm/utils/request.d.ts +11 -0
  462. package/dist/esm/utils/request.d.ts.map +1 -0
  463. package/dist/esm/utils/request.js +54 -0
  464. package/dist/esm/utils/request.js.map +1 -0
  465. package/dist/esm/utils/sleep.d.ts +5 -0
  466. package/dist/esm/utils/sleep.d.ts.map +1 -0
  467. package/dist/esm/utils/sleep.js +10 -0
  468. package/dist/esm/utils/sleep.js.map +1 -0
  469. package/dist/esm/utils/waitForResult.d.ts +14 -0
  470. package/dist/esm/utils/waitForResult.d.ts.map +1 -0
  471. package/dist/esm/utils/waitForResult.js +35 -0
  472. package/dist/esm/utils/waitForResult.js.map +1 -0
  473. package/dist/esm/utils/withDedupe.d.ts +23 -0
  474. package/dist/esm/utils/withDedupe.d.ts.map +1 -0
  475. package/dist/esm/utils/withDedupe.js +32 -0
  476. package/dist/esm/utils/withDedupe.js.map +1 -0
  477. package/dist/esm/utils/withTimeout.d.ts +26 -0
  478. package/dist/esm/utils/withTimeout.d.ts.map +1 -0
  479. package/dist/esm/utils/withTimeout.js +34 -0
  480. package/dist/esm/utils/withTimeout.js.map +1 -0
  481. package/dist/esm/version.d.ts +6 -0
  482. package/dist/esm/version.d.ts.map +1 -0
  483. package/dist/esm/version.js +7 -0
  484. package/dist/esm/version.js.map +1 -0
  485. package/package.json +75 -0
  486. package/src/actions/getChains.ts +55 -0
  487. package/src/actions/getConnections.ts +55 -0
  488. package/src/actions/getContractCallsQuote.ts +81 -0
  489. package/src/actions/getGasRecommendation.ts +47 -0
  490. package/src/actions/getNameServiceAddress.ts +42 -0
  491. package/src/actions/getQuote.ts +105 -0
  492. package/src/actions/getRelayedTransactionStatus.ts +67 -0
  493. package/src/actions/getRelayerQuote.ts +86 -0
  494. package/src/actions/getRoutes.ts +43 -0
  495. package/src/actions/getStatus.ts +41 -0
  496. package/src/actions/getStepTransaction.ts +52 -0
  497. package/src/actions/getToken.ts +47 -0
  498. package/src/actions/getTokenBalance.ts +21 -0
  499. package/src/actions/getTokenBalances.ts +47 -0
  500. package/src/actions/getTokenBalancesByChain.ts +76 -0
  501. package/src/actions/getTokens.ts +57 -0
  502. package/src/actions/getTools.ts +34 -0
  503. package/src/actions/getTransactionHistory.ts +54 -0
  504. package/src/actions/getWalletBalances.ts +36 -0
  505. package/src/actions/index.ts +347 -0
  506. package/src/actions/patchContractCalls.ts +30 -0
  507. package/src/actions/relayTransaction.ts +74 -0
  508. package/src/client/createClient.ts +100 -0
  509. package/src/client/getClientStorage.ts +65 -0
  510. package/src/core/BaseStepExecutionTask.ts +9 -0
  511. package/src/core/BaseStepExecutor.ts +129 -0
  512. package/src/core/StatusManager.ts +245 -0
  513. package/src/core/TaskPipeline.ts +28 -0
  514. package/src/core/actionMessages.ts +103 -0
  515. package/src/core/execution.ts +243 -0
  516. package/src/core/executionState.ts +48 -0
  517. package/src/core/prepareRestart.ts +28 -0
  518. package/src/core/storage.ts +42 -0
  519. package/src/core/tasks/CheckBalanceTask.ts +46 -0
  520. package/src/core/tasks/PrepareTransactionTask.ts +62 -0
  521. package/src/core/tasks/WaitForTransactionStatusTask.ts +114 -0
  522. package/src/core/tasks/helpers/checkBalance.ts +218 -0
  523. package/src/core/tasks/helpers/getTransactionRequestData.ts +47 -0
  524. package/src/core/tasks/helpers/stepComparison.ts +50 -0
  525. package/src/core/tasks/helpers/waitForTransactionStatus.ts +76 -0
  526. package/src/core/utils.ts +59 -0
  527. package/src/errors/SDKError.ts +26 -0
  528. package/src/errors/baseError.ts +22 -0
  529. package/src/errors/constants.ts +54 -0
  530. package/src/errors/errors.ts +68 -0
  531. package/src/errors/httpError.ts +92 -0
  532. package/src/errors/utils/baseErrorRootCause.ts +18 -0
  533. package/src/errors/utils/rootCause.ts +7 -0
  534. package/src/index.ts +122 -0
  535. package/src/types/actions.ts +16 -0
  536. package/src/types/core.ts +264 -0
  537. package/src/types/execution.ts +32 -0
  538. package/src/types/request.ts +3 -0
  539. package/src/utils/checkPackageUpdates.ts +22 -0
  540. package/src/utils/convertQuoteToRoute.ts +154 -0
  541. package/src/utils/decode.ts +13 -0
  542. package/src/utils/fetchTxErrorDetails.ts +15 -0
  543. package/src/utils/formatUnits.ts +22 -0
  544. package/src/utils/getTransactionMessage.ts +17 -0
  545. package/src/utils/isHex.ts +14 -0
  546. package/src/utils/isRoutesRequest.ts +31 -0
  547. package/src/utils/isStep.ts +41 -0
  548. package/src/utils/isToken.ts +11 -0
  549. package/src/utils/parseUnits.ts +50 -0
  550. package/src/utils/request.ts +100 -0
  551. package/src/utils/sleep.ts +5 -0
  552. package/src/utils/waitForResult.ts +45 -0
  553. package/src/utils/withDedupe.ts +45 -0
  554. package/src/utils/withTimeout.ts +50 -0
  555. package/src/version.ts +2 -0
@@ -0,0 +1,81 @@
1
+ import type {
2
+ ContractCallsQuoteRequest,
3
+ LiFiStep,
4
+ RequestOptions,
5
+ } from '@lifi/types'
6
+ import {
7
+ isContractCallsRequestWithFromAmount,
8
+ isContractCallsRequestWithToAmount,
9
+ } from '@lifi/types'
10
+ import { ValidationError } from '../errors/errors.js'
11
+ import { SDKError } from '../errors/SDKError.js'
12
+ import type { SDKClient } from '../types/core.js'
13
+ import { request } from '../utils/request.js'
14
+
15
+ /**
16
+ * Get a quote for a destination contract call
17
+ * @param client - The SDK client
18
+ * @param params - The configuration of the requested destination call
19
+ * @param options - Request options
20
+ * @throws {LiFiError} - Throws a LiFiError if request fails
21
+ * @returns - Returns step.
22
+ */
23
+ export const getContractCallsQuote = async (
24
+ client: SDKClient,
25
+ params: ContractCallsQuoteRequest,
26
+ options?: RequestOptions
27
+ ): Promise<LiFiStep> => {
28
+ // validation
29
+ const requiredParameters: Array<keyof ContractCallsQuoteRequest> = [
30
+ 'fromChain',
31
+ 'fromToken',
32
+ 'fromAddress',
33
+ 'toChain',
34
+ 'toToken',
35
+ 'contractCalls',
36
+ ]
37
+ for (const requiredParameter of requiredParameters) {
38
+ if (!params[requiredParameter]) {
39
+ throw new SDKError(
40
+ new ValidationError(
41
+ `Required parameter "${requiredParameter}" is missing.`
42
+ )
43
+ )
44
+ }
45
+ }
46
+ if (
47
+ !isContractCallsRequestWithFromAmount(params) &&
48
+ !isContractCallsRequestWithToAmount(params)
49
+ ) {
50
+ throw new SDKError(
51
+ new ValidationError(
52
+ `Required parameter "fromAmount" or "toAmount" is missing.`
53
+ )
54
+ )
55
+ }
56
+ // apply defaults
57
+ // option.order is not used in this endpoint
58
+ params.integrator ??= client.config.integrator
59
+ params.slippage ??= client.config.routeOptions?.slippage
60
+ params.referrer ??= client.config.routeOptions?.referrer
61
+ params.fee ??= client.config.routeOptions?.fee
62
+ params.allowBridges ??= client.config.routeOptions?.bridges?.allow
63
+ params.denyBridges ??= client.config.routeOptions?.bridges?.deny
64
+ params.preferBridges ??= client.config.routeOptions?.bridges?.prefer
65
+ params.allowExchanges ??= client.config.routeOptions?.exchanges?.allow
66
+ params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny
67
+ params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer
68
+ // send request
69
+ return await request<LiFiStep>(
70
+ client.config,
71
+ `${client.config.apiUrl}/quote/contractCalls`,
72
+ {
73
+ method: 'POST',
74
+ headers: {
75
+ 'Content-Type': 'application/json',
76
+ },
77
+ body: JSON.stringify(params),
78
+ signal: options?.signal,
79
+ }
80
+ )
81
+ }
@@ -0,0 +1,47 @@
1
+ import type {
2
+ GasRecommendationRequest,
3
+ GasRecommendationResponse,
4
+ RequestOptions,
5
+ } from '@lifi/types'
6
+ import { ValidationError } from '../errors/errors.js'
7
+ import { SDKError } from '../errors/SDKError.js'
8
+ import type { SDKClient } from '../types/core.js'
9
+ import { request } from '../utils/request.js'
10
+
11
+ /**
12
+ * Get gas recommendation for a certain chain
13
+ * @param client - The SDK client
14
+ * @param params - Configuration of the requested gas recommendation.
15
+ * @param options - Request options
16
+ * @throws {LiFiError} Throws a LiFiError if request fails.
17
+ * @returns Gas recommendation response.
18
+ */
19
+ export const getGasRecommendation = async (
20
+ client: SDKClient,
21
+ params: GasRecommendationRequest,
22
+ options?: RequestOptions
23
+ ): Promise<GasRecommendationResponse> => {
24
+ if (!params.chainId) {
25
+ throw new SDKError(
26
+ new ValidationError('Required parameter "chainId" is missing.')
27
+ )
28
+ }
29
+
30
+ const url = new URL(
31
+ `${client.config.apiUrl}/gas/suggestion/${params.chainId}`
32
+ )
33
+ if (params.fromChain) {
34
+ url.searchParams.append('fromChain', params.fromChain as unknown as string)
35
+ }
36
+ if (params.fromToken) {
37
+ url.searchParams.append('fromToken', params.fromToken)
38
+ }
39
+
40
+ return await request<GasRecommendationResponse>(
41
+ client.config,
42
+ url.toString(),
43
+ {
44
+ signal: options?.signal,
45
+ }
46
+ )
47
+ }
@@ -0,0 +1,42 @@
1
+ import type { ChainType } from '@lifi/types'
2
+ import type { SDKClient } from '../types/core.js'
3
+
4
+ /**
5
+ * Get the address of a name service
6
+ * @param client - The SDK client
7
+ * @param name - The name to resolve
8
+ * @param chainType - The chain type to resolve the name on
9
+ * @returns The address of the name service
10
+ */
11
+ export const getNameServiceAddress = async (
12
+ client: SDKClient,
13
+ name: string,
14
+ chainType?: ChainType
15
+ ): Promise<string | undefined> => {
16
+ try {
17
+ let providers = []
18
+ if (chainType) {
19
+ providers = client.providers.filter(
20
+ (provider) => provider.type === chainType
21
+ )
22
+ } else {
23
+ providers = client.providers
24
+ }
25
+ const resolvers = providers.map((provider) => provider.resolveAddress)
26
+ if (!resolvers.length) {
27
+ return
28
+ }
29
+ const result = await Promise.any(
30
+ resolvers.map(async (resolve) => {
31
+ const address = await resolve(name, client)
32
+ if (!address) {
33
+ throw undefined
34
+ }
35
+ return address
36
+ })
37
+ )
38
+ return result
39
+ } catch (_) {
40
+ return
41
+ }
42
+ }
@@ -0,0 +1,105 @@
1
+ import type { LiFiStep, RequestOptions } from '@lifi/types'
2
+ import { ValidationError } from '../errors/errors.js'
3
+ import { SDKError } from '../errors/SDKError.js'
4
+ import type {
5
+ QuoteRequest,
6
+ QuoteRequestFromAmount,
7
+ QuoteRequestToAmount,
8
+ } from '../types/actions.js'
9
+ import type { SDKClient } from '../types/core.js'
10
+ import { request } from '../utils/request.js'
11
+
12
+ /**
13
+ * Get a quote for a token transfer
14
+ * @param client - The SDK client
15
+ * @param params - The configuration of the requested quote
16
+ * @param options - Request options
17
+ * @throws {LiFiError} - Throws a LiFiError if request fails
18
+ * @returns Quote for a token transfer
19
+ */
20
+ export async function getQuote(
21
+ client: SDKClient,
22
+ params: QuoteRequestFromAmount,
23
+ options?: RequestOptions
24
+ ): Promise<LiFiStep>
25
+ export async function getQuote(
26
+ client: SDKClient,
27
+ params: QuoteRequestToAmount,
28
+ options?: RequestOptions
29
+ ): Promise<LiFiStep>
30
+ export async function getQuote(
31
+ client: SDKClient,
32
+ params: QuoteRequest,
33
+ options?: RequestOptions
34
+ ): Promise<LiFiStep> {
35
+ const requiredParameters: Array<keyof QuoteRequest> = [
36
+ 'fromChain',
37
+ 'fromToken',
38
+ 'fromAddress',
39
+ 'toChain',
40
+ 'toToken',
41
+ ]
42
+
43
+ for (const requiredParameter of requiredParameters) {
44
+ if (!params[requiredParameter]) {
45
+ throw new SDKError(
46
+ new ValidationError(
47
+ `Required parameter "${requiredParameter}" is missing.`
48
+ )
49
+ )
50
+ }
51
+ }
52
+
53
+ const isFromAmountRequest =
54
+ 'fromAmount' in params && params.fromAmount !== undefined
55
+ const isToAmountRequest =
56
+ 'toAmount' in params && params.toAmount !== undefined
57
+
58
+ if (!isFromAmountRequest && !isToAmountRequest) {
59
+ throw new SDKError(
60
+ new ValidationError(
61
+ 'Required parameter "fromAmount" or "toAmount" is missing.'
62
+ )
63
+ )
64
+ }
65
+
66
+ if (isFromAmountRequest && isToAmountRequest) {
67
+ throw new SDKError(
68
+ new ValidationError(
69
+ 'Cannot provide both "fromAmount" and "toAmount" parameters.'
70
+ )
71
+ )
72
+ }
73
+
74
+ // apply defaults
75
+ params.integrator ??= client.config.integrator
76
+ params.order ??= client.config.routeOptions?.order
77
+ params.slippage ??= client.config.routeOptions?.slippage
78
+ params.referrer ??= client.config.routeOptions?.referrer
79
+ params.fee ??= client.config.routeOptions?.fee
80
+ params.allowBridges ??= client.config.routeOptions?.bridges?.allow
81
+ params.denyBridges ??= client.config.routeOptions?.bridges?.deny
82
+ params.preferBridges ??= client.config.routeOptions?.bridges?.prefer
83
+ params.allowExchanges ??= client.config.routeOptions?.exchanges?.allow
84
+ params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny
85
+ params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer
86
+
87
+ for (const key of Object.keys(params)) {
88
+ if (
89
+ params[key as keyof QuoteRequest] === undefined ||
90
+ params[key as keyof QuoteRequest] === null
91
+ ) {
92
+ delete params[key as keyof QuoteRequest]
93
+ }
94
+ }
95
+
96
+ return await request<LiFiStep>(
97
+ client.config,
98
+ `${client.config.apiUrl}/${isFromAmountRequest ? 'quote' : 'quote/toAmount'}?${new URLSearchParams(
99
+ params as unknown as Record<string, string>
100
+ )}`,
101
+ {
102
+ signal: options?.signal,
103
+ }
104
+ )
105
+ }
@@ -0,0 +1,67 @@
1
+ import type {
2
+ RelayStatusRequest,
3
+ RelayStatusResponse,
4
+ RelayStatusResponseData,
5
+ RequestOptions,
6
+ } from '@lifi/types'
7
+ import { BaseError } from '../errors/baseError.js'
8
+ import { ErrorName } from '../errors/constants.js'
9
+ import { ValidationError } from '../errors/errors.js'
10
+ import { SDKError } from '../errors/SDKError.js'
11
+ import type { SDKClient } from '../types/core.js'
12
+ import { decodeTaskId } from '../utils/decode.js'
13
+ import { request } from '../utils/request.js'
14
+ import { getStatus } from './getStatus.js'
15
+
16
+ /**
17
+ * Get the status of a relayed transaction
18
+ * @param client - The SDK client
19
+ * @param params - Parameters for the relay status request
20
+ * @param options - Request options
21
+ * @throws {LiFiError} - Throws a LiFiError if request fails
22
+ * @returns Status of the relayed transaction
23
+ */
24
+ export const getRelayedTransactionStatus = async (
25
+ client: SDKClient,
26
+ params: RelayStatusRequest,
27
+ options?: RequestOptions
28
+ ): Promise<RelayStatusResponseData> => {
29
+ if (!params.taskId) {
30
+ throw new SDKError(
31
+ new ValidationError('Required parameter "taskId" is missing.')
32
+ )
33
+ }
34
+
35
+ const { taskId, ...otherParams } = params
36
+ const queryParams = new URLSearchParams(
37
+ otherParams as unknown as Record<string, string>
38
+ )
39
+
40
+ const decodedTaskId = decodeTaskId(taskId)
41
+ // Temporary solution during the transition between status endpoints
42
+ if (decodedTaskId.length >= 3) {
43
+ return (await getStatus(
44
+ client,
45
+ params,
46
+ options
47
+ )) as unknown as RelayStatusResponseData
48
+ }
49
+
50
+ const result = await request<RelayStatusResponse>(
51
+ client.config,
52
+ `${client.config.apiUrl}/relayer/status/${taskId}?${queryParams}`,
53
+ {
54
+ signal: options?.signal,
55
+ }
56
+ )
57
+
58
+ if (result.status === 'error') {
59
+ throw new BaseError(
60
+ ErrorName.ServerError,
61
+ result.data.code,
62
+ result.data.message
63
+ )
64
+ }
65
+
66
+ return result.data
67
+ }
@@ -0,0 +1,86 @@
1
+ import type {
2
+ LiFiStep,
3
+ RelayerQuoteResponse,
4
+ RequestOptions,
5
+ } from '@lifi/types'
6
+ import { BaseError } from '../errors/baseError.js'
7
+ import { ErrorName } from '../errors/constants.js'
8
+ import { ValidationError } from '../errors/errors.js'
9
+ import { SDKError } from '../errors/SDKError.js'
10
+ import type { QuoteRequest, QuoteRequestFromAmount } from '../types/actions.js'
11
+ import type { SDKClient } from '../types/core.js'
12
+ import { request } from '../utils/request.js'
13
+
14
+ /**
15
+ * Get a relayer quote for a token transfer
16
+ * @param client - The SDK client
17
+ * @param params - The configuration of the requested quote
18
+ * @param options - Request options
19
+ * @throws {LiFiError} - Throws a LiFiError if request fails
20
+ * @returns Relayer quote for a token transfer
21
+ */
22
+ export const getRelayerQuote = async (
23
+ client: SDKClient,
24
+ params: QuoteRequestFromAmount,
25
+ options?: RequestOptions
26
+ ): Promise<LiFiStep> => {
27
+ const requiredParameters: Array<keyof QuoteRequestFromAmount> = [
28
+ 'fromChain',
29
+ 'fromToken',
30
+ 'fromAddress',
31
+ 'fromAmount',
32
+ 'toChain',
33
+ 'toToken',
34
+ ]
35
+ for (const requiredParameter of requiredParameters) {
36
+ if (!params[requiredParameter]) {
37
+ throw new SDKError(
38
+ new ValidationError(
39
+ `Required parameter "${requiredParameter}" is missing.`
40
+ )
41
+ )
42
+ }
43
+ }
44
+
45
+ // apply defaults
46
+ params.integrator ??= client.config.integrator
47
+ params.order ??= client.config.routeOptions?.order
48
+ params.slippage ??= client.config.routeOptions?.slippage
49
+ params.referrer ??= client.config.routeOptions?.referrer
50
+ params.fee ??= client.config.routeOptions?.fee
51
+ params.allowBridges ??= client.config.routeOptions?.bridges?.allow
52
+ params.denyBridges ??= client.config.routeOptions?.bridges?.deny
53
+ params.preferBridges ??= client.config.routeOptions?.bridges?.prefer
54
+ params.allowExchanges ??= client.config.routeOptions?.exchanges?.allow
55
+ params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny
56
+ params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer
57
+
58
+ for (const key of Object.keys(params)) {
59
+ if (
60
+ params[key as keyof QuoteRequest] === undefined ||
61
+ params[key as keyof QuoteRequest] === null
62
+ ) {
63
+ delete params[key as keyof QuoteRequest]
64
+ }
65
+ }
66
+
67
+ const result = await request<RelayerQuoteResponse>(
68
+ client.config,
69
+ `${client.config.apiUrl}/relayer/quote?${new URLSearchParams(
70
+ params as unknown as Record<string, string>
71
+ )}`,
72
+ {
73
+ signal: options?.signal,
74
+ }
75
+ )
76
+
77
+ if (result.status === 'error') {
78
+ throw new BaseError(
79
+ ErrorName.ServerError,
80
+ result.data.code,
81
+ result.data.message
82
+ )
83
+ }
84
+
85
+ return result.data
86
+ }
@@ -0,0 +1,43 @@
1
+ import type { RequestOptions, RoutesRequest, RoutesResponse } from '@lifi/types'
2
+ import { ValidationError } from '../errors/errors.js'
3
+ import { SDKError } from '../errors/SDKError.js'
4
+ import type { SDKClient } from '../types/core.js'
5
+ import { isRoutesRequest } from '../utils/isRoutesRequest.js'
6
+ import { request } from '../utils/request.js'
7
+
8
+ /**
9
+ * Get a set of routes for a request that describes a transfer of tokens.
10
+ * @param client - The SDK client.
11
+ * @param params - A description of the transfer.
12
+ * @param options - Request options
13
+ * @returns The resulting routes that can be used to realize the described transfer of tokens.
14
+ * @throws {LiFiError} Throws a LiFiError if request fails.
15
+ */
16
+ export const getRoutes = async (
17
+ client: SDKClient,
18
+ params: RoutesRequest,
19
+ options?: RequestOptions
20
+ ): Promise<RoutesResponse> => {
21
+ if (!isRoutesRequest(params)) {
22
+ throw new SDKError(new ValidationError('Invalid routes request.'))
23
+ }
24
+ // apply defaults
25
+ params.options = {
26
+ integrator: client.config.integrator,
27
+ ...client.config.routeOptions,
28
+ ...params.options,
29
+ }
30
+
31
+ return await request<RoutesResponse>(
32
+ client.config,
33
+ `${client.config.apiUrl}/advanced/routes`,
34
+ {
35
+ method: 'POST',
36
+ headers: {
37
+ 'Content-Type': 'application/json',
38
+ },
39
+ body: JSON.stringify(params),
40
+ signal: options?.signal,
41
+ }
42
+ )
43
+ }
@@ -0,0 +1,41 @@
1
+ import type { RequestOptions, StatusResponse } from '@lifi/types'
2
+ import { ValidationError } from '../errors/errors.js'
3
+ import { SDKError } from '../errors/SDKError.js'
4
+ import type { GetStatusRequestExtended } from '../types/actions.js'
5
+ import type { SDKClient } from '../types/core.js'
6
+ import { request } from '../utils/request.js'
7
+
8
+ /**
9
+ * Check the status of a transfer. For cross chain transfers, the "bridge" parameter is required.
10
+ * @param client - The SDK client
11
+ * @param params - Configuration of the requested status
12
+ * @param options - Request options.
13
+ * @throws {LiFiError} - Throws a LiFiError if request fails
14
+ * @returns Returns status response.
15
+ */
16
+ export const getStatus = async (
17
+ client: SDKClient,
18
+ params: GetStatusRequestExtended,
19
+ options?: RequestOptions
20
+ ): Promise<StatusResponse> => {
21
+ if (
22
+ !('taskId' in params && params.taskId) &&
23
+ !('txHash' in params && params.txHash)
24
+ ) {
25
+ throw new SDKError(
26
+ new ValidationError(
27
+ 'Either "taskId" or "txHash" must be provided and non-empty.'
28
+ )
29
+ )
30
+ }
31
+ const queryParams = new URLSearchParams(
32
+ params as unknown as Record<string, string>
33
+ )
34
+ return await request<StatusResponse>(
35
+ client.config,
36
+ `${client.config.apiUrl}/status?${queryParams}`,
37
+ {
38
+ signal: options?.signal,
39
+ }
40
+ )
41
+ }
@@ -0,0 +1,52 @@
1
+ import type { LiFiStep, RequestOptions, SignedLiFiStep } from '@lifi/types'
2
+ import { ChainId } from '@lifi/types'
3
+ import type { SDKClient } from '../types/core.js'
4
+ import { isStep } from '../utils/isStep.js'
5
+ import { request } from '../utils/request.js'
6
+
7
+ /**
8
+ * Get the transaction data for a single step of a route
9
+ * @param client - The SDK client
10
+ * @param step - The step object.
11
+ * @param options - Request options
12
+ * @returns The step populated with the transaction data.
13
+ * @throws {LiFiError} Throws a LiFiError if request fails.
14
+ */
15
+ export const getStepTransaction = async (
16
+ client: SDKClient,
17
+ step: LiFiStep | SignedLiFiStep,
18
+ options?: RequestOptions
19
+ ): Promise<LiFiStep> => {
20
+ if (!isStep(step)) {
21
+ // While the validation fails for some users we should not enforce it
22
+ console.warn('SDK Validation: Invalid Step', step)
23
+ }
24
+
25
+ const { config } = client
26
+
27
+ let requestUrl = `${config.apiUrl}/advanced/stepTransaction`
28
+ const jitoBundle = config.routeOptions?.jitoBundle
29
+ const svmSponsor = config.routeOptions?.svmSponsor
30
+
31
+ if (step.action.fromChainId === ChainId.SOL) {
32
+ const queryParams = new URLSearchParams()
33
+ if (jitoBundle) {
34
+ queryParams.set('jitoBundle', jitoBundle.toString())
35
+ }
36
+ if (svmSponsor) {
37
+ queryParams.set('svmSponsor', svmSponsor)
38
+ }
39
+ if (queryParams.size > 0) {
40
+ requestUrl = `${requestUrl}?${queryParams}`
41
+ }
42
+ }
43
+
44
+ return await request<LiFiStep>(config, requestUrl, {
45
+ method: 'POST',
46
+ headers: {
47
+ 'Content-Type': 'application/json',
48
+ },
49
+ body: JSON.stringify(step),
50
+ signal: options?.signal,
51
+ })
52
+ }
@@ -0,0 +1,47 @@
1
+ import type {
2
+ ChainId,
3
+ ChainKey,
4
+ RequestOptions,
5
+ TokenExtended,
6
+ } from '@lifi/types'
7
+ import { ValidationError } from '../errors/errors.js'
8
+ import { SDKError } from '../errors/SDKError.js'
9
+ import type { SDKClient } from '../types/core.js'
10
+ import { request } from '../utils/request.js'
11
+
12
+ /**
13
+ * Fetch information about a Token
14
+ * @param client - The SDK client
15
+ * @param chain - Id or key of the chain that contains the token
16
+ * @param token - Address or symbol of the token on the requested chain
17
+ * @param options - Request options
18
+ * @throws {LiFiError} - Throws a LiFiError if request fails
19
+ * @returns Token information
20
+ */
21
+ export const getToken = async (
22
+ client: SDKClient,
23
+ chain: ChainKey | ChainId,
24
+ token: string,
25
+ options?: RequestOptions
26
+ ): Promise<TokenExtended> => {
27
+ if (!chain) {
28
+ throw new SDKError(
29
+ new ValidationError('Required parameter "chain" is missing.')
30
+ )
31
+ }
32
+ if (!token) {
33
+ throw new SDKError(
34
+ new ValidationError('Required parameter "token" is missing.')
35
+ )
36
+ }
37
+ return await request<TokenExtended>(
38
+ client.config,
39
+ `${client.config.apiUrl}/token?${new URLSearchParams({
40
+ chain,
41
+ token,
42
+ } as Record<string, string>)}`,
43
+ {
44
+ signal: options?.signal,
45
+ }
46
+ )
47
+ }
@@ -0,0 +1,21 @@
1
+ import type { Token, TokenAmount } from '@lifi/types'
2
+ import type { SDKClient } from '../types/core.js'
3
+ import { getTokenBalances } from './getTokenBalances.js'
4
+
5
+ /**
6
+ * Returns the balances of a specific token a wallet holds across all aggregated chains.
7
+ * @param client - The SDK client.
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 validation fails.
12
+ * @throws {Error} Throws an Error if the SDK Provider for the wallet address is not found.
13
+ */
14
+ export const getTokenBalance = async (
15
+ client: SDKClient,
16
+ walletAddress: string,
17
+ token: Token
18
+ ): Promise<TokenAmount | null> => {
19
+ const tokenAmounts = await getTokenBalances(client, walletAddress, [token])
20
+ return tokenAmounts.length ? tokenAmounts[0] : null
21
+ }
@@ -0,0 +1,47 @@
1
+ import type {
2
+ Token,
3
+ TokenAmount,
4
+ TokenAmountExtended,
5
+ TokenExtended,
6
+ } from '@lifi/types'
7
+ import type { SDKClient } from '../types/core.js'
8
+ import { getTokenBalancesByChain } from './getTokenBalancesByChain.js'
9
+
10
+ /**
11
+ * Returns the balances for a list tokens a wallet holds across all aggregated chains.
12
+ * @param client - The SDK client.
13
+ * @param walletAddress - A wallet address.
14
+ * @param tokens - A list of Token (or TokenExtended) objects.
15
+ * @returns A list of objects containing the tokens and the amounts on different chains.
16
+ * @throws {ValidationError} Throws a ValidationError if validation fails.
17
+ * @throws {Error} Throws an Error if the SDK Provider for the wallet address is not found.
18
+ */
19
+ export async function getTokenBalances(
20
+ client: SDKClient,
21
+ walletAddress: string,
22
+ tokens: Token[]
23
+ ): Promise<TokenAmount[]>
24
+ export async function getTokenBalances(
25
+ client: SDKClient,
26
+ walletAddress: string,
27
+ tokens: TokenExtended[]
28
+ ): Promise<TokenAmountExtended[]> {
29
+ // split by chain
30
+ const tokensByChain = tokens.reduce(
31
+ (tokens, token) => {
32
+ if (!tokens[token.chainId]) {
33
+ tokens[token.chainId] = []
34
+ }
35
+ tokens[token.chainId].push(token)
36
+ return tokens
37
+ },
38
+ {} as { [chainId: number]: Token[] | TokenExtended[] }
39
+ )
40
+
41
+ const tokenAmountsByChain = await getTokenBalancesByChain(
42
+ client,
43
+ walletAddress,
44
+ tokensByChain
45
+ )
46
+ return Object.values(tokenAmountsByChain).flat()
47
+ }