@eulerxyz/euler-v2-sdk 0.1.2-beta → 0.2.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 (235) hide show
  1. package/README.md +24 -25
  2. package/dist/src/entities/Account.d.ts +48 -47
  3. package/dist/src/entities/Account.d.ts.map +1 -1
  4. package/dist/src/entities/Account.js +85 -64
  5. package/dist/src/entities/Account.js.map +1 -1
  6. package/dist/src/entities/ERC4626Vault.d.ts +6 -5
  7. package/dist/src/entities/ERC4626Vault.d.ts.map +1 -1
  8. package/dist/src/entities/ERC4626Vault.js +13 -6
  9. package/dist/src/entities/ERC4626Vault.js.map +1 -1
  10. package/dist/src/entities/EVault.d.ts +30 -15
  11. package/dist/src/entities/EVault.d.ts.map +1 -1
  12. package/dist/src/entities/EVault.js +66 -14
  13. package/dist/src/entities/EVault.js.map +1 -1
  14. package/dist/src/entities/EulerEarn.d.ts +3 -0
  15. package/dist/src/entities/EulerEarn.d.ts.map +1 -1
  16. package/dist/src/entities/EulerEarn.js +12 -3
  17. package/dist/src/entities/EulerEarn.js.map +1 -1
  18. package/dist/src/entities/EulerLabels.d.ts +74 -0
  19. package/dist/src/entities/EulerLabels.d.ts.map +1 -1
  20. package/dist/src/entities/Portfolio.d.ts +38 -17
  21. package/dist/src/entities/Portfolio.d.ts.map +1 -1
  22. package/dist/src/entities/Portfolio.js +71 -23
  23. package/dist/src/entities/Portfolio.js.map +1 -1
  24. package/dist/src/entities/Wallet.d.ts +1 -0
  25. package/dist/src/entities/Wallet.d.ts.map +1 -1
  26. package/dist/src/entities/Wallet.js +2 -2
  27. package/dist/src/entities/Wallet.js.map +1 -1
  28. package/dist/src/index.d.ts +5 -2
  29. package/dist/src/index.d.ts.map +1 -1
  30. package/dist/src/index.js +5 -2
  31. package/dist/src/index.js.map +1 -1
  32. package/dist/src/plugins/keyring/keyringPlugin.d.ts +1 -1
  33. package/dist/src/plugins/keyring/keyringPlugin.d.ts.map +1 -1
  34. package/dist/src/plugins/keyring/keyringPlugin.js +70 -12
  35. package/dist/src/plugins/keyring/keyringPlugin.js.map +1 -1
  36. package/dist/src/plugins/pyth/pythPlugin.d.ts.map +1 -1
  37. package/dist/src/plugins/pyth/pythPlugin.js +132 -11
  38. package/dist/src/plugins/pyth/pythPlugin.js.map +1 -1
  39. package/dist/src/plugins/types.d.ts +4 -7
  40. package/dist/src/plugins/types.d.ts.map +1 -1
  41. package/dist/src/plugins/types.js.map +1 -1
  42. package/dist/src/sdk/buildSDK.d.ts +11 -7
  43. package/dist/src/sdk/buildSDK.d.ts.map +1 -1
  44. package/dist/src/sdk/buildSDK.js +369 -116
  45. package/dist/src/sdk/buildSDK.js.map +1 -1
  46. package/dist/src/sdk/config.d.ts +74 -0
  47. package/dist/src/sdk/config.d.ts.map +1 -0
  48. package/dist/src/sdk/config.js +187 -0
  49. package/dist/src/sdk/config.js.map +1 -0
  50. package/dist/src/sdk/defaultConfig.d.ts +5 -2
  51. package/dist/src/sdk/defaultConfig.d.ts.map +1 -1
  52. package/dist/src/sdk/defaultConfig.js +21 -18
  53. package/dist/src/sdk/defaultConfig.js.map +1 -1
  54. package/dist/src/sdk/sdk.d.ts +6 -8
  55. package/dist/src/sdk/sdk.d.ts.map +1 -1
  56. package/dist/src/sdk/sdk.js +2 -6
  57. package/dist/src/sdk/sdk.js.map +1 -1
  58. package/dist/src/services/accountService/accountService.d.ts.map +1 -1
  59. package/dist/src/services/accountService/accountService.js +10 -7
  60. package/dist/src/services/accountService/accountService.js.map +1 -1
  61. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.d.ts +2 -2
  62. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.d.ts.map +1 -1
  63. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.js +22 -17
  64. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.js.map +1 -1
  65. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.d.ts +1 -1
  66. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.d.ts.map +1 -1
  67. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.js +16 -17
  68. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.js.map +1 -1
  69. package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.d.ts +7 -1
  70. package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.d.ts.map +1 -1
  71. package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.js +141 -54
  72. package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.js.map +1 -1
  73. package/dist/src/services/deploymentService/deploymentService.d.ts +1 -0
  74. package/dist/src/services/deploymentService/deploymentService.d.ts.map +1 -1
  75. package/dist/src/services/deploymentService/deploymentService.js.map +1 -1
  76. package/dist/src/services/eulerLabelsService/eulerLabelsService.d.ts +18 -1
  77. package/dist/src/services/eulerLabelsService/eulerLabelsService.d.ts.map +1 -1
  78. package/dist/src/services/eulerLabelsService/eulerLabelsService.js +373 -30
  79. package/dist/src/services/eulerLabelsService/eulerLabelsService.js.map +1 -1
  80. package/dist/src/services/executionService/encode.d.ts +30 -0
  81. package/dist/src/services/executionService/encode.d.ts.map +1 -0
  82. package/dist/src/services/executionService/encode.js +841 -0
  83. package/dist/src/services/executionService/encode.js.map +1 -0
  84. package/dist/src/services/executionService/execute.d.ts +65 -0
  85. package/dist/src/services/executionService/execute.d.ts.map +1 -0
  86. package/dist/src/services/executionService/execute.js +185 -0
  87. package/dist/src/services/executionService/execute.js.map +1 -0
  88. package/dist/src/services/executionService/executionService.d.ts +169 -37
  89. package/dist/src/services/executionService/executionService.d.ts.map +1 -1
  90. package/dist/src/services/executionService/executionService.js +510 -893
  91. package/dist/src/services/executionService/executionService.js.map +1 -1
  92. package/dist/src/services/executionService/executionServiceTypes.d.ts +93 -9
  93. package/dist/src/services/executionService/executionServiceTypes.d.ts.map +1 -1
  94. package/dist/src/services/executionService/executionServiceTypes.js +6 -0
  95. package/dist/src/services/executionService/executionServiceTypes.js.map +1 -1
  96. package/dist/src/services/executionService/index.d.ts +5 -2
  97. package/dist/src/services/executionService/index.d.ts.map +1 -1
  98. package/dist/src/services/executionService/index.js +3 -1
  99. package/dist/src/services/executionService/index.js.map +1 -1
  100. package/dist/src/services/{simulationService/simulationService.d.ts → executionService/simulate.d.ts} +26 -40
  101. package/dist/src/services/executionService/simulate.d.ts.map +1 -0
  102. package/dist/src/services/executionService/simulate.js +532 -0
  103. package/dist/src/services/executionService/simulate.js.map +1 -0
  104. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.d.ts +1 -1
  105. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.d.ts.map +1 -1
  106. package/dist/src/services/oracleAdapterService/oracleAdapterService.d.ts +5 -0
  107. package/dist/src/services/oracleAdapterService/oracleAdapterService.d.ts.map +1 -1
  108. package/dist/src/services/oracleAdapterService/oracleAdapterService.js +38 -11
  109. package/dist/src/services/oracleAdapterService/oracleAdapterService.js.map +1 -1
  110. package/dist/src/services/priceService/backendClient.d.ts +7 -13
  111. package/dist/src/services/priceService/backendClient.d.ts.map +1 -1
  112. package/dist/src/services/priceService/backendClient.js +7 -14
  113. package/dist/src/services/priceService/backendClient.js.map +1 -1
  114. package/dist/src/services/priceService/index.d.ts +2 -2
  115. package/dist/src/services/priceService/index.d.ts.map +1 -1
  116. package/dist/src/services/priceService/index.js +1 -1
  117. package/dist/src/services/priceService/index.js.map +1 -1
  118. package/dist/src/services/priceService/priceService.d.ts +19 -17
  119. package/dist/src/services/priceService/priceService.d.ts.map +1 -1
  120. package/dist/src/services/priceService/priceService.js +53 -76
  121. package/dist/src/services/priceService/priceService.js.map +1 -1
  122. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.d.ts.map +1 -1
  123. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js +26 -13
  124. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js.map +1 -1
  125. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.d.ts +10 -10
  126. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.d.ts.map +1 -1
  127. package/dist/src/services/rewardsService/rewardsServiceTypes.d.ts +1 -1
  128. package/dist/src/services/rewardsService/rewardsServiceTypes.d.ts.map +1 -1
  129. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.d.ts +1 -1
  130. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.d.ts.map +1 -1
  131. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js +6 -13
  132. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js.map +1 -1
  133. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.d.ts +1 -1
  134. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.d.ts.map +1 -1
  135. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.js +69 -51
  136. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.js.map +1 -1
  137. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.d.ts +6 -2
  138. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.d.ts.map +1 -1
  139. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js +70 -21
  140. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js.map +1 -1
  141. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.d.ts +1 -1
  142. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.d.ts.map +1 -1
  143. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.js +106 -111
  144. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.js.map +1 -1
  145. package/dist/src/services/vaults/eVaultService/eVaultService.d.ts +4 -4
  146. package/dist/src/services/vaults/eVaultService/eVaultService.d.ts.map +1 -1
  147. package/dist/src/services/vaults/eVaultService/eVaultService.js +56 -57
  148. package/dist/src/services/vaults/eVaultService/eVaultService.js.map +1 -1
  149. package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.d.ts +1 -1
  150. package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.d.ts.map +1 -1
  151. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.d.ts +1 -1
  152. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.d.ts.map +1 -1
  153. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.js +22 -21
  154. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.js.map +1 -1
  155. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.d.ts.map +1 -1
  156. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.js +27 -32
  157. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.js.map +1 -1
  158. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.d.ts +1 -1
  159. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.d.ts.map +1 -1
  160. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.js +113 -72
  161. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.js.map +1 -1
  162. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.d.ts +5 -5
  163. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.d.ts.map +1 -1
  164. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.js +30 -28
  165. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.js.map +1 -1
  166. package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.d.ts +1 -1
  167. package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.d.ts.map +1 -1
  168. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.d.ts +1 -1
  169. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.d.ts.map +1 -1
  170. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.js +10 -7
  171. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.js.map +1 -1
  172. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.d.ts.map +1 -1
  173. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.js +6 -8
  174. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.js.map +1 -1
  175. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.d.ts +2 -2
  176. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.d.ts.map +1 -1
  177. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.js +13 -18
  178. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.js.map +1 -1
  179. package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.d.ts +1 -1
  180. package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.d.ts.map +1 -1
  181. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.d.ts +3 -3
  182. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.d.ts.map +1 -1
  183. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.js +31 -32
  184. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.js.map +1 -1
  185. package/dist/src/services/walletService/adapters/walletOnchainAdapter.d.ts +5 -1
  186. package/dist/src/services/walletService/adapters/walletOnchainAdapter.d.ts.map +1 -1
  187. package/dist/src/services/walletService/adapters/walletOnchainAdapter.js +181 -40
  188. package/dist/src/services/walletService/adapters/walletOnchainAdapter.js.map +1 -1
  189. package/dist/src/services/walletService/walletService.d.ts +1 -1
  190. package/dist/src/services/walletService/walletService.d.ts.map +1 -1
  191. package/dist/src/services/walletService/walletService.js +4 -3
  192. package/dist/src/services/walletService/walletService.js.map +1 -1
  193. package/dist/src/utils/accountComputations.d.ts +42 -12
  194. package/dist/src/utils/accountComputations.d.ts.map +1 -1
  195. package/dist/src/utils/accountComputations.js +142 -40
  196. package/dist/src/utils/accountComputations.js.map +1 -1
  197. package/dist/src/utils/accountPositionClassification.d.ts +15 -0
  198. package/dist/src/utils/accountPositionClassification.d.ts.map +1 -0
  199. package/dist/src/utils/accountPositionClassification.js +27 -0
  200. package/dist/src/utils/accountPositionClassification.js.map +1 -0
  201. package/dist/src/utils/buildQuery.d.ts +1 -0
  202. package/dist/src/utils/buildQuery.d.ts.map +1 -1
  203. package/dist/src/utils/buildQuery.js +1 -1
  204. package/dist/src/utils/buildQuery.js.map +1 -1
  205. package/dist/src/utils/entityDiagnostics.d.ts +75 -12
  206. package/dist/src/utils/entityDiagnostics.d.ts.map +1 -1
  207. package/dist/src/utils/entityDiagnostics.js +85 -19
  208. package/dist/src/utils/entityDiagnostics.js.map +1 -1
  209. package/dist/src/utils/eulerLabels.d.ts +34 -0
  210. package/dist/src/utils/eulerLabels.d.ts.map +1 -0
  211. package/dist/src/utils/eulerLabels.js +156 -0
  212. package/dist/src/utils/eulerLabels.js.map +1 -0
  213. package/dist/src/utils/healthCheckSets.d.ts +14 -0
  214. package/dist/src/utils/healthCheckSets.d.ts.map +1 -0
  215. package/dist/src/utils/healthCheckSets.js +174 -0
  216. package/dist/src/utils/healthCheckSets.js.map +1 -0
  217. package/dist/src/utils/normalization.d.ts +10 -4
  218. package/dist/src/utils/normalization.d.ts.map +1 -1
  219. package/dist/src/utils/normalization.js +38 -11
  220. package/dist/src/utils/normalization.js.map +1 -1
  221. package/dist/src/utils/oracle.d.ts.map +1 -1
  222. package/dist/src/utils/oracle.js +12 -1
  223. package/dist/src/utils/oracle.js.map +1 -1
  224. package/dist/src/utils/parsing.d.ts +2 -2
  225. package/dist/src/utils/parsing.d.ts.map +1 -1
  226. package/dist/src/utils/parsing.js +12 -22
  227. package/dist/src/utils/parsing.js.map +1 -1
  228. package/package.json +2 -2
  229. package/dist/src/services/simulationService/index.d.ts +0 -3
  230. package/dist/src/services/simulationService/index.d.ts.map +0 -1
  231. package/dist/src/services/simulationService/index.js +0 -2
  232. package/dist/src/services/simulationService/index.js.map +0 -1
  233. package/dist/src/services/simulationService/simulationService.d.ts.map +0 -1
  234. package/dist/src/services/simulationService/simulationService.js +0 -533
  235. package/dist/src/services/simulationService/simulationService.js.map +0 -1
