@eulerxyz/euler-v2-sdk 0.1.3-beta → 0.2.1-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 (237) hide show
  1. package/README.md +24 -25
  2. package/dist/src/entities/Account.d.ts +50 -49
  3. package/dist/src/entities/Account.d.ts.map +1 -1
  4. package/dist/src/entities/Account.js +80 -66
  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 +20 -19
  21. package/dist/src/entities/Portfolio.d.ts.map +1 -1
  22. package/dist/src/entities/Portfolio.js +34 -17
  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 +4 -1
  29. package/dist/src/index.d.ts.map +1 -1
  30. package/dist/src/index.js +4 -1
  31. package/dist/src/index.js.map +1 -1
  32. package/dist/src/plugins/keyring/keyringPlugin.d.ts.map +1 -1
  33. package/dist/src/plugins/keyring/keyringPlugin.js +59 -10
  34. package/dist/src/plugins/keyring/keyringPlugin.js.map +1 -1
  35. package/dist/src/plugins/pyth/pythPlugin.d.ts.map +1 -1
  36. package/dist/src/plugins/pyth/pythPlugin.js +132 -11
  37. package/dist/src/plugins/pyth/pythPlugin.js.map +1 -1
  38. package/dist/src/plugins/types.d.ts +4 -7
  39. package/dist/src/plugins/types.d.ts.map +1 -1
  40. package/dist/src/plugins/types.js.map +1 -1
  41. package/dist/src/sdk/buildSDK.d.ts +10 -4
  42. package/dist/src/sdk/buildSDK.d.ts.map +1 -1
  43. package/dist/src/sdk/buildSDK.js +359 -110
  44. package/dist/src/sdk/buildSDK.js.map +1 -1
  45. package/dist/src/sdk/config.d.ts +74 -0
  46. package/dist/src/sdk/config.d.ts.map +1 -0
  47. package/dist/src/sdk/config.js +187 -0
  48. package/dist/src/sdk/config.js.map +1 -0
  49. package/dist/src/sdk/defaultConfig.d.ts +5 -2
  50. package/dist/src/sdk/defaultConfig.d.ts.map +1 -1
  51. package/dist/src/sdk/defaultConfig.js +21 -18
  52. package/dist/src/sdk/defaultConfig.js.map +1 -1
  53. package/dist/src/sdk/sdk.d.ts +4 -3
  54. package/dist/src/sdk/sdk.d.ts.map +1 -1
  55. package/dist/src/sdk/sdk.js +2 -4
  56. package/dist/src/sdk/sdk.js.map +1 -1
  57. package/dist/src/services/accountService/accountService.d.ts.map +1 -1
  58. package/dist/src/services/accountService/accountService.js +10 -7
  59. package/dist/src/services/accountService/accountService.js.map +1 -1
  60. package/dist/src/services/accountService/accountServiceConfig.d.ts +1 -1
  61. package/dist/src/services/accountService/accountServiceConfig.d.ts.map +1 -1
  62. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.d.ts +2 -2
  63. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.d.ts.map +1 -1
  64. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.js +22 -17
  65. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.js.map +1 -1
  66. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.d.ts +1 -1
  67. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.d.ts.map +1 -1
  68. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.js +16 -17
  69. package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.js.map +1 -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 +58 -53
  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 +15 -11
  81. package/dist/src/services/executionService/encode.d.ts.map +1 -1
  82. package/dist/src/services/executionService/encode.js +242 -23
  83. package/dist/src/services/executionService/encode.js.map +1 -1
  84. package/dist/src/services/executionService/execute.d.ts +2 -1
  85. package/dist/src/services/executionService/execute.d.ts.map +1 -1
  86. package/dist/src/services/executionService/execute.js +10 -6
  87. package/dist/src/services/executionService/execute.js.map +1 -1
  88. package/dist/src/services/executionService/executionService.d.ts +45 -7
  89. package/dist/src/services/executionService/executionService.d.ts.map +1 -1
  90. package/dist/src/services/executionService/executionService.js +325 -20
  91. package/dist/src/services/executionService/executionService.js.map +1 -1
  92. package/dist/src/services/executionService/executionServiceTypes.d.ts +109 -1
  93. package/dist/src/services/executionService/executionServiceTypes.d.ts.map +1 -1
  94. package/dist/src/services/executionService/executionServiceTypes.js.map +1 -1
  95. package/dist/src/services/executionService/index.d.ts +1 -1
  96. package/dist/src/services/executionService/index.d.ts.map +1 -1
  97. package/dist/src/services/executionService/index.js.map +1 -1
  98. package/dist/src/services/executionService/simulate.d.ts.map +1 -1
  99. package/dist/src/services/executionService/simulate.js +3 -2
  100. package/dist/src/services/executionService/simulate.js.map +1 -1
  101. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.d.ts +1 -1
  102. package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.d.ts.map +1 -1
  103. package/dist/src/services/oracleAdapterService/oracleAdapterService.d.ts +5 -0
  104. package/dist/src/services/oracleAdapterService/oracleAdapterService.d.ts.map +1 -1
  105. package/dist/src/services/oracleAdapterService/oracleAdapterService.js +38 -11
  106. package/dist/src/services/oracleAdapterService/oracleAdapterService.js.map +1 -1
  107. package/dist/src/services/priceService/backendClient.d.ts +7 -11
  108. package/dist/src/services/priceService/backendClient.d.ts.map +1 -1
  109. package/dist/src/services/priceService/backendClient.js +7 -14
  110. package/dist/src/services/priceService/backendClient.js.map +1 -1
  111. package/dist/src/services/priceService/index.d.ts +2 -2
  112. package/dist/src/services/priceService/index.d.ts.map +1 -1
  113. package/dist/src/services/priceService/index.js +1 -1
  114. package/dist/src/services/priceService/index.js.map +1 -1
  115. package/dist/src/services/priceService/priceService.d.ts +21 -18
  116. package/dist/src/services/priceService/priceService.d.ts.map +1 -1
  117. package/dist/src/services/priceService/priceService.js +61 -101
  118. package/dist/src/services/priceService/priceService.js.map +1 -1
  119. package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.d.ts +4 -1
  120. package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.d.ts.map +1 -1
  121. package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.js +20 -4
  122. package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.js.map +1 -1
  123. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.d.ts.map +1 -1
  124. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js +5 -2
  125. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js.map +1 -1
  126. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.d.ts +2 -0
  127. package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.d.ts.map +1 -1
  128. package/dist/src/services/rewardsService/rewardsService.d.ts +6 -1
  129. package/dist/src/services/rewardsService/rewardsService.d.ts.map +1 -1
  130. package/dist/src/services/rewardsService/rewardsService.js +128 -3
  131. package/dist/src/services/rewardsService/rewardsService.js.map +1 -1
  132. package/dist/src/services/rewardsService/rewardsServiceTypes.d.ts +5 -3
  133. package/dist/src/services/rewardsService/rewardsServiceTypes.d.ts.map +1 -1
  134. package/dist/src/services/swapService/swapService.d.ts +4 -6
  135. package/dist/src/services/swapService/swapService.d.ts.map +1 -1
  136. package/dist/src/services/swapService/swapService.js +90 -99
  137. package/dist/src/services/swapService/swapService.js.map +1 -1
  138. package/dist/src/services/swapService/swapVerification.d.ts +28 -0
  139. package/dist/src/services/swapService/swapVerification.d.ts.map +1 -0
  140. package/dist/src/services/swapService/swapVerification.js +138 -0
  141. package/dist/src/services/swapService/swapVerification.js.map +1 -0
  142. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.d.ts +1 -1
  143. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.d.ts.map +1 -1
  144. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js +6 -13
  145. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js.map +1 -1
  146. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.d.ts +1 -1
  147. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.d.ts.map +1 -1
  148. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.js +69 -51
  149. package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.js.map +1 -1
  150. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.d.ts +5 -2
  151. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.d.ts.map +1 -1
  152. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js +50 -18
  153. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js.map +1 -1
  154. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.d.ts +1 -1
  155. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.d.ts.map +1 -1
  156. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.js +106 -111
  157. package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.js.map +1 -1
  158. package/dist/src/services/vaults/eVaultService/eVaultService.d.ts +4 -4
  159. package/dist/src/services/vaults/eVaultService/eVaultService.d.ts.map +1 -1
  160. package/dist/src/services/vaults/eVaultService/eVaultService.js +56 -57
  161. package/dist/src/services/vaults/eVaultService/eVaultService.js.map +1 -1
  162. package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.d.ts +1 -1
  163. package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.d.ts.map +1 -1
  164. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.d.ts +1 -1
  165. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.d.ts.map +1 -1
  166. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.js +22 -21
  167. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.js.map +1 -1
  168. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.d.ts.map +1 -1
  169. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.js +27 -32
  170. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.js.map +1 -1
  171. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.d.ts +1 -1
  172. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.d.ts.map +1 -1
  173. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.js +113 -72
  174. package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.js.map +1 -1
  175. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.d.ts +5 -5
  176. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.d.ts.map +1 -1
  177. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.js +30 -28
  178. package/dist/src/services/vaults/eulerEarnService/eulerEarnService.js.map +1 -1
  179. package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.d.ts +1 -1
  180. package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.d.ts.map +1 -1
  181. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.d.ts +1 -1
  182. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.d.ts.map +1 -1
  183. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.js +10 -7
  184. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.js.map +1 -1
  185. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.d.ts.map +1 -1
  186. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.js +6 -8
  187. package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.js.map +1 -1
  188. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.d.ts +2 -2
  189. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.d.ts.map +1 -1
  190. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.js +13 -18
  191. package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.js.map +1 -1
  192. package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.d.ts +1 -1
  193. package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.d.ts.map +1 -1
  194. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.d.ts +3 -3
  195. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.d.ts.map +1 -1
  196. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.js +31 -32
  197. package/dist/src/services/vaults/vaultMetaService/vaultMetaService.js.map +1 -1
  198. package/dist/src/services/walletService/adapters/walletOnchainAdapter.d.ts +5 -1
  199. package/dist/src/services/walletService/adapters/walletOnchainAdapter.d.ts.map +1 -1
  200. package/dist/src/services/walletService/adapters/walletOnchainAdapter.js +181 -40
  201. package/dist/src/services/walletService/adapters/walletOnchainAdapter.js.map +1 -1
  202. package/dist/src/services/walletService/walletService.d.ts +1 -1
  203. package/dist/src/services/walletService/walletService.d.ts.map +1 -1
  204. package/dist/src/services/walletService/walletService.js +4 -3
  205. package/dist/src/services/walletService/walletService.js.map +1 -1
  206. package/dist/src/utils/accountComputations.d.ts +14 -13
  207. package/dist/src/utils/accountComputations.d.ts.map +1 -1
  208. package/dist/src/utils/accountComputations.js +59 -37
  209. package/dist/src/utils/accountComputations.js.map +1 -1
  210. package/dist/src/utils/buildQuery.d.ts +1 -0
  211. package/dist/src/utils/buildQuery.d.ts.map +1 -1
  212. package/dist/src/utils/buildQuery.js +1 -1
  213. package/dist/src/utils/buildQuery.js.map +1 -1
  214. package/dist/src/utils/entityDiagnostics.d.ts +75 -12
  215. package/dist/src/utils/entityDiagnostics.d.ts.map +1 -1
  216. package/dist/src/utils/entityDiagnostics.js +85 -19
  217. package/dist/src/utils/entityDiagnostics.js.map +1 -1
  218. package/dist/src/utils/eulerLabels.d.ts +34 -0
  219. package/dist/src/utils/eulerLabels.d.ts.map +1 -0
  220. package/dist/src/utils/eulerLabels.js +156 -0
  221. package/dist/src/utils/eulerLabels.js.map +1 -0
  222. package/dist/src/utils/healthCheckSets.d.ts +14 -0
  223. package/dist/src/utils/healthCheckSets.d.ts.map +1 -0
  224. package/dist/src/utils/healthCheckSets.js +174 -0
  225. package/dist/src/utils/healthCheckSets.js.map +1 -0
  226. package/dist/src/utils/normalization.d.ts +10 -4
  227. package/dist/src/utils/normalization.d.ts.map +1 -1
  228. package/dist/src/utils/normalization.js +38 -11
  229. package/dist/src/utils/normalization.js.map +1 -1
  230. package/dist/src/utils/oracle.d.ts.map +1 -1
  231. package/dist/src/utils/oracle.js +12 -1
  232. package/dist/src/utils/oracle.js.map +1 -1
  233. package/dist/src/utils/parsing.d.ts +2 -2
  234. package/dist/src/utils/parsing.d.ts.map +1 -1
  235. package/dist/src/utils/parsing.js +12 -22
  236. package/dist/src/utils/parsing.js.map +1 -1
  237. package/package.json +1 -1
