@eulerxyz/euler-v2-sdk 0.1.0-beta

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 (399) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -0
  3. package/dist/src/entities/Account.d.ts +242 -0
  4. package/dist/src/entities/Account.js +509 -0
  5. package/dist/src/entities/Account.js.map +1 -0
  6. package/dist/src/entities/ERC4626Vault.d.ts +56 -0
  7. package/dist/src/entities/ERC4626Vault.js +94 -0
  8. package/dist/src/entities/ERC4626Vault.js.map +1 -0
  9. package/dist/src/entities/EVault.d.ts +159 -0
  10. package/dist/src/entities/EVault.js +224 -0
  11. package/dist/src/entities/EVault.js.map +1 -0
  12. package/dist/src/entities/EulerEarn.d.ts +69 -0
  13. package/dist/src/entities/EulerEarn.js +89 -0
  14. package/dist/src/entities/EulerEarn.js.map +1 -0
  15. package/dist/src/entities/EulerLabels.d.ts +53 -0
  16. package/dist/src/entities/EulerLabels.js +2 -0
  17. package/dist/src/entities/EulerLabels.js.map +1 -0
  18. package/dist/src/entities/SecuritizeCollateralVault.d.ts +16 -0
  19. package/dist/src/entities/SecuritizeCollateralVault.js +22 -0
  20. package/dist/src/entities/SecuritizeCollateralVault.js.map +1 -0
  21. package/dist/src/entities/Wallet.d.ts +27 -0
  22. package/dist/src/entities/Wallet.js +21 -0
  23. package/dist/src/entities/Wallet.js.map +1 -0
  24. package/dist/src/index.d.ts +43 -0
  25. package/dist/src/index.js +46 -0
  26. package/dist/src/index.js.map +1 -0
  27. package/dist/src/plugins/batchSimulation.d.ts +34 -0
  28. package/dist/src/plugins/batchSimulation.js +83 -0
  29. package/dist/src/plugins/batchSimulation.js.map +1 -0
  30. package/dist/src/plugins/index.d.ts +4 -0
  31. package/dist/src/plugins/index.js +5 -0
  32. package/dist/src/plugins/index.js.map +1 -0
  33. package/dist/src/plugins/keyring/index.d.ts +1 -0
  34. package/dist/src/plugins/keyring/index.js +2 -0
  35. package/dist/src/plugins/keyring/index.js.map +1 -0
  36. package/dist/src/plugins/keyring/keyringPlugin.d.ts +41 -0
  37. package/dist/src/plugins/keyring/keyringPlugin.js +182 -0
  38. package/dist/src/plugins/keyring/keyringPlugin.js.map +1 -0
  39. package/dist/src/plugins/pyth/index.d.ts +1 -0
  40. package/dist/src/plugins/pyth/index.js +2 -0
  41. package/dist/src/plugins/pyth/index.js.map +1 -0
  42. package/dist/src/plugins/pyth/pythPlugin.d.ts +29 -0
  43. package/dist/src/plugins/pyth/pythPlugin.js +190 -0
  44. package/dist/src/plugins/pyth/pythPlugin.js.map +1 -0
  45. package/dist/src/plugins/types.d.ts +39 -0
  46. package/dist/src/plugins/types.js +16 -0
  47. package/dist/src/plugins/types.js.map +1 -0
  48. package/dist/src/sdk/buildSDK.d.ts +77 -0
  49. package/dist/src/sdk/buildSDK.js +366 -0
  50. package/dist/src/sdk/buildSDK.js.map +1 -0
  51. package/dist/src/sdk/defaultConfig.d.ts +26 -0
  52. package/dist/src/sdk/defaultConfig.js +68 -0
  53. package/dist/src/sdk/defaultConfig.js.map +1 -0
  54. package/dist/src/sdk/sdk.d.ts +73 -0
  55. package/dist/src/sdk/sdk.js +67 -0
  56. package/dist/src/sdk/sdk.js.map +1 -0
  57. package/dist/src/services/abiService/abiService.d.ts +13 -0
  58. package/dist/src/services/abiService/abiService.js +25 -0
  59. package/dist/src/services/abiService/abiService.js.map +1 -0
  60. package/dist/src/services/abiService/index.d.ts +2 -0
  61. package/dist/src/services/abiService/index.js +2 -0
  62. package/dist/src/services/abiService/index.js.map +1 -0
  63. package/dist/src/services/accountService/accountService.d.ts +44 -0
  64. package/dist/src/services/accountService/accountService.js +193 -0
  65. package/dist/src/services/accountService/accountService.js.map +1 -0
  66. package/dist/src/services/accountService/accountServiceConfig.d.ts +15 -0
  67. package/dist/src/services/accountService/accountServiceConfig.js +2 -0
  68. package/dist/src/services/accountService/accountServiceConfig.js.map +1 -0
  69. package/dist/src/services/accountService/adapters/accountOnchainAdapter/abis/accountLensAbi.d.ts +960 -0
  70. package/dist/src/services/accountService/adapters/accountOnchainAdapter/abis/accountLensAbi.js +1230 -0
  71. package/dist/src/services/accountService/adapters/accountOnchainAdapter/abis/accountLensAbi.js.map +1 -0
  72. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.d.ts +17 -0
  73. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.js +158 -0
  74. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.js.map +1 -0
  75. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountLensTypes.d.ts +48 -0
  76. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountLensTypes.js +2 -0
  77. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountLensTypes.js.map +1 -0
  78. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.d.ts +210 -0
  79. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.js +287 -0
  80. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.js.map +1 -0
  81. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountVaultsSubgraphAdapter.d.ts +22 -0
  82. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountVaultsSubgraphAdapter.js +80 -0
  83. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountVaultsSubgraphAdapter.js.map +1 -0
  84. package/dist/src/services/accountService/adapters/accountOutputNormalization.d.ts +8 -0
  85. package/dist/src/services/accountService/adapters/accountOutputNormalization.js +50 -0
  86. package/dist/src/services/accountService/adapters/accountOutputNormalization.js.map +1 -0
  87. package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.d.ts +62 -0
  88. package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.js +287 -0
  89. package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.js.map +1 -0
  90. package/dist/src/services/accountService/adapters/accountVaultsSubgraphAdapter/accountVaultsSubgraphAdapter.d.ts +1 -0
  91. package/dist/src/services/accountService/adapters/accountVaultsSubgraphAdapter/accountVaultsSubgraphAdapter.js +2 -0
  92. package/dist/src/services/accountService/adapters/accountVaultsSubgraphAdapter/accountVaultsSubgraphAdapter.js.map +1 -0
  93. package/dist/src/services/accountService/index.d.ts +5 -0
  94. package/dist/src/services/accountService/index.js +4 -0
  95. package/dist/src/services/accountService/index.js.map +1 -0
  96. package/dist/src/services/deploymentService/deploymentService.d.ts +116 -0
  97. package/dist/src/services/deploymentService/deploymentService.js +44 -0
  98. package/dist/src/services/deploymentService/deploymentService.js.map +1 -0
  99. package/dist/src/services/deploymentService/index.d.ts +2 -0
  100. package/dist/src/services/deploymentService/index.js +2 -0
  101. package/dist/src/services/deploymentService/index.js.map +1 -0
  102. package/dist/src/services/eulerLabelsService/eulerLabelsService.d.ts +54 -0
  103. package/dist/src/services/eulerLabelsService/eulerLabelsService.js +178 -0
  104. package/dist/src/services/eulerLabelsService/eulerLabelsService.js.map +1 -0
  105. package/dist/src/services/eulerLabelsService/index.d.ts +2 -0
  106. package/dist/src/services/eulerLabelsService/index.js +2 -0
  107. package/dist/src/services/eulerLabelsService/index.js.map +1 -0
  108. package/dist/src/services/executionService/abis/eVaultAbi.d.ts +1948 -0
  109. package/dist/src/services/executionService/abis/eVaultAbi.js +2517 -0
  110. package/dist/src/services/executionService/abis/eVaultAbi.js.map +1 -0
  111. package/dist/src/services/executionService/abis/ethereumVaultConnectorAbi.d.ts +1070 -0
  112. package/dist/src/services/executionService/abis/ethereumVaultConnectorAbi.js +1387 -0
  113. package/dist/src/services/executionService/abis/ethereumVaultConnectorAbi.js.map +1 -0
  114. package/dist/src/services/executionService/abis/permit2PermitAbi.d.ts +52 -0
  115. package/dist/src/services/executionService/abis/permit2PermitAbi.js +36 -0
  116. package/dist/src/services/executionService/abis/permit2PermitAbi.js.map +1 -0
  117. package/dist/src/services/executionService/abis/swapVerifierAbi.d.ts +139 -0
  118. package/dist/src/services/executionService/abis/swapVerifierAbi.js +70 -0
  119. package/dist/src/services/executionService/abis/swapVerifierAbi.js.map +1 -0
  120. package/dist/src/services/executionService/abis/swapperAbi.d.ts +270 -0
  121. package/dist/src/services/executionService/abis/swapperAbi.js +152 -0
  122. package/dist/src/services/executionService/abis/swapperAbi.js.map +1 -0
  123. package/dist/src/services/executionService/executionService.d.ts +619 -0
  124. package/dist/src/services/executionService/executionService.js +2037 -0
  125. package/dist/src/services/executionService/executionService.js.map +1 -0
  126. package/dist/src/services/executionService/executionServiceTypes.d.ts +423 -0
  127. package/dist/src/services/executionService/executionServiceTypes.js +14 -0
  128. package/dist/src/services/executionService/executionServiceTypes.js.map +1 -0
  129. package/dist/src/services/executionService/index.d.ts +7 -0
  130. package/dist/src/services/executionService/index.js +7 -0
  131. package/dist/src/services/executionService/index.js.map +1 -0
  132. package/dist/src/services/feeFlowService/feeFlowService.d.ts +22 -0
  133. package/dist/src/services/feeFlowService/feeFlowService.js +239 -0
  134. package/dist/src/services/feeFlowService/feeFlowService.js.map +1 -0
  135. package/dist/src/services/feeFlowService/feeFlowServiceTypes.d.ts +42 -0
  136. package/dist/src/services/feeFlowService/feeFlowServiceTypes.js +2 -0
  137. package/dist/src/services/feeFlowService/feeFlowServiceTypes.js.map +1 -0
  138. package/dist/src/services/feeFlowService/index.d.ts +2 -0
  139. package/dist/src/services/feeFlowService/index.js +2 -0
  140. package/dist/src/services/feeFlowService/index.js.map +1 -0
  141. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/index.d.ts +2 -0
  142. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/index.js +2 -0
  143. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/index.js.map +1 -0
  144. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3Adapter.d.ts +21 -0
  145. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3Adapter.js +125 -0
  146. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3Adapter.js.map +1 -0
  147. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.d.ts +30 -0
  148. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.js +2 -0
  149. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.js.map +1 -0
  150. package/dist/src/services/intrinsicApyService/index.d.ts +4 -0
  151. package/dist/src/services/intrinsicApyService/index.js +3 -0
  152. package/dist/src/services/intrinsicApyService/index.js.map +1 -0
  153. package/dist/src/services/intrinsicApyService/intrinsicApyService.d.ts +28 -0
  154. package/dist/src/services/intrinsicApyService/intrinsicApyService.js +42 -0
  155. package/dist/src/services/intrinsicApyService/intrinsicApyService.js.map +1 -0
  156. package/dist/src/services/oracleAdapterService/index.d.ts +1 -0
  157. package/dist/src/services/oracleAdapterService/index.js +2 -0
  158. package/dist/src/services/oracleAdapterService/index.js.map +1 -0
  159. package/dist/src/services/oracleAdapterService/oracleAdapterService.d.ts +40 -0
  160. package/dist/src/services/oracleAdapterService/oracleAdapterService.js +65 -0
  161. package/dist/src/services/oracleAdapterService/oracleAdapterService.js.map +1 -0
  162. package/dist/src/services/priceService/backendClient.d.ts +70 -0
  163. package/dist/src/services/priceService/backendClient.js +108 -0
  164. package/dist/src/services/priceService/backendClient.js.map +1 -0
  165. package/dist/src/services/priceService/index.d.ts +2 -0
  166. package/dist/src/services/priceService/index.js +3 -0
  167. package/dist/src/services/priceService/index.js.map +1 -0
  168. package/dist/src/services/priceService/priceService.d.ts +133 -0
  169. package/dist/src/services/priceService/priceService.js +499 -0
  170. package/dist/src/services/priceService/priceService.js.map +1 -0
  171. package/dist/src/services/priceService/utilsLensPriceAbi.d.ts +60 -0
  172. package/dist/src/services/priceService/utilsLensPriceAbi.js +31 -0
  173. package/dist/src/services/priceService/utilsLensPriceAbi.js.map +1 -0
  174. package/dist/src/services/providerService/index.d.ts +2 -0
  175. package/dist/src/services/providerService/index.js +2 -0
  176. package/dist/src/services/providerService/index.js.map +1 -0
  177. package/dist/src/services/providerService/providerService.d.ts +11 -0
  178. package/dist/src/services/providerService/providerService.js +61 -0
  179. package/dist/src/services/providerService/providerService.js.map +1 -0
  180. package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/index.d.ts +2 -0
  181. package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/index.js +2 -0
  182. package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/index.js.map +1 -0
  183. package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.d.ts +48 -0
  184. package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.js +391 -0
  185. package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.js.map +1 -0
  186. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/index.d.ts +2 -0
  187. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/index.js +2 -0
  188. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/index.js.map +1 -0
  189. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.d.ts +23 -0
  190. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js +296 -0
  191. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js.map +1 -0
  192. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.d.ts +110 -0
  193. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.js +2 -0
  194. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.js.map +1 -0
  195. package/dist/src/services/rewardsService/index.d.ts +5 -0
  196. package/dist/src/services/rewardsService/index.js +4 -0
  197. package/dist/src/services/rewardsService/index.js.map +1 -0
  198. package/dist/src/services/rewardsService/rewardsService.d.ts +34 -0
  199. package/dist/src/services/rewardsService/rewardsService.js +298 -0
  200. package/dist/src/services/rewardsService/rewardsService.js.map +1 -0
  201. package/dist/src/services/rewardsService/rewardsServiceTypes.d.ts +270 -0
  202. package/dist/src/services/rewardsService/rewardsServiceTypes.js +2 -0
  203. package/dist/src/services/rewardsService/rewardsServiceTypes.js.map +1 -0
  204. package/dist/src/services/simulationService/index.d.ts +2 -0
  205. package/dist/src/services/simulationService/index.js +2 -0
  206. package/dist/src/services/simulationService/index.js.map +1 -0
  207. package/dist/src/services/simulationService/simulationService.d.ts +88 -0
  208. package/dist/src/services/simulationService/simulationService.js +497 -0
  209. package/dist/src/services/simulationService/simulationService.js.map +1 -0
  210. package/dist/src/services/swapService/index.d.ts +3 -0
  211. package/dist/src/services/swapService/index.js +3 -0
  212. package/dist/src/services/swapService/index.js.map +1 -0
  213. package/dist/src/services/swapService/swapService.d.ts +121 -0
  214. package/dist/src/services/swapService/swapService.js +329 -0
  215. package/dist/src/services/swapService/swapService.js.map +1 -0
  216. package/dist/src/services/swapService/swapServiceTypes.d.ts +130 -0
  217. package/dist/src/services/swapService/swapServiceTypes.js +16 -0
  218. package/dist/src/services/swapService/swapServiceTypes.js.map +1 -0
  219. package/dist/src/services/swapService/swapVerifierAbi.d.ts +139 -0
  220. package/dist/src/services/swapService/swapVerifierAbi.js +178 -0
  221. package/dist/src/services/swapService/swapVerifierAbi.js.map +1 -0
  222. package/dist/src/services/tokenlistService/index.d.ts +3 -0
  223. package/dist/src/services/tokenlistService/index.js +2 -0
  224. package/dist/src/services/tokenlistService/index.js.map +1 -0
  225. package/dist/src/services/tokenlistService/tokenlistService.d.ts +31 -0
  226. package/dist/src/services/tokenlistService/tokenlistService.js +56 -0
  227. package/dist/src/services/tokenlistService/tokenlistService.js.map +1 -0
  228. package/dist/src/services/tokenlistService/tokenlistServiceTypes.d.ts +33 -0
  229. package/dist/src/services/tokenlistService/tokenlistServiceTypes.js +2 -0
  230. package/dist/src/services/tokenlistService/tokenlistServiceTypes.js.map +1 -0
  231. package/dist/src/services/vaults/IVaultService.d.ts +47 -0
  232. package/dist/src/services/vaults/IVaultService.js +2 -0
  233. package/dist/src/services/vaults/IVaultService.js.map +1 -0
  234. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/abis/vaultLensAbi.d.ts +1280 -0
  235. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/abis/vaultLensAbi.js +1640 -0
  236. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/abis/vaultLensAbi.js.map +1 -0
  237. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultLensTypes.d.ts +97 -0
  238. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultLensTypes.js +9 -0
  239. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultLensTypes.js.map +1 -0
  240. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.d.ts +141 -0
  241. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js +189 -0
  242. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js.map +1 -0
  243. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.d.ts +10 -0
  244. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.js +454 -0
  245. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.js.map +1 -0
  246. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.d.ts +25 -0
  247. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js +214 -0
  248. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js.map +1 -0
  249. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.d.ts +5 -0
  250. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.js +795 -0
  251. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.js.map +1 -0
  252. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterTypes.d.ts +146 -0
  253. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterTypes.js +2 -0
  254. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterTypes.js.map +1 -0
  255. package/dist/src/services/vaults/eVaultService/eVaultService.d.ts +74 -0
  256. package/dist/src/services/vaults/eVaultService/eVaultService.js +362 -0
  257. package/dist/src/services/vaults/eVaultService/eVaultService.js.map +1 -0
  258. package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.d.ts +15 -0
  259. package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.js +2 -0
  260. package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.js.map +1 -0
  261. package/dist/src/services/vaults/eVaultService/index.d.ts +5 -0
  262. package/dist/src/services/vaults/eVaultService/index.js +4 -0
  263. package/dist/src/services/vaults/eVaultService/index.js.map +1 -0
  264. package/dist/src/services/vaults/eulerEarnService/adapters/abis/eulerEarnVaultLensAbi.d.ts +468 -0
  265. package/dist/src/services/vaults/eulerEarnService/adapters/abis/eulerEarnVaultLensAbi.js +600 -0
  266. package/dist/src/services/vaults/eulerEarnService/adapters/abis/eulerEarnVaultLensAbi.js.map +1 -0
  267. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.d.ts +10 -0
  268. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.js +151 -0
  269. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.js.map +1 -0
  270. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnLensTypes.d.ts +55 -0
  271. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnLensTypes.js +2 -0
  272. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnLensTypes.js.map +1 -0
  273. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.d.ts +109 -0
  274. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.js +238 -0
  275. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.js.map +1 -0
  276. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.d.ts +100 -0
  277. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.js +373 -0
  278. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.js.map +1 -0
  279. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.d.ts +77 -0
  280. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.js +298 -0
  281. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.js.map +1 -0
  282. package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.d.ts +13 -0
  283. package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.js +2 -0
  284. package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.js.map +1 -0
  285. package/dist/src/services/vaults/eulerEarnService/index.d.ts +5 -0
  286. package/dist/src/services/vaults/eulerEarnService/index.js +4 -0
  287. package/dist/src/services/vaults/eulerEarnService/index.js.map +1 -0
  288. package/dist/src/services/vaults/index.d.ts +1 -0
  289. package/dist/src/services/vaults/index.js +2 -0
  290. package/dist/src/services/vaults/index.js.map +1 -0
  291. package/dist/src/services/vaults/securitizeVaultService/adapters/abis/erc4626EvcCollateralSecuritizeAbi.d.ts +22 -0
  292. package/dist/src/services/vaults/securitizeVaultService/adapters/abis/erc4626EvcCollateralSecuritizeAbi.js +18 -0
  293. package/dist/src/services/vaults/securitizeVaultService/adapters/abis/erc4626EvcCollateralSecuritizeAbi.js.map +1 -0
  294. package/dist/src/services/vaults/securitizeVaultService/adapters/abis/utilsLensAbi.d.ts +64 -0
  295. package/dist/src/services/vaults/securitizeVaultService/adapters/abis/utilsLensAbi.js +30 -0
  296. package/dist/src/services/vaults/securitizeVaultService/adapters/abis/utilsLensAbi.js.map +1 -0
  297. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.d.ts +4 -0
  298. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.js +53 -0
  299. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.js.map +1 -0
  300. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultLensTypes.d.ts +16 -0
  301. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultLensTypes.js +2 -0
  302. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultLensTypes.js.map +1 -0
  303. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.d.ts +37 -0
  304. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.js +113 -0
  305. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.js.map +1 -0
  306. package/dist/src/services/vaults/securitizeVaultService/index.d.ts +2 -0
  307. package/dist/src/services/vaults/securitizeVaultService/index.js +3 -0
  308. package/dist/src/services/vaults/securitizeVaultService/index.js.map +1 -0
  309. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.d.ts +52 -0
  310. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.js +190 -0
  311. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.js.map +1 -0
  312. package/dist/src/services/vaults/vaultMetaService/adapters/IVaultTypeAdapter.d.ts +29 -0
  313. package/dist/src/services/vaults/vaultMetaService/adapters/IVaultTypeAdapter.js +2 -0
  314. package/dist/src/services/vaults/vaultMetaService/adapters/IVaultTypeAdapter.js.map +1 -0
  315. package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeSubgraphAdapter.d.ts +18 -0
  316. package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeSubgraphAdapter.js +82 -0
  317. package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeSubgraphAdapter.js.map +1 -0
  318. package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.d.ts +35 -0
  319. package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.js +154 -0
  320. package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.js.map +1 -0
  321. package/dist/src/services/vaults/vaultMetaService/index.d.ts +4 -0
  322. package/dist/src/services/vaults/vaultMetaService/index.js +4 -0
  323. package/dist/src/services/vaults/vaultMetaService/index.js.map +1 -0
  324. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.d.ts +71 -0
  325. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.js +283 -0
  326. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.js.map +1 -0
  327. package/dist/src/services/walletService/adapters/walletOnchainAdapter.d.ts +20 -0
  328. package/dist/src/services/walletService/adapters/walletOnchainAdapter.js +222 -0
  329. package/dist/src/services/walletService/adapters/walletOnchainAdapter.js.map +1 -0
  330. package/dist/src/services/walletService/index.d.ts +3 -0
  331. package/dist/src/services/walletService/index.js +2 -0
  332. package/dist/src/services/walletService/index.js.map +1 -0
  333. package/dist/src/services/walletService/walletService.d.ts +19 -0
  334. package/dist/src/services/walletService/walletService.js +37 -0
  335. package/dist/src/services/walletService/walletService.js.map +1 -0
  336. package/dist/src/utils/accountComputations.d.ts +96 -0
  337. package/dist/src/utils/accountComputations.js +297 -0
  338. package/dist/src/utils/accountComputations.js.map +1 -0
  339. package/dist/src/utils/batch.d.ts +2 -0
  340. package/dist/src/utils/batch.js +51 -0
  341. package/dist/src/utils/batch.js.map +1 -0
  342. package/dist/src/utils/buildQuery.d.ts +19 -0
  343. package/dist/src/utils/buildQuery.js +72 -0
  344. package/dist/src/utils/buildQuery.js.map +1 -0
  345. package/dist/src/utils/callBundler.d.ts +32 -0
  346. package/dist/src/utils/callBundler.js +93 -0
  347. package/dist/src/utils/callBundler.js.map +1 -0
  348. package/dist/src/utils/decodeSmartContractErrors.d.ts +13 -0
  349. package/dist/src/utils/decodeSmartContractErrors.js +311 -0
  350. package/dist/src/utils/decodeSmartContractErrors.js.map +1 -0
  351. package/dist/src/utils/entityDiagnostics.d.ts +28 -0
  352. package/dist/src/utils/entityDiagnostics.js +72 -0
  353. package/dist/src/utils/entityDiagnostics.js.map +1 -0
  354. package/dist/src/utils/eulerErrorSelectors.d.ts +226 -0
  355. package/dist/src/utils/eulerErrorSelectors.js +227 -0
  356. package/dist/src/utils/eulerErrorSelectors.js.map +1 -0
  357. package/dist/src/utils/irm.d.ts +60 -0
  358. package/dist/src/utils/irm.js +213 -0
  359. package/dist/src/utils/irm.js.map +1 -0
  360. package/dist/src/utils/normalization.d.ts +30 -0
  361. package/dist/src/utils/normalization.js +79 -0
  362. package/dist/src/utils/normalization.js.map +1 -0
  363. package/dist/src/utils/oracle.d.ts +107 -0
  364. package/dist/src/utils/oracle.js +437 -0
  365. package/dist/src/utils/oracle.js.map +1 -0
  366. package/dist/src/utils/parsing.d.ts +29 -0
  367. package/dist/src/utils/parsing.js +199 -0
  368. package/dist/src/utils/parsing.js.map +1 -0
  369. package/dist/src/utils/queryNames.d.ts +28 -0
  370. package/dist/src/utils/queryNames.js +2 -0
  371. package/dist/src/utils/queryNames.js.map +1 -0
  372. package/dist/src/utils/stateOverrides/accessList.d.ts +14 -0
  373. package/dist/src/utils/stateOverrides/accessList.js +24 -0
  374. package/dist/src/utils/stateOverrides/accessList.js.map +1 -0
  375. package/dist/src/utils/stateOverrides/approvalOverrides.d.ts +20 -0
  376. package/dist/src/utils/stateOverrides/approvalOverrides.js +111 -0
  377. package/dist/src/utils/stateOverrides/approvalOverrides.js.map +1 -0
  378. package/dist/src/utils/stateOverrides/balanceOverrides.d.ts +13 -0
  379. package/dist/src/utils/stateOverrides/balanceOverrides.js +145 -0
  380. package/dist/src/utils/stateOverrides/balanceOverrides.js.map +1 -0
  381. package/dist/src/utils/stateOverrides/getStateOverrides.d.ts +31 -0
  382. package/dist/src/utils/stateOverrides/getStateOverrides.js +86 -0
  383. package/dist/src/utils/stateOverrides/getStateOverrides.js.map +1 -0
  384. package/dist/src/utils/stateOverrides/index.d.ts +4 -0
  385. package/dist/src/utils/stateOverrides/index.js +5 -0
  386. package/dist/src/utils/stateOverrides/index.js.map +1 -0
  387. package/dist/src/utils/stateOverrides/mergeStateOverrides.d.ts +6 -0
  388. package/dist/src/utils/stateOverrides/mergeStateOverrides.js +40 -0
  389. package/dist/src/utils/stateOverrides/mergeStateOverrides.js.map +1 -0
  390. package/dist/src/utils/stateOverrides/types.d.ts +5 -0
  391. package/dist/src/utils/stateOverrides/types.js +2 -0
  392. package/dist/src/utils/stateOverrides/types.js.map +1 -0
  393. package/dist/src/utils/subAccounts.d.ts +6 -0
  394. package/dist/src/utils/subAccounts.js +24 -0
  395. package/dist/src/utils/subAccounts.js.map +1 -0
  396. package/dist/src/utils/types.d.ts +20 -0
  397. package/dist/src/utils/types.js +8 -0
  398. package/dist/src/utils/types.js.map +1 -0
  399. package/package.json +67 -0