@@ -22,42 +22,238 @@ import { PriceService, PricingBackendClient, } from "../services/priceService/in
22
22
  import { RewardsDirectAdapter, RewardsService, RewardsV3Adapter, } from "../services/rewardsService/index.js";
23
23
  import { IntrinsicApyService, IntrinsicApyV3Adapter, } from "../services/intrinsicApyService/index.js";
24
24
  import { OracleAdapterService, } from "../services/oracleAdapterService/index.js";
25
- import { SimulationService, } from "../services/simulationService/index.js";
26
- import { defaultAccountV3AdapterConfig, defaultAccountVaultsAdapterConfig, defaultBackendConfig, defaultDeploymentServiceConfig, defaultEulerEarnV3AdapterConfig, defaultEulerLabelsURLAdapterConfig, defaultIntrinsicApyV3AdapterConfig, defaultRewardsV3AdapterConfig, defaultSwapServiceConfig, defaultTokenlistServiceConfig, defaultVaultTypeAdapterConfig, } from "./defaultConfig.js";
25
+ import { DEFAULT_EULER_LABELS_BASE_URL, DEFAULT_TOKENLIST_API_BASE_URL, defaultAccountV3AdapterConfig, defaultAccountVaultsAdapterConfig, defaultDeploymentServiceConfig, defaultEulerEarnV3AdapterConfig, defaultEulerLabelsURLAdapterConfig, defaultIntrinsicApyV3AdapterConfig, defaultPricingServiceConfig, defaultRewardsV3AdapterConfig, defaultSwapServiceConfig, defaultTokenlistServiceConfig, defaultVaultTypeAdapterConfig, } from "./defaultConfig.js";
27
26
  import { defaultEVaultV3AdapterConfig } from "./defaultConfig.js";