package/README.md CHANGED
@@ -15,11 +15,8 @@ import { buildEulerSDK, getSubAccountAddress } from "@eulerxyz/euler-v2-sdk";
15
15
  import { mainnet } from "viem/chains";
16
16
  import { parseUnits } from "viem";
17
17
 
18
- const sdk = await buildEulerSDK({
19
- rpcUrls: {
20
- [mainnet.id]: "https://your-rpc-url",
21
- },
22
- });
18
+ // Set EULER_SDK_RPC_URL_1=https://your-rpc-url in the environment.
19
+ const sdk = await buildEulerSDK();
23
20
 
24
21
  const owner = "0xYourEOA";
25
22
  const subAccount = getSubAccountAddress(owner, 1);
@@ -66,40 +63,42 @@ const simulation = await sdk.simulationService.simulateTransactionPlan(
66
63
 
67
64
  `@eulerxyz/euler-v2-sdk` provides everything needed to interact with Euler V2 lending contracts:
68
65
 
69
- - fetching account, vault, wallet, and market data
66
+ - fetching account, vault, wallet balance/allowance, and market data
70
67
  - planning and composing EVC transaction batches
71
68
  - resolving approvals (approve/Permit2 paths)
72
69
  - simulating transactions before execution
73
- - handling vault swaps, wallet-to-wallet swaps, pricing, rewards, labels, and deployed addresses
74
- - fetching oracle adapter metadata/checks (provider, methodology, checks)
70
+ - handling vault swaps, wallet-to-wallet swaps, pricing, rewards, normalized euler-labels metadata, and deployed addresses
71
+ - fetching oracle adapter metadata/checks keyed by oracle adapter address (provider, methodology, checks)
75
72
 
76
73
  The SDK is built with dependency injection, so you can use `buildEulerSDK()` for a default setup, run individual services in isolation, or modify the behavior with your custom implementations.
77
74
 
78
75
  ## Configuration
79
76
 
80
- Only `rpcUrls` is required. All other options (pricing backend, swap API, rewards, subgraphs, plugins, etc.) have sensible defaults or are optional. See the full [Configuration Reference](./docs/configuration.md) for all options and defaults.
77
+ Runtime config can come from `buildEulerSDK({ config })`, supported explicit SDK options, `EULER_SDK_*` environment variables, or SDK defaults. RPC URLs are supplied through `config.rpcUrls` or `EULER_SDK_RPC_URL_<chainId>`. See the full [Configuration Reference](./docs/configuration.md) and [Config Through Env](./docs/config-through-env.md) for all options and defaults.
81
78
 
82
79
  ## Docs Table of Contents
83
80
 
84
81
  All docs are in [`./docs`](./docs).
85
82
 
86
83
  1. [Configuration](./docs/configuration.md) - All `buildEulerSDK()` options, defaults, and service overrides.
87
- 2. [Basic Usage](./docs/basic-usage.md) - Fast setup and common account/vault usage patterns.
88
- 3. [SDK Architecture Overview](./docs/sdk-architecture-overview.md) - High-level architecture, dependency injection model, and composition options.
89
- 4. [Services](./docs/services.md) - Service map, top-level entry points, and lower-level support services.
90
- 5. [Execution Service](./docs/execution-service.md) - `encodeX` vs `planX`, approvals flow, named operation groups, `mergePlans`, and `describeBatch`.
91
- 6. [Simulations and State Overrides](./docs/simulations-and-state-overrides.md) - Plan simulation flow, validation output, and state override utilities.
92
- 7. [Swaps](./docs/swaps.md) - Swap quote APIs and how swap payloads fit into plans.
93
- 8. [Pricing System](./docs/pricing-system.md) - Price data pipeline, fallback behavior, and pricing integration points.
94
- 9. [Data Architecture](./docs/data-architecture.md) - Entities/adapters/services layering, population model, and data flow.
95
- 10. [Cross-Service Data Population](./docs/cross-service-data-population.md) - How services enrich entities with prices, rewards, labels, and nested vaults.
96
- 11. [Portfolio](./docs/portfolio.md) - High-level savings/borrows abstraction built from populated accounts.
97
- 12. [Account Computed Properties](./docs/account-computed-properties.md) - Health factor/LTV/net-value computed fields and data prerequisites.
98
- 13. [Caching External Data Queries](./docs/caching-external-data-queries.md) - `query*` decoration pattern for caching/logging/profiling.
99
- 14. [Plugins](./docs/plugins.md) - Plugin system for read-path and plan-path extensions.
100
- 15. [Labels](./docs/labels.md) - Label metadata model and usage.
101
- 16. [Decoding Smart Contract Errors](./docs/decode-smart-contract-errors.md) - Revert decoding utilities for better error handling.
102
- 17. [Entity Diagnostics](./docs/entity-diagnostics.md) - Sidecar metadata for data normalization, fallbacks, and per-field warnings.
84
+ 2. [Config Through Env](./docs/config-through-env.md) - `EULER_SDK_*` environment variables and matching `config` fields.
85
+ 3. [Basic Usage](./docs/basic-usage.md) - Fast setup and common account/vault/wallet usage patterns.
86
+ 4. [SDK Architecture Overview](./docs/sdk-architecture-overview.md) - High-level architecture, dependency injection model, and composition options.
87
+ 5. [Services](./docs/services.md) - Service map, top-level entry points, and lower-level support services.
88
+ 6. [Wallet Service](./docs/wallet-service.md) - Native/ERC20 balances and direct/Permit2 allowance reads.
89
+ 7. [Execution Service](./docs/execution-service.md) - `encodeX` vs `planX`, approvals flow, named operation groups, `mergePlans`, and `describeBatch`.
90
+ 8. [Simulations and State Overrides](./docs/simulations-and-state-overrides.md) - Plan simulation flow, validation output, and state override utilities.
91
+ 9. [Swaps](./docs/swaps.md) - Swap quote APIs and how swap payloads fit into plans.
92
+ 10. [Pricing System](./docs/pricing-system.md) - Price data pipeline, fallback behavior, and pricing integration points.
93
+ 11. [Data Architecture](./docs/data-architecture.md) - Entities/adapters/services layering, population model, and data flow.
94
+ 12. [Cross-Service Data Population](./docs/cross-service-data-population.md) - How services enrich entities with prices, rewards, labels, and nested vaults.
95
+ 13. [Portfolio](./docs/portfolio.md) - High-level savings/borrows abstraction built from populated accounts.
96
+ 14. [Account Computed Properties](./docs/account-computed-properties.md) - Health factor/LTV/net-value computed fields and data prerequisites.
97
+ 15. [Caching External Data Queries](./docs/caching-external-data-queries.md) - `query*` decoration pattern for caching/logging/profiling.
98
+ 16. [Plugins](./docs/plugins.md) - Plugin system for read-path and plan-path extensions.
99
+ 17. [Labels](./docs/labels.md) - Label metadata model and usage.
100
+ 18. [Decoding Smart Contract Errors](./docs/decode-smart-contract-errors.md) - Revert decoding utilities for better error handling.
101
+ 19. [Entity Diagnostics](./docs/entity-diagnostics.md) - Sidecar metadata for data normalization, fallbacks, and per-field warnings.
103
102
 
104
103
  ## Examples
105
104
 
@@ -3,10 +3,10 @@ import { type GetFreeSubAccountsOptions } from "../utils/subAccounts.js";
3
3
  import type { VaultEntity } from "../services/vaults/vaultMetaService/index.js";
4
4
  import type { IVaultMetaService } from "../services/vaults/vaultMetaService/index.js";
5
5
  import type { VaultFetchOptions } from "../services/vaults/index.js";
6
- import type { PriceWad } from "./ERC4626Vault.js";
6
+ import type { PriceUsd } from "./ERC4626Vault.js";
7
7
  import type { IPriceService } from "../services/priceService/index.js";
8
8
  import type { IRewardsService, UserReward } from "../services/rewardsService/index.js";
9
- import type { DataIssue } from "../utils/entityDiagnostics.js";
9
+ import { type DataIssue } from "../utils/entityDiagnostics.js";
10
10
  import type { SubAccountRoe } from "../utils/accountComputations.js";
11
11
  export type AddressPrefix = `0x${string}`;
12
12
  /** Base interface for vault-like values (has `address`). Used as generic constraint so custom vault entity types work. */
@@ -31,10 +31,10 @@ export interface AccountLiquidityCollateral<TVaultEntity extends IHasVaultAddres
31
31
  address: Address;
32
32
  vault?: TVaultEntity;
33
33
  value: AssetValue;
34
- /** USD price per underlying asset (18 dec WAD). Populated by `populateMarketPrices`. */
35
- marketPriceUsd?: PriceWad;
36
- /** Collateral value in USD (18 dec). Computed from `value.oracleMid * uoaUsdRate / 1e18`. */
37
- valueUsd?: bigint;
34
+ /** USD price per underlying asset. Populated by `populateMarketPrices`. */
35
+ marketPriceUsd?: PriceUsd;
36
+ /** Collateral value in USD. Computed from `value.oracleMid` and the UoA/USD rate. */
37
+ valueUsd?: number;
38
38
  }