@@ -0,0 +1,121 @@
1
+ import type { SwapQuote, SwapQuoteRequest, SwapsApiResponse, SwapProvidersApiResponse, GetRepayQuoteArgs, GetDepositQuoteArgs } from "./swapServiceTypes.js";
2
+ import { type BuildQueryFn } from "../../utils/buildQuery.js";
3
+ export interface SwapServiceConfig {
4
+ swapApiUrl: string;
5
+ defaultDeadline?: number;
6
+ }
7
+ export interface ISwapService {
8
+ /** Fetches raw swap quotes from the API. Prefer fetchRepayQuotes or fetchDepositQuote for repay/collateral-swap flows. */
9
+ fetchSwapQuotes(args: SwapQuoteRequest): Promise<SwapQuote[]>;
10
+ /** Fetches swap quotes for repaying debt by swapping collateral (withdraw → swap → repay). */
11
+ fetchRepayQuotes(args: GetRepayQuoteArgs): Promise<SwapQuote[]>;
12
+ /** Fetches swap quotes for swapping collateral between vaults (withdraw → swap → deposit). */
13
+ fetchDepositQuote(args: GetDepositQuoteArgs): Promise<SwapQuote[]>;
14
+ /** Fetches available swap providers for a given chain. */
15
+ fetchProviders(chainId: number): Promise<string[]>;
16
+ }
17
+ export declare class SwapService implements ISwapService {
18
+ private readonly config;
19
+ constructor(config: SwapServiceConfig, buildQuery?: BuildQueryFn);
20
+ querySwapQuotes: (url: string) => Promise<SwapsApiResponse>;
21
+ setQuerySwapQuotes(fn: typeof this.querySwapQuotes): void;
22
+ querySwapProviders: (url: string) => Promise<SwapProvidersApiResponse>;
23
+ setQuerySwapProviders(fn: typeof this.querySwapProviders): void;
24
+ /**
25
+ * Fetches swap quotes from the swap API for a given token pair and amount.
26
+ * Validates verifier data for each quote. Use fetchRepayQuotes or fetchDepositQuote for repay/collateral-swap flows.
27
+ *
28
+ * @param request - Swap quote request
29
+ * @param request.chainId - Chain ID
30
+ * @param request.tokenIn - Token to sell (input)
31
+ * @param request.tokenOut - Token to buy (output); must differ from tokenIn
32
+ * @param request.accountIn - Sub-account providing the input (e.g. withdrawing from vaultIn)
33
+ * @param request.accountOut - Sub-account receiving the output (e.g. repay target or collateral receiver)
34
+ * @param request.amount - Exact-in: amount to sell; exact-out: amount to buy; exact-out repay: estimated amount to buy
35
+ * @param request.vaultIn - Vault to withdraw from (for returning unused input)
36
+ * @param request.receiver - Vault that receives the swap output (e.g. liability vault for repay, destination vault for deposit)
37
+ * @param request.origin - EOA sending the transaction (required, cannot be zero address)
38
+ * @param request.slippage - Slippage in percent (e.g. 1 = 1%); must be between 0 and 50
39
+ * @param request.swapperMode - EXACT_IN (0), EXACT_OUT (1), or TARGET_DEBT (2) for repay
40
+ * @param request.isRepay - If true, quote is for repaying debt (verify type debtMax)
41
+ * @param request.targetDebt - Target debt after repay (used when swapperMode is TARGET_DEBT)
42
+ * @param request.currentDebt - Current debt of the account (required when isRepay is true)
43
+ * @param request.deadline - Quote deadline timestamp in seconds (defaults to config defaultDeadline from now)
44
+ * @param request.dustAccount - Account receiving dust from over-swap repays (defaults to origin)
45
+ * @param request.provider - Optional preselected provider (see fetchProviders)
46
+ * @returns Promise of array of swap quotes (amounts, swap calldata, verifier calldata). Throws if tokenIn === tokenOut, origin is zero, or API/verifier validation fails.
47
+ */
48
+ fetchSwapQuotes(request: SwapQuoteRequest): Promise<SwapQuote[]>;
49
+ /**
50
+ * Fetches available swap providers for a given chain.
51
+ * The result is static per chain and can be cached for a long time.
52
+ *
53
+ * @param chainId - Chain ID
54
+ * @returns Promise of array of provider name strings
55
+ */
56
+ fetchProviders(chainId: number): Promise<string[]>;
57
+ /**
58
+ * Builds request parameters for the swap API
59
+ */
60
+ private buildRequestParams;
61
+ /**
62
+ * Validates that the verifier data matches what we expect
63
+ * This is a security measure to ensure the swap payload hasn't been tampered with
64
+ */
65
+ private validateVerifierData;
66
+ /**
67
+ * Fetches swap quotes for repaying debt by swapping collateral (e.g. withdraw collateral → swap → repay).
68
+ * Delegates to fetchSwapQuotes with isRepay true. fromAsset and liabilityAsset must differ.
69
+ *
70
+ * @param args - Repay quote arguments
71
+ * @param args.chainId - Chain ID
72
+ * @param args.fromVault - Vault to withdraw collateral from (source of swap input)
73
+ * @param args.fromAsset - Underlying asset of fromVault (tokenIn for the swap)
74
+ * @param args.fromAccount - Sub-account that holds the collateral in fromVault
75
+ * @param args.liabilityVault - Vault to repay debt to (receiver of swap output)
76
+ * @param args.liabilityAsset - Underlying asset of liabilityVault (tokenOut for the swap)
77
+ * @param args.currentDebt - Current debt of the account being repaid (must be > 0)
78
+ * @param args.toAccount - Sub-account whose debt is repaid (accountOut)
79
+ * @param args.origin - EOA sending the transaction
80
+ * @param args.swapperMode - EXACT_IN (sell fixed collateral amount) or TARGET_DEBT (repay toward target debt)
81
+ * @param args.slippage - Slippage in percent (0–50)
82
+ * @param args.collateralAmount - In EXACT_IN mode: amount of collateral to sell; required in EXACT_IN
83
+ * @param args.liabilityAmount - In TARGET_DEBT mode: amount of debt to repay; set to currentDebt for full repay
84
+ * @param args.deadline - Quote deadline timestamp in seconds (optional)
85
+ * @returns Promise of array of swap quotes for repay (verify type debtMax). Throws if currentDebt <= 0, fromAsset === liabilityAsset, or no quotes.
86
+ */
87
+ fetchRepayQuotes(args: GetRepayQuoteArgs): Promise<SwapQuote[]>;
88
+ /**
89
+ * Fetches swap quotes for swapping one asset to another and depositing into a destination vault.
90
+ * Delegates to fetchSwapQuotes with isRepay false and EXACT_IN mode.
91
+ *
92
+ * The swapped output tokens are always deposited into `toVault` for `toAccount` (verify type skimMin).
93
+ * Use `fetchSwapQuotes` directly with `transferOutputToReceiver` if you need to transfer output
94
+ * tokens to an address instead of depositing into a vault.
95
+ *
96
+ * `unusedInputReceiver` can redirect leftover input tokens to a wallet address instead of
97
+ * depositing them back into `fromVault` for `fromAccount`. When set, `fromVault` and
98
+ * `fromAccount` should be zero address.
99
+ *
100
+ * `skipSweepDepositOut` leaves the output tokens in the Swapper contract instead of depositing.
101
+ * Useful when the Swapper is the receiver and further processing is needed.
102
+ *
103
+ * @param args - Deposit/collateral-swap quote arguments
104
+ * @param args.chainId - Chain ID
105
+ * @param args.fromVault - Vault to withdraw collateral from (source). Use zero address when `unusedInputReceiver` is set.
106
+ * @param args.toVault - Vault to deposit swapped tokens into (destination, receiver)
107
+ * @param args.fromAccount - Sub-account that holds the collateral in fromVault. Use zero address when `unusedInputReceiver` is set.
108
+ * @param args.toAccount - Sub-account that will hold the new collateral in toVault
109
+ * @param args.fromAsset - Underlying asset of fromVault (tokenIn)
110
+ * @param args.toAsset - Underlying asset of toVault (tokenOut)
111
+ * @param args.amount - Amount of fromAsset to swap (exact-in)
112
+ * @param args.origin - EOA sending the transaction
113
+ * @param args.slippage - Slippage in percent (0–50)
114
+ * @param args.deadline - Quote deadline timestamp in seconds (optional)
115
+ * @param args.unusedInputReceiver - Address to receive unused input tokens instead of depositing back to fromVault/fromAccount (optional)
116
+ * @param args.skipSweepDepositOut - If true, output tokens are left in the Swapper (no deposit of output). (optional)
117
+ * @returns Promise of array of swap quotes (verify type skimMin). Throws if slippage invalid or no quotes.
118
+ */
119
+ fetchDepositQuote(args: GetDepositQuoteArgs): Promise<SwapQuote[]>;
120
+ private validateSlippage;
121
+ }
@@ -0,0 +1,329 @@
1
+ import { encodeFunctionData, getAddress } from "viem";
2
+ import { SwapperMode } from "./swapServiceTypes.js";
3
+ import { swapVerifierAbi } from "./swapVerifierAbi.js";
4
+ import { applyBuildQuery } from "../../utils/buildQuery.js";
5
+ const DEFAULT_DEADLINE = 1800; // 30 minutes
6
+ const MAX_SLIPPAGE = 50;
7
+ export class SwapService {
8
+ config;
9
+ constructor(config, buildQuery) {
10
+ this.config = config;
11
+ if (!config.swapApiUrl) {
12
+ throw new Error("Swap API URL is required");
13
+ }
14
+ if (buildQuery)
15
+ applyBuildQuery(this, buildQuery);
16
+ }
17
+ querySwapQuotes = async (url) => {
18
+ const response = await fetch(url);
19
+ if (!response.ok) {
20
+ const errorText = await response.text();
21
+ throw new Error(`Swap API request failed: ${response.status} ${errorText}`);
22
+ }
23
+ return response.json();
24
+ };
25
+ setQuerySwapQuotes(fn) {
26
+ this.querySwapQuotes = fn;
27
+ }
28
+ querySwapProviders = async (url) => {
29
+ const response = await fetch(url);
30
+ if (!response.ok) {
31
+ const errorText = await response.text();
32
+ throw new Error(`Swap API providers request failed: ${response.status} ${errorText}`);
33
+ }
34
+ return response.json();
35
+ };
36
+ setQuerySwapProviders(fn) {
37
+ this.querySwapProviders = fn;
38
+ }
39
+ /**
40
+ * Fetches swap quotes from the swap API for a given token pair and amount.
41
+ * Validates verifier data for each quote. Use fetchRepayQuotes or fetchDepositQuote for repay/collateral-swap flows.
42
+ *
43
+ * @param request - Swap quote request
44
+ * @param request.chainId - Chain ID
45
+ * @param request.tokenIn - Token to sell (input)
46
+ * @param request.tokenOut - Token to buy (output); must differ from tokenIn
47
+ * @param request.accountIn - Sub-account providing the input (e.g. withdrawing from vaultIn)
48
+ * @param request.accountOut - Sub-account receiving the output (e.g. repay target or collateral receiver)
49
+ * @param request.amount - Exact-in: amount to sell; exact-out: amount to buy; exact-out repay: estimated amount to buy
50
+ * @param request.vaultIn - Vault to withdraw from (for returning unused input)
51
+ * @param request.receiver - Vault that receives the swap output (e.g. liability vault for repay, destination vault for deposit)
52
+ * @param request.origin - EOA sending the transaction (required, cannot be zero address)
53
+ * @param request.slippage - Slippage in percent (e.g. 1 = 1%); must be between 0 and 50
54
+ * @param request.swapperMode - EXACT_IN (0), EXACT_OUT (1), or TARGET_DEBT (2) for repay
55
+ * @param request.isRepay - If true, quote is for repaying debt (verify type debtMax)
56
+ * @param request.targetDebt - Target debt after repay (used when swapperMode is TARGET_DEBT)
57
+ * @param request.currentDebt - Current debt of the account (required when isRepay is true)
58
+ * @param request.deadline - Quote deadline timestamp in seconds (defaults to config defaultDeadline from now)
59
+ * @param request.dustAccount - Account receiving dust from over-swap repays (defaults to origin)
60
+ * @param request.provider - Optional preselected provider (see fetchProviders)
61
+ * @returns Promise of array of swap quotes (amounts, swap calldata, verifier calldata). Throws if tokenIn === tokenOut, origin is zero, or API/verifier validation fails.
62
+ */
63
+ async fetchSwapQuotes(request) {
64
+ if (request.tokenIn === request.tokenOut) {
65
+ throw new Error("Token in and token out cannot be the same");
66
+ }
67
+ if (!request.origin ||
68
+ request.origin === "0x0000000000000000000000000000000000000000") {
69
+ throw new Error("origin must be provided for swap repay");
70
+ }
71
+ const params = this.buildRequestParams(request);
72
+ const searchParams = new URLSearchParams(params);
73
+ const jsonData = await this.querySwapQuotes(`${this.config.swapApiUrl}/swaps?${searchParams.toString()}`);
74
+ if (!jsonData.success) {
75
+ throw new Error("Swap API returned unsuccessful response");
76
+ }
77
+ // Validate verifier data for each quote
78
+ for (const quote of jsonData.data) {
79
+ this.validateVerifierData(request, quote);
80
+ }
81
+ return jsonData.data;
82
+ }
83
+ /**
84
+ * Fetches available swap providers for a given chain.
85
+ * The result is static per chain and can be cached for a long time.
86
+ *
87
+ * @param chainId - Chain ID
88
+ * @returns Promise of array of provider name strings
89
+ */
90
+ async fetchProviders(chainId) {
91
+ const params = new URLSearchParams({ chainId: chainId.toString() });
92
+ const jsonData = await this.querySwapProviders(`${this.config.swapApiUrl}/providers?${params.toString()}`);
93
+ if (!jsonData.success) {
94
+ throw new Error("Swap API providers returned unsuccessful response");
95
+ }
96
+ return jsonData.data;
97
+ }
98
+ /**
99
+ * Builds request parameters for the swap API
100
+ */
101
+ buildRequestParams(request) {
102
+ const deadline = request.deadline ||
103
+ Math.floor(Date.now() / 1000) +
104
+ (this.config.defaultDeadline || DEFAULT_DEADLINE);
105
+ const params = {
106
+ chainId: request.chainId.toString(),
107
+ tokenIn: getAddress(request.tokenIn),
108
+ tokenOut: getAddress(request.tokenOut),
109
+ amount: request.amount.toString(),
110
+ targetDebt: request.targetDebt.toString() || "0",
111
+ currentDebt: request.currentDebt.toString() || "0",
112
+ receiver: getAddress(request.receiver),
113
+ vaultIn: getAddress(request.vaultIn),
114
+ origin: getAddress(request.origin),
115
+ accountIn: getAddress(request.accountIn),
116
+ accountOut: getAddress(request.accountOut),
117
+ slippage: request.slippage.toString() || "0",
118
+ deadline: deadline.toString(),
119
+ swapperMode: request.swapperMode.toString() || SwapperMode.EXACT_IN.toString(),
120
+ dustAccount: request.dustAccount
121
+ ? getAddress(request.dustAccount)
122
+ : getAddress(request.origin),
123
+ isRepay: request.isRepay ? "true" : "false",
124
+ };
125
+ if (request.provider) {
126
+ params.provider = request.provider;
127
+ }
128
+ if (request.unusedInputReceiver) {
129
+ params.unusedInputReceiver = getAddress(request.unusedInputReceiver);
130
+ }
131
+ if (request.transferOutputToReceiver) {
132
+ params.transferOutputToReceiver = "true";
133
+ }
134
+ if (request.skipSweepDepositOut) {
135
+ params.skipSweepDepositOut = "true";
136
+ }
137
+ return params;
138
+ }
139
+ /**
140
+ * Validates that the verifier data matches what we expect
141
+ * This is a security measure to ensure the swap payload hasn't been tampered with
142
+ */
143
+ validateVerifierData(request, quote) {
144
+ if (!request.receiver || !request.accountOut) {
145
+ throw new Error("Missing swap params for verification");
146
+ }
147
+ let functionName;
148
+ let amount;
149
+ let firstArg; // vault or asset depending on verification type
150
+ let secondArg; // receiver or account depending on verification type
151
+ const adjustForInterest = (debtAmount) => (debtAmount * 10001n) / 10000n;
152
+ if (request.isRepay) {
153
+ functionName = "verifyDebtMax";
154
+ firstArg = request.receiver;
155
+ secondArg = request.accountOut;
156
+ if (request.swapperMode === SwapperMode.TARGET_DEBT) {
157
+ amount = request.targetDebt || 0n;
158
+ }
159
+ else {
160
+ amount = (request.currentDebt || 0n) - BigInt(quote.amountOutMin);
161
+ if (amount < 0n)
162
+ amount = 0n;
163
+ amount = adjustForInterest(amount);
164
+ }
165
+ }
166
+ else if (request.transferOutputToReceiver) {
167
+ functionName = "verifyAmountMinAndTransfer";
168
+ firstArg = request.tokenOut;
169
+ secondArg = request.receiver;
170
+ amount = BigInt(quote.amountOutMin);
171
+ }
172
+ else {
173
+ functionName = "verifyAmountMinAndSkim";
174
+ firstArg = request.receiver;
175
+ secondArg = request.accountOut;
176
+ amount = BigInt(quote.amountOutMin);
177
+ }
178
+ const deadline = request.deadline ||
179
+ Math.floor(Date.now() / 1000) +
180
+ (this.config.defaultDeadline || DEFAULT_DEADLINE);
181
+ const expectedVerifierData = encodeFunctionData({
182
+ abi: swapVerifierAbi,
183
+ functionName,
184
+ args: [firstArg, secondArg, amount, BigInt(deadline)],
185
+ });
186
+ if (quote.verify.verifierData !== expectedVerifierData) {
187
+ throw new Error("SwapVerifier data mismatch");
188
+ }
189
+ }
190
+ /**
191
+ * Fetches swap quotes for repaying debt by swapping collateral (e.g. withdraw collateral → swap → repay).
192
+ * Delegates to fetchSwapQuotes with isRepay true. fromAsset and liabilityAsset must differ.
193
+ *
194
+ * @param args - Repay quote arguments
195
+ * @param args.chainId - Chain ID
196
+ * @param args.fromVault - Vault to withdraw collateral from (source of swap input)
197
+ * @param args.fromAsset - Underlying asset of fromVault (tokenIn for the swap)
198
+ * @param args.fromAccount - Sub-account that holds the collateral in fromVault
199
+ * @param args.liabilityVault - Vault to repay debt to (receiver of swap output)
200
+ * @param args.liabilityAsset - Underlying asset of liabilityVault (tokenOut for the swap)
201
+ * @param args.currentDebt - Current debt of the account being repaid (must be > 0)
202
+ * @param args.toAccount - Sub-account whose debt is repaid (accountOut)
203
+ * @param args.origin - EOA sending the transaction
204
+ * @param args.swapperMode - EXACT_IN (sell fixed collateral amount) or TARGET_DEBT (repay toward target debt)
205
+ * @param args.slippage - Slippage in percent (0–50)
206
+ * @param args.collateralAmount - In EXACT_IN mode: amount of collateral to sell; required in EXACT_IN
207
+ * @param args.liabilityAmount - In TARGET_DEBT mode: amount of debt to repay; set to currentDebt for full repay
208
+ * @param args.deadline - Quote deadline timestamp in seconds (optional)
209
+ * @returns Promise of array of swap quotes for repay (verify type debtMax). Throws if currentDebt <= 0, fromAsset === liabilityAsset, or no quotes.
210
+ */
211
+ async fetchRepayQuotes(args) {
212
+ const { chainId, fromVault, fromAsset, fromAccount, liabilityVault, liabilityAsset, liabilityAmount, currentDebt, toAccount, origin, swapperMode, slippage, collateralAmount, deadline, } = args;
213
+ if (currentDebt <= 0n) {
214
+ throw new Error("currentDebt must be provided for swap repay");
215
+ }
216
+ if (fromAsset === liabilityAsset) {
217
+ throw new Error("Swap repay requires different from and liability assets");
218
+ }
219
+ this.validateSlippage(slippage);
220
+ let amount;
221
+ let targetDebt = 0n;
222
+ if (swapperMode === SwapperMode.EXACT_IN) {
223
+ if (collateralAmount === undefined) {
224
+ throw new Error("collateralAmount must be provided for exact-in swap repay");
225
+ }
226
+ amount = collateralAmount;
227
+ }
228
+ else {
229
+ if (liabilityAmount === undefined) {
230
+ throw new Error("liabilityAmount must be provided for target-debt swap repay");
231
+ }
232
+ // TODO add to docs or change api, liabilityAmount is ignored if isMax is true
233
+ targetDebt =
234
+ currentDebt === liabilityAmount ? 0n : currentDebt - liabilityAmount;
235
+ amount =
236
+ currentDebt === liabilityAmount
237
+ ? currentDebt - targetDebt
238
+ : liabilityAmount;
239
+ }
240
+ const quotes = await this.fetchSwapQuotes({
241
+ chainId,
242
+ tokenIn: fromAsset,
243
+ tokenOut: liabilityAsset,
244
+ accountIn: fromAccount,
245
+ accountOut: toAccount,
246
+ amount,
247
+ vaultIn: fromVault,
248
+ receiver: liabilityVault,
249
+ origin,
250
+ slippage,
251
+ swapperMode,
252
+ isRepay: true,
253
+ targetDebt,
254
+ currentDebt,
255
+ deadline: deadline ?? 0,
256
+ unusedInputReceiver: args.unusedInputReceiver,
257
+ provider: args.provider,
258
+ });
259
+ if (quotes.length === 0) {
260
+ throw new Error("No swap quotes available");
261
+ }
262
+ return quotes;
263
+ }
264
+ /**
265
+ * Fetches swap quotes for swapping one asset to another and depositing into a destination vault.
266
+ * Delegates to fetchSwapQuotes with isRepay false and EXACT_IN mode.
267
+ *
268
+ * The swapped output tokens are always deposited into `toVault` for `toAccount` (verify type skimMin).
269
+ * Use `fetchSwapQuotes` directly with `transferOutputToReceiver` if you need to transfer output
270
+ * tokens to an address instead of depositing into a vault.
271
+ *
272
+ * `unusedInputReceiver` can redirect leftover input tokens to a wallet address instead of
273
+ * depositing them back into `fromVault` for `fromAccount`. When set, `fromVault` and
274
+ * `fromAccount` should be zero address.
275
+ *
276
+ * `skipSweepDepositOut` leaves the output tokens in the Swapper contract instead of depositing.
277
+ * Useful when the Swapper is the receiver and further processing is needed.
278
+ *
279
+ * @param args - Deposit/collateral-swap quote arguments
280
+ * @param args.chainId - Chain ID
281
+ * @param args.fromVault - Vault to withdraw collateral from (source). Use zero address when `unusedInputReceiver` is set.
282
+ * @param args.toVault - Vault to deposit swapped tokens into (destination, receiver)
283
+ * @param args.fromAccount - Sub-account that holds the collateral in fromVault. Use zero address when `unusedInputReceiver` is set.
284
+ * @param args.toAccount - Sub-account that will hold the new collateral in toVault
285
+ * @param args.fromAsset - Underlying asset of fromVault (tokenIn)
286
+ * @param args.toAsset - Underlying asset of toVault (tokenOut)
287
+ * @param args.amount - Amount of fromAsset to swap (exact-in)
288
+ * @param args.origin - EOA sending the transaction
289
+ * @param args.slippage - Slippage in percent (0–50)
290
+ * @param args.deadline - Quote deadline timestamp in seconds (optional)
291
+ * @param args.unusedInputReceiver - Address to receive unused input tokens instead of depositing back to fromVault/fromAccount (optional)
292
+ * @param args.skipSweepDepositOut - If true, output tokens are left in the Swapper (no deposit of output). (optional)
293
+ * @returns Promise of array of swap quotes (verify type skimMin). Throws if slippage invalid or no quotes.
294
+ */
295
+ async fetchDepositQuote(args) {
296
+ const { chainId, fromVault, toVault, fromAccount, toAccount, fromAsset, toAsset, amount, origin, slippage, deadline, } = args;
297
+ this.validateSlippage(slippage);
298
+ const quotes = await this.fetchSwapQuotes({
299
+ chainId,
300
+ tokenIn: fromAsset,
301
+ tokenOut: toAsset,
302
+ accountIn: fromAccount,
303
+ accountOut: toAccount,
304
+ amount,
305
+ vaultIn: fromVault,
306
+ receiver: toVault,
307
+ origin,
308
+ slippage,
309
+ swapperMode: SwapperMode.EXACT_IN,
310
+ isRepay: false,
311
+ targetDebt: 0n,
312
+ currentDebt: 0n,
313
+ deadline: deadline ?? 0,
314
+ unusedInputReceiver: args.unusedInputReceiver,
315
+ skipSweepDepositOut: args.skipSweepDepositOut,
316
+ provider: args.provider,
317
+ });
318
+ if (quotes.length === 0) {
319
+ throw new Error("No swap quotes available");
320
+ }
321
+ return quotes;
322
+ }
323
+ validateSlippage(slippage) {
324
+ if (slippage === undefined || slippage > MAX_SLIPPAGE || slippage < 0) {
325
+ throw new Error("Valid slippage between 0 and 50% must be provided for swap");
326
+ }
327
+ }
328
+ }
329
+ //# sourceMappingURL=swapService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swapService.js","sourceRoot":"","sources":["../../../../src/services/swapService/swapService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import type { Address, Hex } from "viem";
2
+ export declare enum SwapperMode {
3
+ EXACT_IN = 0,
4
+ EXACT_OUT = 1,
5
+ TARGET_DEBT = 2
6
+ }
7
+ export declare enum SwapVerificationType {
8
+ SkimMin = "skimMin",
9
+ DebtMax = "debtMax",
10
+ TransferMin = "transferMin"
11
+ }
12
+ export interface SwapQuoteRequest {
13
+ chainId: number;
14
+ tokenIn: Address;
15
+ tokenOut: Address;
16
+ accountIn: Address;
17
+ accountOut: Address;
18
+ amount: bigint;
19
+ vaultIn: Address;
20
+ receiver: Address;
21
+ origin: Address;
22
+ slippage: number;
23
+ swapperMode: SwapperMode;
24
+ isRepay: boolean;
25
+ targetDebt: bigint;
26
+ currentDebt: bigint;
27
+ deadline: number;
28
+ dustAccount?: Address;
29
+ unusedInputReceiver?: Address;
30
+ transferOutputToReceiver?: boolean;
31
+ skipSweepDepositOut?: boolean;
32
+ provider?: string;
33
+ }
34
+ export interface SwapQuote {
35
+ amountIn: string;
36
+ amountInMax: string;
37
+ amountOut: string;
38
+ amountOutMin: string;
39
+ accountIn: Address;
40
+ accountOut: Address;
41
+ vaultIn: Address;
42
+ receiver: Address;
43
+ tokenIn: {
44
+ address: Address;
45
+ chainId: number;
46
+ decimals: number;
47
+ logoURI: string;
48
+ name: string;
49
+ symbol: string;
50
+ meta?: unknown;
51
+ };
52
+ tokenOut: {
53
+ address: Address;
54
+ chainId: number;
55
+ decimals: number;
56
+ logoURI: string;
57
+ name: string;
58
+ symbol: string;
59
+ meta?: unknown;
60
+ };
61
+ slippage: number;
62
+ swap: SwapperData;
63
+ verify: SwapVerifierData;
64
+ route: SwapRouteHop[];
65
+ transferOutputToReceiver?: boolean;
66
+ }
67
+ export interface GetRepayQuoteArgs {
68
+ chainId: number;
69
+ fromVault: Address;
70
+ fromAsset: Address;
71
+ fromAccount: Address;
72
+ liabilityVault: Address;
73
+ liabilityAsset: Address;
74
+ currentDebt: bigint;
75
+ toAccount: Address;
76
+ origin: Address;
77
+ swapperMode: SwapperMode;
78
+ slippage: number;
79
+ liabilityAmount?: bigint;
80
+ collateralAmount?: bigint;
81
+ deadline?: number;
82
+ unusedInputReceiver?: Address;
83
+ provider?: string;
84
+ }
85
+ export interface GetDepositQuoteArgs {
86
+ chainId: number;
87
+ fromVault: Address;
88
+ toVault: Address;
89
+ fromAccount: Address;
90
+ toAccount: Address;
91
+ fromAsset: Address;
92
+ toAsset: Address;
93
+ amount: bigint;
94
+ origin: Address;
95
+ slippage: number;
96
+ deadline?: number;
97
+ unusedInputReceiver?: Address;
98
+ skipSweepDepositOut?: boolean;
99
+ provider?: string;
100
+ }
101
+ export interface SwapperData {
102
+ swapperAddress: Address;
103
+ swapperData: Hex;
104
+ multicallItems: MulticallItem[];
105
+ }
106
+ export interface MulticallItem {
107
+ functionName: string;
108
+ args: unknown[];
109
+ data: Hex;
110
+ }
111
+ export interface SwapRouteHop {
112
+ providerName: string;
113
+ }
114
+ export interface SwapVerifierData {
115
+ verifierAddress: Address;
116
+ verifierData: Hex;
117
+ type: SwapVerificationType;
118
+ vault: Address;
119
+ account: Address;
120
+ amount: string;
121
+ deadline: number;
122
+ }
123
+ export interface SwapsApiResponse {
124
+ success: boolean;
125
+ data: SwapQuote[];
126
+ }
127
+ export interface SwapProvidersApiResponse {
128
+ success: boolean;
129
+ data: string[];
130
+ }
@@ -0,0 +1,16 @@
1
+ export var SwapperMode;
2
+ (function (SwapperMode) {
3
+ // 0 - exact input swap
4
+ SwapperMode[SwapperMode["EXACT_IN"] = 0] = "EXACT_IN";
5
+ // 1 - exact output swap
6
+ SwapperMode[SwapperMode["EXACT_OUT"] = 1] = "EXACT_OUT";
7
+ // 2 - exact output swap and repay, targeting a debt amount of an account
8
+ SwapperMode[SwapperMode["TARGET_DEBT"] = 2] = "TARGET_DEBT";
9
+ })(SwapperMode || (SwapperMode = {}));
10
+ export var SwapVerificationType;
11
+ (function (SwapVerificationType) {
12
+ SwapVerificationType["SkimMin"] = "skimMin";
13
+ SwapVerificationType["DebtMax"] = "debtMax";
14
+ SwapVerificationType["TransferMin"] = "transferMin";
15
+ })(SwapVerificationType || (SwapVerificationType = {}));
16
+ //# sourceMappingURL=swapServiceTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swapServiceTypes.js","sourceRoot":"","sources":["../../../../src/services/swapService/swapServiceTypes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACtB,uBAAuB;IACvB,qDAAY,CAAA;IACZ,wBAAwB;IACxB,uDAAa,CAAA;IACb,yEAAyE;IACzE,2DAAe,CAAA;AAChB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC/B,2CAAmB,CAAA;IACnB,2CAAmB,CAAA;IACnB,mDAA2B,CAAA;AAC5B,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B"}