28
27
  import { FeeFlowService, } from "../services/feeFlowService/index.js";
28
+ import { readEulerSDKEnvConfig, } from "./config.js";
29
29
  import { EVaultOnchainAdapter } from "../services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js";
30
30
  import { EVaultV3Adapter } from "../services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js";
31
31
  import { VaultMetaService, VaultTypeSubgraphAdapter, VaultTypeV3Adapter, } from "../services/vaults/vaultMetaService/index.js";
32
32
  import { VaultType } from "../utils/types.js";
33
33
  import { createQueryCacheBuildQuery, } from "../utils/buildQuery.js";
34
34
  import { BatchSimulationAdapter } from "../plugins/batchSimulation.js";
35
- export async function buildEulerSDK(options) {
36
- const { rpcUrls, v3ApiKey, accountServiceConfig, eVaultServiceConfig, eulerEarnServiceConfig, accountVaultsAdapterConfig, vaultTypeAdapterConfig, additionalVaultServices, eulerLabelsAdapterConfig, tokenlistServiceConfig, swapServiceConfig, backendConfig, rewardsServiceConfig, intrinsicApyServiceConfig, oracleAdapterServiceConfig, queryCacheConfig, buildQuery, plugins, servicesOverrides, feeFlowServiceConfig, } = options;
37
- const resolvedBuildQuery = buildQuery ?? createQueryCacheBuildQuery(queryCacheConfig);
35
+ function pickConfigValue(configValue, explicitValue, envValue, defaultValue) {
36
+ return configValue ?? explicitValue ?? envValue ?? defaultValue;
37
+ }
38
+ function mergeNumberRecords(defaultRecord, envRecord, explicitRecord, configRecord) {
39
+ return {
40
+ ...(defaultRecord ?? {}),
41
+ ...(envRecord ?? {}),
42
+ ...(explicitRecord ?? {}),
43
+ ...(configRecord ?? {}),
44
+ };
45
+ }
46
+ function mergeStringRecords(envRecord, explicitRecord, configRecord) {
47
+ const merged = {
48
+ ...(envRecord ?? {}),
49
+ ...(explicitRecord ?? {}),
50
+ ...(configRecord ?? {}),
51
+ };
52
+ return Object.keys(merged).length > 0 ? merged : undefined;
53
+ }
54
+ function maybeField(key, value) {
55
+ return value === undefined
56
+ ? {}
57
+ : { [key]: value };
58
+ }
59
+ function resolveV3AdapterConfig(defaultConfig, args) {
60
+ const { explicitConfig, explicitV3ApiKey, envConfig, config, envEndpoint, configEndpoint, envApiKey, configApiKey, envExtra, configExtra, } = args;
61
+ return {
62
+ ...defaultConfig,
63
+ ...maybeField("endpoint", envConfig.v3ApiUrl),
64
+ ...maybeField("apiKey", envConfig.v3ApiKey),
65
+ ...maybeField("endpoint", envEndpoint),
66
+ ...maybeField("apiKey", envApiKey),
67
+ ...(envExtra ?? {}),
68
+ ...maybeField("apiKey", explicitV3ApiKey),
69
+ ...(explicitConfig ?? {}),
70
+ ...maybeField("endpoint", config?.v3ApiUrl),
71
+ ...maybeField("apiKey", config?.v3ApiKey),
72
+ ...maybeField("endpoint", configEndpoint),
73
+ ...maybeField("apiKey", configApiKey),
74
+ ...(configExtra ?? {}),
75
+ };
76
+ }
77
+ function applyTemplate(template, values) {
78
+ return Object.entries(values).reduce((result, [key, value]) => result.replaceAll(`{${key}}`, String(value)), template);
79
+ }
80
+ function makeEulerLabelsConfig(config) {
81
+ if (!config)
82
+ return {};
83
+ const baseUrl = config.eulerLabelsBaseUrl ?? DEFAULT_EULER_LABELS_BASE_URL;
84
+ const hasBaseOverride = config.eulerLabelsBaseUrl !== undefined;
85
+ return {
86
+ ...(hasBaseOverride || config.eulerLabelsEntitiesUrlTemplate
87
+ ? {
88
+ getEulerLabelsEntitiesUrl: (chainId) => config.eulerLabelsEntitiesUrlTemplate
89
+ ? applyTemplate(config.eulerLabelsEntitiesUrlTemplate, {
90
+ base: baseUrl,
91
+ chainId,
92
+ })
93
+ : `${baseUrl}/${chainId}/entities.json`,
94
+ }
95
+ : {}),
96
+ ...(hasBaseOverride || config.eulerLabelsProductsUrlTemplate
97
+ ? {
98
+ getEulerLabelsProductsUrl: (chainId) => config.eulerLabelsProductsUrlTemplate
99
+ ? applyTemplate(config.eulerLabelsProductsUrlTemplate, {
100
+ base: baseUrl,
101
+ chainId,
102
+ })
103
+ : `${baseUrl}/${chainId}/products.json`,
104
+ }
105
+ : {}),
106
+ ...(hasBaseOverride || config.eulerLabelsPointsUrlTemplate
107
+ ? {
108
+ getEulerLabelsPointsUrl: (chainId) => config.eulerLabelsPointsUrlTemplate
109
+ ? applyTemplate(config.eulerLabelsPointsUrlTemplate, {
110
+ base: baseUrl,
111
+ chainId,
112
+ })
113
+ : `${baseUrl}/${chainId}/points.json`,
114
+ }
115
+ : {}),
116
+ ...(hasBaseOverride || config.eulerLabelsEarnVaultsUrlTemplate
117
+ ? {
118
+ getEulerLabelsEarnVaultsUrl: (chainId) => config.eulerLabelsEarnVaultsUrlTemplate
119
+ ? applyTemplate(config.eulerLabelsEarnVaultsUrlTemplate, {
120
+ base: baseUrl,
121
+ chainId,
122
+ })
123
+ : `${baseUrl}/${chainId}/earn-vaults.json`,
124
+ }
125
+ : {}),
126
+ ...(hasBaseOverride || config.eulerLabelsAssetsUrlTemplate
127
+ ? {
128
+ getEulerLabelsAssetsUrl: (chainId) => config.eulerLabelsAssetsUrlTemplate
129
+ ? applyTemplate(config.eulerLabelsAssetsUrlTemplate, {
130
+ base: baseUrl,
131
+ chainId,
132
+ })
133
+ : `${baseUrl}/${chainId}/assets.json`,
134
+ }
135
+ : {}),
136
+ ...(hasBaseOverride || config.eulerLabelsGlobalAssetsUrl
137
+ ? {
138
+ getEulerLabelsGlobalAssetsUrl: () => config.eulerLabelsGlobalAssetsUrl ?? `${baseUrl}/all/assets.json`,
139
+ }
140
+ : {}),
141
+ ...(hasBaseOverride || config.eulerLabelsLogoUrlTemplate
142
+ ? {
143
+ getEulerLabelsLogoUrl: (filename) => config.eulerLabelsLogoUrlTemplate
144
+ ? applyTemplate(config.eulerLabelsLogoUrlTemplate, {
145
+ base: baseUrl,
146
+ filename,
147
+ })
148
+ : `${baseUrl}/logo/${filename}`,
149
+ }
150
+ : {}),
151
+ };
152
+ }
153
+ function makeTokenlistConfig(config) {
154
+ if (!config?.tokenlistApiBaseUrl && !config?.tokenlistUrlTemplate)
155
+ return {};
156
+ const baseUrl = config.tokenlistApiBaseUrl ?? DEFAULT_TOKENLIST_API_BASE_URL;
157
+ return {
158
+ getTokenListUrl: (chainId) => config.tokenlistUrlTemplate
159
+ ? applyTemplate(config.tokenlistUrlTemplate, { base: baseUrl, chainId })
160
+ : `${baseUrl}/v1/tokens?chainId=${chainId}`,
161
+ };
162
+ }
163
+ function resolveRewardsDirectAdapterConfig(explicitConfig, envConfig, config) {
164
+ return {
165
+ ...maybeField("merklApiUrl", envConfig.rewardsMerklApiUrl),
166
+ ...maybeField("brevisApiUrl", envConfig.rewardsBrevisApiUrl),
167
+ ...maybeField("brevisProofsApiUrl", envConfig.rewardsBrevisProofsApiUrl),
168
+ ...maybeField("fuulApiUrl", envConfig.rewardsFuulApiUrl),
169
+ ...maybeField("fuulTotalsUrl", envConfig.rewardsFuulTotalsUrl),
170
+ ...maybeField("fuulClaimChecksUrl", envConfig.rewardsFuulClaimChecksUrl),
171
+ ...maybeField("brevisChainIds", envConfig.rewardsBrevisChainIds),
172
+ ...maybeField("merklDistributorAddress", envConfig.rewardsMerklDistributorAddress),
173
+ ...maybeField("fuulManagerAddress", envConfig.rewardsFuulManagerAddress),
174
+ ...maybeField("fuulFactoryAddress", envConfig.rewardsFuulFactoryAddress),
175
+ ...maybeField("enableMerkl", envConfig.rewardsEnableMerkl),
176
+ ...maybeField("enableBrevis", envConfig.rewardsEnableBrevis),
177
+ ...maybeField("enableFuul", envConfig.rewardsEnableFuul),
178
+ ...maybeField("merklApiUrl", explicitConfig?.merklApiUrl),
179
+ ...maybeField("brevisApiUrl", explicitConfig?.brevisApiUrl),
180
+ ...maybeField("brevisProofsApiUrl", explicitConfig?.brevisProofsApiUrl),
181
+ ...maybeField("fuulApiUrl", explicitConfig?.fuulApiUrl),
182
+ ...maybeField("fuulTotalsUrl", explicitConfig?.fuulTotalsUrl),
183
+ ...maybeField("fuulClaimChecksUrl", explicitConfig?.fuulClaimChecksUrl),
184
+ ...maybeField("brevisChainIds", explicitConfig?.brevisChainIds),
185
+ ...maybeField("merklDistributorAddress", explicitConfig?.merklDistributorAddress),
186
+ ...maybeField("fuulManagerAddress", explicitConfig?.fuulManagerAddress),
187
+ ...maybeField("fuulFactoryAddress", explicitConfig?.fuulFactoryAddress),
188
+ ...maybeField("enableMerkl", explicitConfig?.enableMerkl),
189
+ ...maybeField("enableBrevis", explicitConfig?.enableBrevis),
190
+ ...maybeField("enableFuul", explicitConfig?.enableFuul),
191
+ ...(explicitConfig?.directAdapterConfig ?? {}),
192
+ ...maybeField("merklApiUrl", config?.rewardsMerklApiUrl),
193
+ ...maybeField("brevisApiUrl", config?.rewardsBrevisApiUrl),
194
+ ...maybeField("brevisProofsApiUrl", config?.rewardsBrevisProofsApiUrl),
195
+ ...maybeField("fuulApiUrl", config?.rewardsFuulApiUrl),
196
+ ...maybeField("fuulTotalsUrl", config?.rewardsFuulTotalsUrl),
197
+ ...maybeField("fuulClaimChecksUrl", config?.rewardsFuulClaimChecksUrl),
198
+ ...maybeField("brevisChainIds", config?.rewardsBrevisChainIds),
199
+ ...maybeField("merklDistributorAddress", config?.rewardsMerklDistributorAddress),
200
+ ...maybeField("fuulManagerAddress", config?.rewardsFuulManagerAddress),
201
+ ...maybeField("fuulFactoryAddress", config?.rewardsFuulFactoryAddress),
202
+ ...maybeField("enableMerkl", config?.rewardsEnableMerkl),
203
+ ...maybeField("enableBrevis", config?.rewardsEnableBrevis),
204
+ ...maybeField("enableFuul", config?.rewardsEnableFuul),
205
+ };
206
+ }
207
+ export async function buildEulerSDK(options = {}) {
208
+ const { config, v3ApiKey, accountServiceConfig, eVaultServiceConfig, eulerEarnServiceConfig, accountVaultsAdapterConfig, vaultTypeAdapterConfig, additionalVaultServices, eulerLabelsAdapterConfig, tokenlistServiceConfig, swapServiceConfig, pricingServiceConfig, rewardsServiceConfig, intrinsicApyServiceConfig, oracleAdapterServiceConfig, queryCacheConfig, buildQuery, plugins, servicesOverrides, feeFlowServiceConfig, } = options;
209
+ const envConfig = readEulerSDKEnvConfig();
210
+ const resolvedRpcUrls = mergeNumberRecords(undefined, envConfig.rpcUrls, undefined, config?.rpcUrls);
211
+ const resolvedQueryCacheConfig = {
212
+ ...maybeField("enabled", envConfig.queryCacheEnabled),
213
+ ...maybeField("ttlMs", envConfig.queryCacheTtlMs),
214
+ ...(queryCacheConfig ?? {}),
215
+ ...maybeField("enabled", config?.queryCacheEnabled),
216
+ ...maybeField("ttlMs", config?.queryCacheTtlMs),
217
+ };
218
+ const resolvedBuildQuery = buildQuery ?? createQueryCacheBuildQuery(resolvedQueryCacheConfig);
219
+ const resolvedDeploymentServiceConfig = {
220
+ ...defaultDeploymentServiceConfig,
221
+ ...maybeField("deploymentsUrl", envConfig.deploymentsUrl),
222
+ ...maybeField("deploymentsUrl", config?.deploymentsUrl),
223
+ };
38
224
  // Build core services (these may be needed for adapters even if overridden)
39
225
  const abiService = servicesOverrides?.abiService ?? new ABIService(resolvedBuildQuery);
40
226
  const deploymentService = servicesOverrides?.deploymentService ??
41
- (await DeploymentService.build(defaultDeploymentServiceConfig, resolvedBuildQuery));
42
- const providerService = servicesOverrides?.providerService ?? new ProviderService(rpcUrls);
227
+ (await DeploymentService.build(resolvedDeploymentServiceConfig, resolvedBuildQuery));
228
+ const providerService = servicesOverrides?.providerService ?? new ProviderService(resolvedRpcUrls);
43
229
  // Account adapter is built early so it can be used when building account service (after vault meta service)
44
230
  const resolvedAccountServiceConfig = accountServiceConfig ?? {};
231
+ const resolvedAccountServiceAdapter = pickConfigValue(config?.accountServiceAdapter, resolvedAccountServiceConfig.adapter, envConfig.accountServiceAdapter);
45
232
  let accountOnchainAdapter;
46
- const accountAdapter = resolvedAccountServiceConfig.adapter === "onchain"
233
+ const accountAdapter = resolvedAccountServiceAdapter === "onchain"
47
234
  ? (() => {
48
- const accountVaultsAdapter = new AccountVaultsSubgraphAdapter(accountVaultsAdapterConfig || defaultAccountVaultsAdapterConfig, resolvedBuildQuery);
235
+ const accountVaultsAdapter = new AccountVaultsSubgraphAdapter({
236
+ subgraphURLs: mergeNumberRecords(defaultAccountVaultsAdapterConfig.subgraphURLs, envConfig.accountVaultsSubgraphUrls, accountVaultsAdapterConfig?.subgraphURLs, config?.accountVaultsSubgraphUrls),
237
+ }, resolvedBuildQuery);
49
238
  accountOnchainAdapter = new AccountOnchainAdapter(providerService, deploymentService, accountVaultsAdapter, resolvedBuildQuery);
50
239
  return accountOnchainAdapter;
51
240
  })()
52
- : new AccountV3Adapter({
53
- ...(resolvedAccountServiceConfig.v3AdapterConfig ??
54
- defaultAccountV3AdapterConfig),
55
- ...(v3ApiKey !== undefined ? { apiKey: v3ApiKey } : {}),
56
- ...(resolvedAccountServiceConfig.v3AdapterConfig?.apiKey !==
57
- undefined
58
- ? { apiKey: resolvedAccountServiceConfig.v3AdapterConfig.apiKey }
59
- : {}),
60
- }, resolvedBuildQuery);
241
+ : new AccountV3Adapter(resolveV3AdapterConfig(defaultAccountV3AdapterConfig, {
242
+ explicitConfig: resolvedAccountServiceConfig.v3AdapterConfig,
243
+ explicitV3ApiKey: v3ApiKey,
244
+ envConfig,
245
+ config,
246
+ envEndpoint: envConfig.accountV3ApiUrl,
247
+ configEndpoint: config?.accountV3ApiUrl,
248
+ envApiKey: envConfig.accountV3ApiKey,
249
+ configApiKey: config?.accountV3ApiKey,
250
+ envExtra: {
251
+ ...maybeField("forceFresh", envConfig.accountV3ForceFresh),
252
+ },
253
+ configExtra: {
254
+ ...maybeField("forceFresh", config?.accountV3ForceFresh),
255
+ },
256
+ }), resolvedBuildQuery);
61
257
  // Build wallet service if not overridden
62
258
  let walletService;
63
259
  if (servicesOverrides?.walletService) {
@@ -75,20 +271,28 @@ export async function buildEulerSDK(options) {
75
271
  }
76
272
  else {
77
273
  const resolvedEVaultServiceConfig = eVaultServiceConfig ?? {};
78
- const selectedEVaultAdapter = resolvedEVaultServiceConfig.adapter === "onchain"
274
+ const resolvedEVaultServiceAdapter = pickConfigValue(config?.eVaultServiceAdapter, resolvedEVaultServiceConfig.adapter, envConfig.eVaultServiceAdapter);
275
+ const selectedEVaultAdapter = resolvedEVaultServiceAdapter === "onchain"
79
276
  ? (() => {
80
277
  eVaultAdapter = new EVaultOnchainAdapter(providerService, deploymentService, resolvedBuildQuery);
81
278
  return eVaultAdapter;
82
279
  })()
83
- : new EVaultV3Adapter({
84
- ...(resolvedEVaultServiceConfig.v3AdapterConfig ??
85
- defaultEVaultV3AdapterConfig),
86
- ...(v3ApiKey !== undefined ? { apiKey: v3ApiKey } : {}),
87
- ...(resolvedEVaultServiceConfig.v3AdapterConfig?.apiKey !==
88
- undefined
89
- ? { apiKey: resolvedEVaultServiceConfig.v3AdapterConfig.apiKey }
90
- : {}),
91
- }, resolvedBuildQuery);
280
+ : new EVaultV3Adapter(resolveV3AdapterConfig(defaultEVaultV3AdapterConfig, {
281
+ explicitConfig: resolvedEVaultServiceConfig.v3AdapterConfig,
282
+ explicitV3ApiKey: v3ApiKey,
283
+ envConfig,
284
+ config,
285
+ envEndpoint: envConfig.eVaultV3ApiUrl,
286
+ configEndpoint: config?.eVaultV3ApiUrl,
287
+ envApiKey: envConfig.eVaultV3ApiKey,
288
+ configApiKey: config?.eVaultV3ApiKey,
289
+ envExtra: {
290
+ ...maybeField("batchSize", envConfig.eVaultV3BatchSize),
291
+ },
292
+ configExtra: {
293
+ ...maybeField("batchSize", config?.eVaultV3BatchSize),
294
+ },
295
+ }), providerService, resolvedBuildQuery);
92
296
  eVaultService = new EVaultService(selectedEVaultAdapter, deploymentService);
93
297
  }
94
298
  // Build eulerEarn service if not overridden
@@ -98,19 +302,19 @@ export async function buildEulerSDK(options) {
98
302
  }
99
303
  else {
100
304
  const resolvedEulerEarnServiceConfig = eulerEarnServiceConfig ?? {};
101
- const eulerEarnAdapter = resolvedEulerEarnServiceConfig.adapter === "onchain"
305
+ const resolvedEulerEarnServiceAdapter = pickConfigValue(config?.eulerEarnServiceAdapter, resolvedEulerEarnServiceConfig.adapter, envConfig.eulerEarnServiceAdapter);
306
+ const eulerEarnAdapter = resolvedEulerEarnServiceAdapter === "onchain"
102
307
  ? new EulerEarnOnchainAdapter(providerService, deploymentService, resolvedBuildQuery)
103
- : new EulerEarnV3Adapter({
104
- ...(resolvedEulerEarnServiceConfig.v3AdapterConfig ??
105
- defaultEulerEarnV3AdapterConfig),
106
- ...(v3ApiKey !== undefined ? { apiKey: v3ApiKey } : {}),
107
- ...(resolvedEulerEarnServiceConfig.v3AdapterConfig?.apiKey !==
108
- undefined
109
- ? {
110
- apiKey: resolvedEulerEarnServiceConfig.v3AdapterConfig.apiKey,
111
- }
112
- : {}),
113
- }, resolvedBuildQuery);
308
+ : new EulerEarnV3Adapter(resolveV3AdapterConfig(defaultEulerEarnV3AdapterConfig, {
309
+ explicitConfig: resolvedEulerEarnServiceConfig.v3AdapterConfig,
310
+ explicitV3ApiKey: v3ApiKey,
311
+ envConfig,
312
+ config,
313
+ envEndpoint: envConfig.eulerEarnV3ApiUrl,
314
+ configEndpoint: config?.eulerEarnV3ApiUrl,
315
+ envApiKey: envConfig.eulerEarnV3ApiKey,
316
+ configApiKey: config?.eulerEarnV3ApiKey,
317
+ }), resolvedBuildQuery);
114
318
  eulerEarnService = new EulerEarnService(eulerEarnAdapter, deploymentService, eVaultService);
115
319
  }
116
320
  // Build securitizeVault service if not overridden
@@ -128,17 +332,37 @@ export async function buildEulerSDK(options) {
128
332
  vaultMetaService = servicesOverrides.vaultMetaService;
129
333
  }
130
334
  else {
131
- const resolvedVaultTypeAdapterConfig = vaultTypeAdapterConfig ?? defaultVaultTypeAdapterConfig;
132
- const vaultTypeAdapter = "subgraphURLs" in resolvedVaultTypeAdapterConfig
133
- ? new VaultTypeSubgraphAdapter(resolvedVaultTypeAdapterConfig, resolvedBuildQuery)
134
- : new VaultTypeV3Adapter({
135
- ...resolvedVaultTypeAdapterConfig,
136
- ...(v3ApiKey !== undefined ? { apiKey: v3ApiKey } : {}),
137
- ...("apiKey" in resolvedVaultTypeAdapterConfig &&
138
- resolvedVaultTypeAdapterConfig.apiKey !== undefined
139
- ? { apiKey: resolvedVaultTypeAdapterConfig.apiKey }
140
- : {}),
141
- }, resolvedBuildQuery);
335
+ const explicitVaultTypeAdapterKind = vaultTypeAdapterConfig
336
+ ? "subgraphURLs" in vaultTypeAdapterConfig
337
+ ? "subgraph"
338
+ : "v3"
339
+ : undefined;
340
+ const resolvedVaultTypeAdapterKind = pickConfigValue(config?.vaultTypeAdapter, explicitVaultTypeAdapterKind, envConfig.vaultTypeAdapter, "v3");
341
+ const vaultTypeAdapter = resolvedVaultTypeAdapterKind === "subgraph"
342
+ ? new VaultTypeSubgraphAdapter({
343
+ subgraphURLs: mergeNumberRecords(defaultAccountVaultsAdapterConfig.subgraphURLs, envConfig.vaultTypeSubgraphUrls, vaultTypeAdapterConfig &&
344
+ "subgraphURLs" in vaultTypeAdapterConfig
345
+ ? vaultTypeAdapterConfig.subgraphURLs
346
+ : undefined, config?.vaultTypeSubgraphUrls),
347
+ }, resolvedBuildQuery)
348
+ : new VaultTypeV3Adapter(resolveV3AdapterConfig(defaultVaultTypeAdapterConfig, {
349
+ explicitConfig: vaultTypeAdapterConfig &&
350
+ !("subgraphURLs" in vaultTypeAdapterConfig)
351
+ ? {
352
+ ...vaultTypeAdapterConfig,
353
+ ...maybeField("typeMap", mergeStringRecords(envConfig.vaultTypeV3TypeMap, vaultTypeAdapterConfig.typeMap, config?.vaultTypeV3TypeMap)),
354
+ }
355
+ : {
356
+ ...maybeField("typeMap", mergeStringRecords(envConfig.vaultTypeV3TypeMap, undefined, config?.vaultTypeV3TypeMap)),
357
+ },
358
+ explicitV3ApiKey: v3ApiKey,
359
+ envConfig,
360
+ config,
361
+ envEndpoint: envConfig.vaultTypeV3ApiUrl,
362
+ configEndpoint: config?.vaultTypeV3ApiUrl,
363
+ envApiKey: envConfig.vaultTypeV3ApiKey,
364
+ configApiKey: config?.vaultTypeV3ApiKey,
365
+ }), resolvedBuildQuery);
142
366
  const allVaultServices = [
143
367
  {
144
368
  type: VaultType.EVault,
@@ -189,7 +413,12 @@ export async function buildEulerSDK(options) {
189
413
  const portfolioService = servicesOverrides?.portfolioService ??
190
414
  new PortfolioService(accountService);
191
415
  // Build eulerLabels service if not overridden
192
- const eulerLabelsConfig = eulerLabelsAdapterConfig || defaultEulerLabelsURLAdapterConfig;
416
+ const eulerLabelsConfig = {
417
+ ...defaultEulerLabelsURLAdapterConfig,
418
+ ...makeEulerLabelsConfig(envConfig),
419
+ ...(eulerLabelsAdapterConfig ?? {}),
420
+ ...makeEulerLabelsConfig(config),
421
+ };
193
422
  const eulerLabelsService = servicesOverrides?.eulerLabelsService ??
194
423
  (() => {
195
424
  const eulerLabelsAdapter = new EulerLabelsURLAdapter(eulerLabelsConfig, resolvedBuildQuery);
@@ -197,14 +426,26 @@ export async function buildEulerSDK(options) {
197
426
  })();
198
427
  // Build tokenlist service if not overridden
199
428
  const tokenlistService = servicesOverrides?.tokenlistService ??
200
- new TokenlistService(tokenlistServiceConfig || defaultTokenlistServiceConfig, resolvedBuildQuery);
429
+ new TokenlistService({
430
+ ...defaultTokenlistServiceConfig,
431
+ ...makeTokenlistConfig(envConfig),
432
+ ...(tokenlistServiceConfig ?? {}),
433
+ ...makeTokenlistConfig(config),
434
+ }, resolvedBuildQuery);
201
435
  // Build swap service if not overridden
202
436
  const swapService = servicesOverrides?.swapService ??
203
- new SwapService(swapServiceConfig || defaultSwapServiceConfig, deploymentService, resolvedBuildQuery);
437
+ new SwapService({
438
+ ...defaultSwapServiceConfig,
439
+ ...maybeField("swapApiUrl", envConfig.swapApiUrl),
440
+ ...maybeField("defaultDeadline", envConfig.swapDefaultDeadline),
441
+ ...(swapServiceConfig ?? {}),
442
+ ...maybeField("swapApiUrl", config?.swapApiUrl),
443
+ ...maybeField("defaultDeadline", config?.swapDefaultDeadline),
444
+ }, deploymentService, resolvedBuildQuery);
204
445
  // Build execution service if not overridden
205
446
  const executionService = servicesOverrides?.executionService ??
206
447
  (() => {
207
- const svc = new ExecutionService(deploymentService, walletService);
448
+ const svc = new ExecutionService(deploymentService, walletService, providerService, vaultMetaService);
208
449
  if (plugins?.length)
209
450
  svc.setPlugins(plugins);
210
451
  return svc;
@@ -212,56 +453,38 @@ export async function buildEulerSDK(options) {
212
453
  // Build price service if not overridden
213
454
  const priceService = servicesOverrides?.priceService ??
214
455
  (() => {
215
- const resolvedBackendConfig = backendConfig ?? defaultBackendConfig;
216
- const backendClient = new PricingBackendClient({
217
- ...resolvedBackendConfig,
218
- ...(v3ApiKey !== undefined ? { apiKey: v3ApiKey } : {}),
219
- ...(resolvedBackendConfig.apiKey !== undefined
220
- ? { apiKey: resolvedBackendConfig.apiKey }
221
- : {}),
222
- }, resolvedBuildQuery);
456
+ const resolvedPricingServiceConfig = resolveV3AdapterConfig(defaultPricingServiceConfig, {
457
+ explicitConfig: pricingServiceConfig,
458
+ explicitV3ApiKey: v3ApiKey,
459
+ envConfig,
460
+ config,
461
+ envEndpoint: envConfig.pricingApiUrl,
462
+ configEndpoint: config?.pricingApiUrl,
463
+ envApiKey: envConfig.pricingApiKey,
464
+ configApiKey: config?.pricingApiKey,
465
+ });
466
+ const backendClient = new PricingBackendClient(resolvedPricingServiceConfig, resolvedBuildQuery);
223
467
  return new PriceService(providerService, deploymentService, backendClient, resolvedBuildQuery);
224
468
  })();
225
469
  // Build rewards service if not overridden
226
470
  const rewardsService = servicesOverrides?.rewardsService ??
227
471
  (() => {
228
- const resolvedRewardsServiceConfig = rewardsServiceConfig ?? {};
229
- const legacyDirectAdapterConfig = {
230
- merklApiUrl: resolvedRewardsServiceConfig.merklApiUrl,
231
- brevisApiUrl: resolvedRewardsServiceConfig.brevisApiUrl,
232
- brevisProofsApiUrl: resolvedRewardsServiceConfig.brevisProofsApiUrl,
233
- fuulApiUrl: resolvedRewardsServiceConfig.fuulApiUrl,
234
- fuulTotalsUrl: resolvedRewardsServiceConfig.fuulTotalsUrl,
235
- fuulClaimChecksUrl: resolvedRewardsServiceConfig.fuulClaimChecksUrl,
236
- brevisChainIds: resolvedRewardsServiceConfig.brevisChainIds,
237
- merklDistributorAddress: resolvedRewardsServiceConfig.merklDistributorAddress,
238
- fuulManagerAddress: resolvedRewardsServiceConfig.fuulManagerAddress,
239
- fuulFactoryAddress: resolvedRewardsServiceConfig.fuulFactoryAddress,
240
- enableMerkl: resolvedRewardsServiceConfig.enableMerkl,
241
- enableBrevis: resolvedRewardsServiceConfig.enableBrevis,
242
- enableFuul: resolvedRewardsServiceConfig.enableFuul,
243
- };
244
- const directAdapterConfig = {
245
- ...legacyDirectAdapterConfig,
246
- ...(resolvedRewardsServiceConfig.directAdapterConfig ?? {}),
247
- };
472
+ const resolvedRewardsServiceAdapter = pickConfigValue(config?.rewardsServiceAdapter, rewardsServiceConfig?.adapter, envConfig.rewardsServiceAdapter, "v3");
473
+ const directAdapterConfig = resolveRewardsDirectAdapterConfig(rewardsServiceConfig, envConfig, config);
248
474
  const directAdapter = new RewardsDirectAdapter(directAdapterConfig, resolvedBuildQuery);
249
- const rewardsAdapter = resolvedRewardsServiceConfig.adapter === "direct"
475
+ const rewardsAdapter = resolvedRewardsServiceAdapter === "direct"
250
476
  ? directAdapter
251
- : new RewardsV3Adapter({
252
- ...(resolvedRewardsServiceConfig.v3AdapterConfig ??
253
- defaultRewardsV3AdapterConfig),
254
- ...(v3ApiKey !== undefined ? { apiKey: v3ApiKey } : {}),
255
- ...(resolvedRewardsServiceConfig.v3AdapterConfig?.apiKey !==
256
- undefined
257
- ? {
258
- apiKey: resolvedRewardsServiceConfig.v3AdapterConfig.apiKey,
259
- }
260
- : {}),
261
- }, resolvedBuildQuery);
262
- return new RewardsService(rewardsAdapter, resolvedRewardsServiceConfig.adapter === "direct"
263
- ? undefined
264
- : directAdapter, {
477
+ : new RewardsV3Adapter(resolveV3AdapterConfig(defaultRewardsV3AdapterConfig, {
478
+ explicitConfig: rewardsServiceConfig?.v3AdapterConfig,
479
+ explicitV3ApiKey: v3ApiKey,
480
+ envConfig,
481
+ config,
482
+ envEndpoint: envConfig.rewardsV3ApiUrl,
483
+ configEndpoint: config?.rewardsV3ApiUrl,
484
+ envApiKey: envConfig.rewardsV3ApiKey,
485
+ configApiKey: config?.rewardsV3ApiKey,
486
+ }), resolvedBuildQuery);
487
+ return new RewardsService(rewardsAdapter, resolvedRewardsServiceAdapter === "direct" ? undefined : directAdapter, {
265
488
  merklDistributorAddress: directAdapter.getMerklDistributorAddress(),
266
489
  fuulManagerAddress: directAdapter.getFuulManagerAddress(),
267
490
  fuulFactoryAddress: directAdapter.getFuulFactoryAddress(),
@@ -271,26 +494,53 @@ export async function buildEulerSDK(options) {
271
494
  const intrinsicApyService = servicesOverrides?.intrinsicApyService ??
272
495
  (() => {
273
496
  const resolvedIntrinsicApyServiceConfig = intrinsicApyServiceConfig ?? {};
274
- const intrinsicApyAdapter = new IntrinsicApyV3Adapter({
275
- ...(resolvedIntrinsicApyServiceConfig.v3AdapterConfig ??
276
- defaultIntrinsicApyV3AdapterConfig),
277
- ...(v3ApiKey !== undefined ? { apiKey: v3ApiKey } : {}),
278
- ...(resolvedIntrinsicApyServiceConfig.v3AdapterConfig?.apiKey !==
279
- undefined
280
- ? {
281
- apiKey: resolvedIntrinsicApyServiceConfig.v3AdapterConfig.apiKey,
282
- }
283
- : {}),
284
- }, resolvedBuildQuery);
497
+ const intrinsicApyAdapter = new IntrinsicApyV3Adapter(resolveV3AdapterConfig(defaultIntrinsicApyV3AdapterConfig, {
498
+ explicitConfig: resolvedIntrinsicApyServiceConfig.v3AdapterConfig,
499
+ explicitV3ApiKey: v3ApiKey,
500
+ envConfig,
501
+ config,
502
+ envEndpoint: envConfig.intrinsicApyV3ApiUrl,
503
+ configEndpoint: config?.intrinsicApyV3ApiUrl,
504
+ envApiKey: envConfig.intrinsicApyV3ApiKey,
505
+ configApiKey: config?.intrinsicApyV3ApiKey,
506
+ envExtra: {
507
+ ...maybeField("pageSize", envConfig.intrinsicApyV3PageSize),
508
+ ...maybeField("maxAssetsPerRequest", envConfig.intrinsicApyV3MaxAssetsPerRequest),
509
+ },
510
+ configExtra: {
511
+ ...maybeField("pageSize", config?.intrinsicApyV3PageSize),
512
+ ...maybeField("maxAssetsPerRequest", config?.intrinsicApyV3MaxAssetsPerRequest),
513
+ },
514
+ }), resolvedBuildQuery);
285
515
  return new IntrinsicApyService(intrinsicApyAdapter);
286
516
  })();
287
517
  const oracleAdapterService = servicesOverrides?.oracleAdapterService ??
288
- new OracleAdapterService(oracleAdapterServiceConfig, resolvedBuildQuery);
518
+ new OracleAdapterService({
519
+ ...maybeField("baseUrl", envConfig.oracleAdaptersBaseUrl),
520
+ ...maybeField("cacheMs", envConfig.oracleAdaptersCacheMs),
521
+ ...(oracleAdapterServiceConfig ?? {}),
522
+ ...maybeField("baseUrl", config?.oracleAdaptersBaseUrl),
523
+ ...maybeField("cacheMs", config?.oracleAdaptersCacheMs),
524
+ }, resolvedBuildQuery);
289
525
  const feeFlowService = servicesOverrides?.feeFlowService ??
290
- new FeeFlowService(feeFlowServiceConfig, resolvedBuildQuery);
291
- // Build simulation service if not overridden
292
- const simulationService = servicesOverrides?.simulationService ??
293
- new SimulationService(providerService, deploymentService, vaultMetaService, executionService, priceService, rewardsService, intrinsicApyService, eulerLabelsService, walletService);
526
+ new FeeFlowService({
527
+ ...maybeField("feeFlowControllerAddress", envConfig.feeFlowControllerAddress),
528
+ ...maybeField("feeFlowControllerUtilAddress", envConfig.feeFlowControllerUtilAddress),
529
+ ...maybeField("defaultBuyDeadlineSeconds", envConfig.feeFlowDefaultBuyDeadlineSeconds),
530
+ ...(feeFlowServiceConfig ?? {}),
531
+ ...maybeField("feeFlowControllerAddress", config?.feeFlowControllerAddress),
532
+ ...maybeField("feeFlowControllerUtilAddress", config?.feeFlowControllerUtilAddress),
533
+ ...maybeField("defaultBuyDeadlineSeconds", config?.feeFlowDefaultBuyDeadlineSeconds),
534
+ }, resolvedBuildQuery);
535
+ if (executionService instanceof ExecutionService) {
536
+ executionService.setProviderService(providerService);
537
+ executionService.setVaultMetaService(vaultMetaService);
538
+ executionService.setWalletService(walletService);
539
+ executionService.setPriceService(priceService);
540
+ executionService.setRewardsService(rewardsService);
541
+ executionService.setIntrinsicApyService(intrinsicApyService);
542
+ executionService.setEulerLabelsService(eulerLabelsService);
543
+ }
294
544
  // Wire priceService and rewardsService into account service
295
545
  if (accountService instanceof AccountService) {
296
546
  accountService.setPriceService(priceService);
@@ -343,7 +593,7 @@ export async function buildEulerSDK(options) {
343
593
  if (securitizeVaultService instanceof SecuritizeVaultService) {
344
594
  securitizeVaultService.setEulerLabelsService(eulerLabelsService);
345
595
  }
346
- return new EulerSDK({
596
+ const sdk = new EulerSDK({
347
597
  accountService,
348
598
  portfolioService,
349
599
  walletService,
@@ -358,7 +608,6 @@ export async function buildEulerSDK(options) {
358
608
  tokenlistService,
359
609
  swapService,
360
610
  executionService,
361
- simulationService,
362
611
  priceService,
363
612
  rewardsService,
364
613
  intrinsicApyService,
@@ -366,5 +615,9 @@ export async function buildEulerSDK(options) {
366
615
  feeFlowService,
367
616
  plugins,
368
617
  });
618
+ if (executionService instanceof ExecutionService) {
619
+ executionService.setPluginProcessor((plan, account, chainId) => sdk.processPlugins(plan, account, chainId));
620
+ }
621
+ return sdk;
369
622
  }
370
623
  //# sourceMappingURL=buildSDK.js.map