39
39
  /** Raw liquidity data shape (returned by data sources). */
40
40
  export interface IAccountLiquidity<TVaultEntity extends IHasVaultAddress = never> {
@@ -45,10 +45,10 @@ export interface IAccountLiquidity<TVaultEntity extends IHasVaultAddress = never
45
45
  liabilityValue: AssetValue;
46
46
  totalCollateralValue: AssetValue;
47
47
  collaterals: AccountLiquidityCollateral<TVaultEntity>[];
48
- /** Liability value in USD (18 dec). Populated by `populateMarketPrices`. */
49
- liabilityValueUsd?: bigint;
50
- /** Total collateral value in USD (18 dec). Populated by `populateMarketPrices`. */
51
- totalCollateralValueUsd?: bigint;
48
+ /** Liability value in USD. Populated by `populateMarketPrices`. */
49
+ liabilityValueUsd?: number;
50
+ /** Total collateral value in USD. Populated by `populateMarketPrices`. */
51
+ totalCollateralValueUsd?: number;
52
52
  /** Per-collateral liquidation price multipliers (WAD). Computed getter on AccountLiquidity class. */
53
53
  readonly collateralLiquidationPrices?: Record<Address, bigint>;
54
54
  /** Borrow liquidation price multiplier (WAD). `> 1` = safe margin. Computed getter on AccountLiquidity class. */
@@ -63,8 +63,8 @@ export declare class AccountLiquidity<TVaultEntity extends IHasVaultAddress = ne
63
63
  liabilityValue: AssetValue;
64
64
  totalCollateralValue: AssetValue;
65
65
  collaterals: AccountLiquidityCollateral<TVaultEntity>[];
66
- liabilityValueUsd?: bigint;
67
- totalCollateralValueUsd?: bigint;
66
+ liabilityValueUsd?: number;
67
+ totalCollateralValueUsd?: number;
68
68
  constructor(data: IAccountLiquidity<TVaultEntity>);
69
69
  /** Per-collateral liquidation price multipliers (WAD). */
70
70
  get collateralLiquidationPrices(): Record<Address, bigint>;
@@ -84,16 +84,16 @@ export interface IAccountPosition<TVaultEntity extends IHasVaultAddress = never>
84
84
  isCollateral: boolean;
85
85
  balanceForwarderEnabled: boolean;
86
86
  liquidity?: IAccountLiquidity<TVaultEntity>;
87
- /** USD price per underlying asset (18 dec WAD). Populated by `populateMarketPrices`. */
88
- marketPriceUsd?: PriceWad;
89
- /** Supplied value in USD (18 dec). `assets * marketPriceUsd / 10^decimals`. */
90
- suppliedValueUsd?: bigint;
91
- /** Borrowed value in USD (18 dec). `borrowed * marketPriceUsd / 10^decimals`. */
92
- borrowedValueUsd?: bigint;
93
- /** Borrow liquidation price in USD (18 dec WAD). Computed getter on positions. */
94
- readonly borrowLiquidationPriceUsd?: bigint;
95
- /** Per-collateral liquidation price in USD (18 dec WAD). Computed getter on positions. */
96
- readonly collateralLiquidationPricesUsd?: Record<Address, bigint>;
87
+ /** USD price per underlying asset. Populated by `populateMarketPrices`. */
88
+ marketPriceUsd?: PriceUsd;
89
+ /** Supplied value in USD. `assets * marketPriceUsd / 10^decimals`. */
90
+ suppliedValueUsd?: number;
91
+ /** Borrowed value in USD. `borrowed * marketPriceUsd / 10^decimals`. */
92
+ borrowedValueUsd?: number;
93
+ /** Borrow liquidation price in USD. Computed getter on positions. */
94
+ readonly borrowLiquidationPriceUsd?: number;
95
+ /** Per-collateral liquidation price in USD. Computed getter on positions. */
96
+ readonly collateralLiquidationPricesUsd?: Record<Address, number>;
97
97
  }
98
98
  export declare class AccountPosition<TVaultEntity extends IHasVaultAddress = never> implements IAccountPosition<TVaultEntity> {
99
99
  account: Address;
@@ -107,12 +107,12 @@ export declare class AccountPosition<TVaultEntity extends IHasVaultAddress = nev
107
107
  isCollateral: boolean;
108
108
  balanceForwarderEnabled: boolean;
109
109
  liquidity?: IAccountLiquidity<TVaultEntity>;
110
- marketPriceUsd?: PriceWad;
111
- suppliedValueUsd?: bigint;
112
- borrowedValueUsd?: bigint;
110
+ marketPriceUsd?: PriceUsd;
111
+ suppliedValueUsd?: number;
112
+ borrowedValueUsd?: number;
113
113
  constructor(data: IAccountPosition<TVaultEntity>);
114
- get borrowLiquidationPriceUsd(): bigint | undefined;
115
- get collateralLiquidationPricesUsd(): Record<Address, bigint> | undefined;
114
+ get borrowLiquidationPriceUsd(): number | undefined;
115
+ get collateralLiquidationPricesUsd(): Record<Address, number> | undefined;
116
116
  }
117
117
  /** Raw sub-account data shape (returned by data sources). */
118
118
  export interface ISubAccount<TVaultEntity extends IHasVaultAddress = never> {
@@ -131,15 +131,15 @@ export interface ISubAccount<TVaultEntity extends IHasVaultAddress = never> {
131
131
  readonly currentLTV?: bigint;
132
132
  /** Weighted-average liquidation LTV threshold (WAD). Computed getter on SubAccount class. */
133
133
  readonly liquidationLTV?: bigint;
134
- /** Leverage multiplier (WAD, 1e18 = 1x). Requires USD data. Computed getter on SubAccount class. */
135
- readonly multiplier?: bigint;
136
- /** Total collateral value in USD (18 dec). Requires USD data. Computed getter on SubAccount class. */
137
- readonly totalCollateralValueUsd?: bigint;
138
- /** Liability value in USD (18 dec). Requires USD data. Computed getter on SubAccount class. */
139
- readonly liabilityValueUsd?: bigint;
140
- /** Net value in USD (18 dec): sum(supplied) - sum(borrowed). Computed getter on SubAccount class. */
141
- readonly netValueUsd?: bigint;
142
- /** ROE breakdown (decimal fractions). Requires populated vaults + market prices. Computed getter on SubAccount class. */
134
+ /** Leverage multiplier (1 = 1x). Requires USD data. Computed getter on SubAccount class. */
135
+ readonly multiplier?: number;
136
+ /** Total collateral value in USD. Requires USD data. Computed getter on SubAccount class. */
137
+ readonly totalCollateralValueUsd?: number;
138
+ /** Liability value in USD. Requires USD data. Computed getter on SubAccount class. */
139
+ readonly liabilityValueUsd?: number;
140
+ /** Net value in USD: sum(supplied) - sum(borrowed). Computed getter on SubAccount class. */
141
+ readonly netValueUsd?: number;
142
+ /** ROE breakdown (percentage points). Requires populated vaults + market prices. Computed getter on SubAccount class. */
143
143
  readonly roe?: SubAccountRoe;
144
144
  }
145
145
  /** SubAccount with computed getters for risk metrics. */
@@ -158,15 +158,15 @@ export declare class SubAccount<TVaultEntity extends IHasVaultAddress = never> i
158
158
  get currentLTV(): bigint | undefined;
159
159
  /** Weighted-average liquidation LTV threshold (WAD). */
160
160
  get liquidationLTV(): bigint | undefined;
161
- /** Leverage multiplier (WAD, 1e18 = 1x). Requires USD data. */
162
- get multiplier(): bigint | undefined;
163
- /** Total collateral value in USD (18 dec). Requires USD data. */
164
- get totalCollateralValueUsd(): bigint | undefined;
165
- /** Liability value in USD (18 dec). Requires USD data. */
166
- get liabilityValueUsd(): bigint | undefined;
167
- /** Net value in USD (18 dec): sum(supplied) - sum(borrowed). */
168
- get netValueUsd(): bigint | undefined;
169
- /** ROE breakdown (decimal fractions, 0.05 = 5%). Requires populated vaults + market prices. */
161
+ /** Leverage multiplier (1 = 1x). Requires USD data. */
162
+ get multiplier(): number | undefined;
163
+ /** Total collateral value in USD. Requires USD data. */
164
+ get totalCollateralValueUsd(): number | undefined;
165
+ /** Liability value in USD. Requires USD data. */
166
+ get liabilityValueUsd(): number | undefined;
167
+ /** Net value in USD: sum(supplied) - sum(borrowed). */
168
+ get netValueUsd(): number | undefined;
169
+ /** ROE breakdown (percentage points, 5 = 5%). Requires populated vaults + market prices. */
170
170
  get roe(): SubAccountRoe | undefined;
171
171
  }
172
172
  export type SubAccountsMap<TVaultEntity extends IHasVaultAddress = never> = Partial<Record<Address, SubAccount<TVaultEntity>>>;
@@ -191,7 +191,7 @@ export declare class Account<TVaultEntity extends IHasVaultAddress = never> impl
191
191
  isLockdownMode: boolean;
192
192
  isPermitDisabledMode: boolean;
193
193
  subAccounts: SubAccountsMap<TVaultEntity>;
194
- /** Per-user unclaimed rewards from Merkl/Brevis. Populated by `populateUserRewards`. */
194
+ /** Per-user unclaimed rewards from Merkl, Brevis/Incentra, and Fuul. Populated by `populateUserRewards`. */
195
195
  userRewards?: UserReward[];
196
196
  populated: AccountPopulated;
197
197
  constructor(account: IAccount<TVaultEntity>);
@@ -243,10 +243,10 @@ export declare class Account<TVaultEntity extends IHasVaultAddress = never> impl
243
243
  * Mutates in place and returns diagnostics.
244
244
  */
245
245
  populateMarketPrices(priceService: IPriceService): Promise<DataIssue[]>;
246
- /** Total unclaimed rewards value in USD (18 dec). `undefined` if no user rewards populated. */
247
- get totalRewardsValueUsd(): bigint | undefined;
246
+ /** Total unclaimed rewards value in USD. `undefined` if no user rewards populated. */
247
+ get totalRewardsValueUsd(): number | undefined;
248
248
  /**
249
- * Fetches per-user unclaimed rewards from Merkl and Brevis providers.
249
+ * Fetches per-user unclaimed rewards from Merkl, Brevis/Incentra, and Fuul providers.
250
250
  * Populates `this.userRewards`.
251
251
  */
252
252
  populateUserRewards(rewardsService: IRewardsService): Promise<DataIssue[]>;
@@ -256,4 +256,5 @@ export declare class Account<TVaultEntity extends IHasVaultAddress = never> impl
256
256
  */
257
257
  updateSubAccounts(...subAccounts: SubAccount<TVaultEntity>[]): void;
258
258
  }
259
+ export type AddressOrAccount = Address | Account<IHasVaultAddress>;
259
260
  //# sourceMappingURL=Account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../../src/entities/Account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../../src/entities/Account.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { getAddress, isAddressEqual } from "viem";
2
2
  import { getFreeSubAccounts as getFreeSubAccountAddresses, getSubAccountAddress, selectBorrowCompatibleSubAccount, } from "../utils/subAccounts.js";
3
- import { mapDataIssuePaths, withPathPrefix, } from "../utils/entityDiagnostics.js";
3
+ import { accountDiagnosticOwner, accountPositionCollateralDiagnosticOwner, accountPositionDiagnosticOwner, dataIssueLocation, mapDataIssueLocations, replaceDataIssueLocations, withPathPrefix, } from "../utils/entityDiagnostics.js";
4
4
  import { computeHealthFactor, computeCurrentLTV, computeLiquidationLTV, computeMultiplier, computeSubAccountTotalCollateralValueUsd, computeSubAccountLiabilityValueUsd, computeSubAccountNetValueUsd, computeSubAccountRoe, computeCollateralLiquidationPrices, computeBorrowLiquidationPrice, } from "../utils/accountComputations.js";
5
+ import { scaledBigIntToNumber, tokenAmountToUsdValue, wadToNumber, } from "../utils/normalization.js";
5
6
  /** AccountLiquidity with computed getters for liquidation prices. */
6
7
  export class AccountLiquidity {
7
8
  vaultAddress;
@@ -33,7 +34,6 @@ export class AccountLiquidity {
33
34
  return computeBorrowLiquidationPrice(this);
34
35
  }
35
36
  }
36
- const WAD = 10n ** 18n;
37
37
  export class AccountPosition {
38
38
  account;
39
39
  vaultAddress;
@@ -77,7 +77,10 @@ export class AccountPosition {
77
77
  const multiplier = this.liquidity?.borrowLiquidationPrice;
78
78
  if (multiplier == null)
79
79
  return undefined;
80
- return (priceUsd * multiplier) / WAD;
80
+ const multiplierDecimal = wadToNumber(multiplier);
81
+ return multiplierDecimal === undefined
82
+ ? undefined
83
+ : priceUsd * multiplierDecimal;
81
84
  }
82
85
  get collateralLiquidationPricesUsd() {
83
86
  const liquidity = this.liquidity;
@@ -94,7 +97,10 @@ export class AccountPosition {
94
97
  const priceUsd = collateral.marketPriceUsd ?? collateral.vault?.marketPriceUsd;
95
98
  if (priceUsd == null)
96
99
  continue;
97
- result[collateral.address] = (priceUsd * multiplier) / WAD;
100
+ const multiplierDecimal = wadToNumber(multiplier);
101
+ if (multiplierDecimal == null)
102
+ continue;
103
+ result[collateral.address] = priceUsd * multiplierDecimal;
98
104
  }
99
105
  return Object.keys(result).length > 0 ? result : undefined;
100
106
  }
@@ -130,23 +136,23 @@ export class SubAccount {
130
136
  get liquidationLTV() {
131
137
  return computeLiquidationLTV(this);
132
138
  }
133
- /** Leverage multiplier (WAD, 1e18 = 1x). Requires USD data. */
139
+ /** Leverage multiplier (1 = 1x). Requires USD data. */
134
140
  get multiplier() {
135
141
  return computeMultiplier(this);
136
142
  }
137
- /** Total collateral value in USD (18 dec). Requires USD data. */
143
+ /** Total collateral value in USD. Requires USD data. */
138
144
  get totalCollateralValueUsd() {
139
145
  return computeSubAccountTotalCollateralValueUsd(this);
140
146
  }
141
- /** Liability value in USD (18 dec). Requires USD data. */
147
+ /** Liability value in USD. Requires USD data. */
142
148
  get liabilityValueUsd() {
143
149
  return computeSubAccountLiabilityValueUsd(this);
144
150
  }
145
- /** Net value in USD (18 dec): sum(supplied) - sum(borrowed). */
151
+ /** Net value in USD: sum(supplied) - sum(borrowed). */
146
152
  get netValueUsd() {
147
153
  return computeSubAccountNetValueUsd(this);
148
154
  }
149
- /** ROE breakdown (decimal fractions, 0.05 = 5%). Requires populated vaults + market prices. */
155
+ /** ROE breakdown (percentage points, 5 = 5%). Requires populated vaults + market prices. */
150
156
  get roe() {
151
157
  return computeSubAccountRoe(this);
152
158
  }
@@ -157,7 +163,7 @@ export class Account {
157
163
  isLockdownMode;
158
164
  isPermitDisabledMode;
159
165
  subAccounts;
160
- /** Per-user unclaimed rewards from Merkl/Brevis. Populated by `populateUserRewards`. */
166
+ /** Per-user unclaimed rewards from Merkl, Brevis/Incentra, and Fuul. Populated by `populateUserRewards`. */
161
167
  userRewards;
162
168
  populated;
163
169
  constructor(account) {
@@ -334,36 +340,33 @@ export class Account {
334
340
  if (!this.populated.vaults) {
335
341
  throw new Error("populateMarketPrices requires populateVaults to be called first.");
336
342
  }
337
- const ONE_18 = 10n ** 18n;
338
343
  const errors = [];
339
344
  // Collect unique vault entities and where they are referenced in the account tree.
340
345
  const vaultEntities = new Map();
341
- const vaultPaths = new Map();
342
- const addVaultPath = (vaultAddress, path) => {
346
+ const vaultLocations = new Map();
347
+ const addVaultLocation = (vaultAddress, location) => {
343
348
  const key = getAddress(vaultAddress);
344
- const paths = vaultPaths.get(key) ?? new Set();
345
- paths.add(path);
346
- vaultPaths.set(key, paths);
349
+ const locations = vaultLocations.get(key) ?? [];
350
+ locations.push(location);
351
+ vaultLocations.set(key, locations);
347
352
  };
348
- for (const [subAccountAddress, sa] of Object.entries(this.subAccounts ?? {})) {
353
+ for (const sa of Object.values(this.subAccounts ?? {})) {
349
354
  if (!sa)
350
355
  continue;
351
- const subAccountPath = `$.subAccounts['${subAccountAddress}']`;
352
- for (const [positionIndex, p] of sa.positions.entries()) {
353
- const positionPath = `${subAccountPath}.positions[${positionIndex}]`;
356
+ for (const p of sa.positions) {
354
357
  if (p.vault) {
355
358
  vaultEntities.set(getAddress(p.vault.address), p.vault);
356
- addVaultPath(p.vault.address, `${positionPath}.vault`);
359
+ addVaultLocation(p.vault.address, dataIssueLocation(accountPositionDiagnosticOwner(this.chainId, p.account, p.vaultAddress), "$.vault"));
357
360
  }
358
361
  if (p.liquidity?.vault) {
359
362
  vaultEntities.set(getAddress(p.liquidity.vault.address), p.liquidity.vault);
360
- addVaultPath(p.liquidity.vault.address, `${positionPath}.liquidity.vault`);
363
+ addVaultLocation(p.liquidity.vault.address, dataIssueLocation(accountPositionDiagnosticOwner(this.chainId, p.account, p.vaultAddress), "$.liquidity.vault"));
361
364
  }
362
365
  if (p.liquidity) {
363
- for (const [collateralIndex, c,] of p.liquidity.collaterals.entries()) {
366
+ for (const c of p.liquidity.collaterals) {
364
367
  if (c.vault) {
365
368
  vaultEntities.set(getAddress(c.vault.address), c.vault);
366
- addVaultPath(c.vault.address, `${positionPath}.liquidity.collaterals[${collateralIndex}].vault`);
369
+ addVaultLocation(c.vault.address, dataIssueLocation(accountPositionCollateralDiagnosticOwner(this.chainId, p.account, p.vaultAddress, c.address), "$.vault"));
367
370
  }
368
371
  }
369
372
  }
@@ -372,49 +375,60 @@ export class Account {
372
375
  // Call populateMarketPrices on each unique vault entity (duck-typed)
373
376
  await Promise.all(Array.from(vaultEntities.entries()).map(async ([vaultAddress, vault]) => {
374
377
  if (typeof vault.populateMarketPrices === "function") {
375
- const paths = Array.from(vaultPaths.get(vaultAddress) ?? ["$"]);
378
+ const locations = vaultLocations.get(vaultAddress) ?? [];
376
379
  try {
377
380
  const vaultErrors = (await vault.populateMarketPrices(priceService));
378
381
  if (vaultErrors?.length) {
379
382
  for (const issue of vaultErrors) {
380
- for (const pathPrefix of paths) {
381
- errors.push({
382
- ...mapDataIssuePaths(issue, (path) => withPathPrefix(path, pathPrefix)),
383
- });
383
+ for (const locationPrefix of locations) {
384
+ errors.push(mapDataIssueLocations(issue, (location) => ({
385
+ ...locationPrefix,
386
+ path: withPathPrefix(location.path, locationPrefix.path),
387
+ })));
388
+ if ((locationPrefix.owner.kind === "accountPosition" ||
389
+ locationPrefix.owner.kind ===
390
+ "accountPositionCollateral") &&
391
+ issue.locations.some((location) => location.path === "$.marketPriceUsd")) {
392
+ errors.push({
393
+ ...issue,
394
+ locations: [
395
+ dataIssueLocation(locationPrefix.owner, "$.marketPriceUsd"),
396
+ ],
397
+ });
398
+ }
384
399
  }
385
400
  }
386
401
  }
387
402
  }
388
403
  catch (error) {
389
- for (const pathPrefix of paths) {
390
- errors.push({
391
- code: "SOURCE_UNAVAILABLE",
392
- severity: "error",
393
- message: "Failed to populate market prices for nested vault entity.",
394
- paths: [pathPrefix],
395
- entityId: vaultAddress,
396
- source: "priceService",
397
- originalValue: error instanceof Error ? error.message : String(error),
398
- });
399
- }
404
+ errors.push({
405
+ code: "SOURCE_UNAVAILABLE",
406
+ severity: "error",
407
+ message: "Failed to populate market prices for nested vault entity.",
408
+ locations: locations.length
409
+ ? locations
410
+ : [
411
+ dataIssueLocation(accountPositionDiagnosticOwner(this.chainId, this.owner, vaultAddress)),
412
+ ],
413
+ source: "priceService",
414
+ originalValue: error instanceof Error ? error.message : String(error),
415
+ });
400
416
  }
401
417
  }
402
418
  }));
403
419
  // Populate position USD values
404
- for (const [subAccountAddress, sa] of Object.entries(this.subAccounts ?? {})) {
420
+ for (const sa of Object.values(this.subAccounts ?? {})) {
405
421
  if (!sa)
406
422
  continue;
407
- const subAccountPath = `$.subAccounts['${subAccountAddress}']`;
408
- for (const [positionIndex, p] of sa.positions.entries()) {
409
- const positionPath = `${subAccountPath}.positions[${positionIndex}]`;
423
+ for (const p of sa.positions) {
410
424
  const vault = p.vault;
411
425
  if (vault?.marketPriceUsd != null && vault?.asset?.decimals != null) {
412
426
  const price = vault.marketPriceUsd;
413
- const decimals = BigInt(vault.asset.decimals);
427
+ const decimals = vault.asset.decimals;
414
428
  p.marketPriceUsd = price;
415
- p.suppliedValueUsd = (p.assets * price) / 10n ** decimals;
429
+ p.suppliedValueUsd = tokenAmountToUsdValue(p.assets, decimals, price);
416
430
  if (p.borrowed > 0n) {
417
- p.borrowedValueUsd = (p.borrowed * price) / 10n ** decimals;
431
+ p.borrowedValueUsd = tokenAmountToUsdValue(p.borrowed, decimals, price);
418
432
  }
419
433
  }
420
434
  // Populate liquidity USD values
@@ -422,17 +436,20 @@ export class Account {
422
436
  const liqVault = p.liquidity.vault;
423
437
  let uoaRate;
424
438
  try {
425
- const priced = await priceService.fetchUnitOfAccountUsdRateWithDiagnostics(liqVault, `${positionPath}.liquidity`);
439
+ const priced = await priceService.fetchUnitOfAccountUsdRateWithDiagnostics(liqVault, "$.unitOfAccountUsdRate");
426
440
  uoaRate = priced.result;
427
- errors.push(...priced.errors);
441
+ errors.push(...priced.errors.map((issue) => replaceDataIssueLocations(issue, [
442
+ dataIssueLocation(accountPositionDiagnosticOwner(this.chainId, p.account, p.vaultAddress), "$.liquidity.unitOfAccountUsdRate"),
443
+ ])));
428
444
  }
429
445
  catch (error) {
430
446
  errors.push({
431
447
  code: "SOURCE_UNAVAILABLE",
432
448
  severity: "error",
433
449
  message: "Failed to fetch unit-of-account USD rate for liquidity.",
434
- paths: [`${positionPath}.liquidity.vault`],
435
- entityId: liqVault.address ?? p.vaultAddress,
450
+ locations: [
451
+ dataIssueLocation(accountPositionDiagnosticOwner(this.chainId, p.account, p.vaultAddress), "$.liquidity.vault"),
452
+ ],
436
453
  source: "priceService",
437
454
  originalValue: error instanceof Error ? error.message : String(error),
438
455
  });
@@ -440,11 +457,13 @@ export class Account {
440
457
  }
441
458
  if (uoaRate != null) {
442
459
  p.liquidity.liabilityValueUsd =
443
- (p.liquidity.liabilityValue.oracleMid * uoaRate) / ONE_18;
460
+ scaledBigIntToNumber(p.liquidity.liabilityValue.oracleMid, 18) *
461
+ uoaRate;
444
462
  p.liquidity.totalCollateralValueUsd =
445
- (p.liquidity.totalCollateralValue.oracleMid * uoaRate) / ONE_18;
463
+ scaledBigIntToNumber(p.liquidity.totalCollateralValue.oracleMid, 18) * uoaRate;
446
464
  for (const c of p.liquidity.collaterals) {
447
- c.valueUsd = (c.value.oracleMid * uoaRate) / ONE_18;
465
+ c.valueUsd =
466
+ scaledBigIntToNumber(c.value.oracleMid, 18) * uoaRate;
448
467
  const collVault = c.vault;
449
468
  if (collVault?.marketPriceUsd != null) {
450
469
  c.marketPriceUsd = collVault.marketPriceUsd;
@@ -457,14 +476,11 @@ export class Account {
457
476
  this.populated.marketPrices = true;
458
477
  return errors;
459
478
  }
460
- /** Total unclaimed rewards value in USD (18 dec). `undefined` if no user rewards populated. */
479
+ /** Total unclaimed rewards value in USD. `undefined` if no user rewards populated. */
461
480
  get totalRewardsValueUsd() {
462
481
  if (!this.userRewards || this.userRewards.length === 0)
463
482
  return undefined;
464
- const PRICE_PRECISION = 8;
465
- const PRICE_SCALE = 10 ** PRICE_PRECISION;
466
- const WAD_SCALER = 10n ** BigInt(18 - PRICE_PRECISION); // 10^10
467
- let total = 0n;
483
+ let total = 0;
468
484
  for (const reward of this.userRewards) {
469
485
  const tokenPrice = Number(reward.tokenPrice);
470
486
  const tokenDecimals = Number(reward.token.decimals);
@@ -475,15 +491,12 @@ export class Account {
475
491
  reward.unclaimed === "0")
476
492
  continue;
477
493
  const unclaimed = BigInt(reward.unclaimed);
478
- const priceScaled = BigInt(Math.round(tokenPrice * PRICE_SCALE));
479
- const tokenDecimalsBigInt = BigInt(tokenDecimals);
480
- total +=
481
- (unclaimed * priceScaled * WAD_SCALER) / 10n ** tokenDecimalsBigInt;
494
+ total += scaledBigIntToNumber(unclaimed, tokenDecimals) * tokenPrice;
482
495
  }
483
496
  return total;
484
497
  }
485
498
  /**
486
- * Fetches per-user unclaimed rewards from Merkl and Brevis providers.
499
+ * Fetches per-user unclaimed rewards from Merkl, Brevis/Incentra, and Fuul providers.
487
500
  * Populates `this.userRewards`.
488
501
  */
489
502
  async populateUserRewards(rewardsService) {
@@ -500,8 +513,9 @@ export class Account {
500
513
  code: "SOURCE_UNAVAILABLE",
501
514
  severity: "error",
502
515
  message: "Failed to populate user rewards.",
503
- paths: ["$.userRewards"],
504
- entityId: this.owner,
516
+ locations: [
517
+ dataIssueLocation(accountDiagnosticOwner(this.chainId, this.owner), "$.userRewards"),
518
+ ],
505
519
  source: "rewardsService",
506
520
  originalValue: error instanceof Error ? error.message : String(error),
507
521
  },