@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.
- package/README.md +24 -25
- package/dist/src/entities/Account.d.ts +48 -47
- package/dist/src/entities/Account.d.ts.map +1 -1
- package/dist/src/entities/Account.js +85 -64
- package/dist/src/entities/Account.js.map +1 -1
- package/dist/src/entities/ERC4626Vault.d.ts +6 -5
- package/dist/src/entities/ERC4626Vault.d.ts.map +1 -1
- package/dist/src/entities/ERC4626Vault.js +13 -6
- package/dist/src/entities/ERC4626Vault.js.map +1 -1
- package/dist/src/entities/EVault.d.ts +30 -15
- package/dist/src/entities/EVault.d.ts.map +1 -1
- package/dist/src/entities/EVault.js +66 -14
- package/dist/src/entities/EVault.js.map +1 -1
- package/dist/src/entities/EulerEarn.d.ts +3 -0
- package/dist/src/entities/EulerEarn.d.ts.map +1 -1
- package/dist/src/entities/EulerEarn.js +12 -3
- package/dist/src/entities/EulerEarn.js.map +1 -1
- package/dist/src/entities/EulerLabels.d.ts +74 -0
- package/dist/src/entities/EulerLabels.d.ts.map +1 -1
- package/dist/src/entities/Portfolio.d.ts +38 -17
- package/dist/src/entities/Portfolio.d.ts.map +1 -1
- package/dist/src/entities/Portfolio.js +71 -23
- package/dist/src/entities/Portfolio.js.map +1 -1
- package/dist/src/entities/Wallet.d.ts +1 -0
- package/dist/src/entities/Wallet.d.ts.map +1 -1
- package/dist/src/entities/Wallet.js +2 -2
- package/dist/src/entities/Wallet.js.map +1 -1
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/plugins/keyring/keyringPlugin.d.ts +1 -1
- package/dist/src/plugins/keyring/keyringPlugin.d.ts.map +1 -1
- package/dist/src/plugins/keyring/keyringPlugin.js +70 -12
- package/dist/src/plugins/keyring/keyringPlugin.js.map +1 -1
- package/dist/src/plugins/pyth/pythPlugin.d.ts.map +1 -1
- package/dist/src/plugins/pyth/pythPlugin.js +132 -11
- package/dist/src/plugins/pyth/pythPlugin.js.map +1 -1
- package/dist/src/plugins/types.d.ts +4 -7
- package/dist/src/plugins/types.d.ts.map +1 -1
- package/dist/src/plugins/types.js.map +1 -1
- package/dist/src/sdk/buildSDK.d.ts +11 -7
- package/dist/src/sdk/buildSDK.d.ts.map +1 -1
- package/dist/src/sdk/buildSDK.js +369 -116
- package/dist/src/sdk/buildSDK.js.map +1 -1
- package/dist/src/sdk/config.d.ts +74 -0
- package/dist/src/sdk/config.d.ts.map +1 -0
- package/dist/src/sdk/config.js +187 -0
- package/dist/src/sdk/config.js.map +1 -0
- package/dist/src/sdk/defaultConfig.d.ts +5 -2
- package/dist/src/sdk/defaultConfig.d.ts.map +1 -1
- package/dist/src/sdk/defaultConfig.js +21 -18
- package/dist/src/sdk/defaultConfig.js.map +1 -1
- package/dist/src/sdk/sdk.d.ts +6 -8
- package/dist/src/sdk/sdk.d.ts.map +1 -1
- package/dist/src/sdk/sdk.js +2 -6
- package/dist/src/sdk/sdk.js.map +1 -1
- package/dist/src/services/accountService/accountService.d.ts.map +1 -1
- package/dist/src/services/accountService/accountService.js +10 -7
- package/dist/src/services/accountService/accountService.js.map +1 -1
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.d.ts +2 -2
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.d.ts.map +1 -1
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.js +22 -17
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.js.map +1 -1
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.d.ts +1 -1
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.d.ts.map +1 -1
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.js +16 -17
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.js.map +1 -1
- package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.d.ts +7 -1
- package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.d.ts.map +1 -1
- package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.js +141 -54
- package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.js.map +1 -1
- package/dist/src/services/deploymentService/deploymentService.d.ts +1 -0
- package/dist/src/services/deploymentService/deploymentService.d.ts.map +1 -1
- package/dist/src/services/deploymentService/deploymentService.js.map +1 -1
- package/dist/src/services/eulerLabelsService/eulerLabelsService.d.ts +18 -1
- package/dist/src/services/eulerLabelsService/eulerLabelsService.d.ts.map +1 -1
- package/dist/src/services/eulerLabelsService/eulerLabelsService.js +373 -30
- package/dist/src/services/eulerLabelsService/eulerLabelsService.js.map +1 -1
- package/dist/src/services/executionService/encode.d.ts +30 -0
- package/dist/src/services/executionService/encode.d.ts.map +1 -0
- package/dist/src/services/executionService/encode.js +841 -0
- package/dist/src/services/executionService/encode.js.map +1 -0
- package/dist/src/services/executionService/execute.d.ts +65 -0
- package/dist/src/services/executionService/execute.d.ts.map +1 -0
- package/dist/src/services/executionService/execute.js +185 -0
- package/dist/src/services/executionService/execute.js.map +1 -0
- package/dist/src/services/executionService/executionService.d.ts +169 -37
- package/dist/src/services/executionService/executionService.d.ts.map +1 -1
- package/dist/src/services/executionService/executionService.js +510 -893
- package/dist/src/services/executionService/executionService.js.map +1 -1
- package/dist/src/services/executionService/executionServiceTypes.d.ts +93 -9
- package/dist/src/services/executionService/executionServiceTypes.d.ts.map +1 -1
- package/dist/src/services/executionService/executionServiceTypes.js +6 -0
- package/dist/src/services/executionService/executionServiceTypes.js.map +1 -1
- package/dist/src/services/executionService/index.d.ts +5 -2
- package/dist/src/services/executionService/index.d.ts.map +1 -1
- package/dist/src/services/executionService/index.js +3 -1
- package/dist/src/services/executionService/index.js.map +1 -1
- package/dist/src/services/{simulationService/simulationService.d.ts → executionService/simulate.d.ts} +26 -40
- package/dist/src/services/executionService/simulate.d.ts.map +1 -0
- package/dist/src/services/executionService/simulate.js +532 -0
- package/dist/src/services/executionService/simulate.js.map +1 -0
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.d.ts +1 -1
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.d.ts.map +1 -1
- package/dist/src/services/oracleAdapterService/oracleAdapterService.d.ts +5 -0
- package/dist/src/services/oracleAdapterService/oracleAdapterService.d.ts.map +1 -1
- package/dist/src/services/oracleAdapterService/oracleAdapterService.js +38 -11
- package/dist/src/services/oracleAdapterService/oracleAdapterService.js.map +1 -1
- package/dist/src/services/priceService/backendClient.d.ts +7 -13
- package/dist/src/services/priceService/backendClient.d.ts.map +1 -1
- package/dist/src/services/priceService/backendClient.js +7 -14
- package/dist/src/services/priceService/backendClient.js.map +1 -1
- package/dist/src/services/priceService/index.d.ts +2 -2
- package/dist/src/services/priceService/index.d.ts.map +1 -1
- package/dist/src/services/priceService/index.js +1 -1
- package/dist/src/services/priceService/index.js.map +1 -1
- package/dist/src/services/priceService/priceService.d.ts +19 -17
- package/dist/src/services/priceService/priceService.d.ts.map +1 -1
- package/dist/src/services/priceService/priceService.js +53 -76
- package/dist/src/services/priceService/priceService.js.map +1 -1
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.d.ts.map +1 -1
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js +26 -13
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js.map +1 -1
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.d.ts +10 -10
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.d.ts.map +1 -1
- package/dist/src/services/rewardsService/rewardsServiceTypes.d.ts +1 -1
- package/dist/src/services/rewardsService/rewardsServiceTypes.d.ts.map +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.d.ts +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.d.ts.map +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js +6 -13
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js.map +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.d.ts +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.d.ts.map +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.js +69 -51
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.js.map +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.d.ts +6 -2
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.d.ts.map +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js +70 -21
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js.map +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.d.ts +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.d.ts.map +1 -1
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.js +106 -111
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.js.map +1 -1
- package/dist/src/services/vaults/eVaultService/eVaultService.d.ts +4 -4
- package/dist/src/services/vaults/eVaultService/eVaultService.d.ts.map +1 -1
- package/dist/src/services/vaults/eVaultService/eVaultService.js +56 -57
- package/dist/src/services/vaults/eVaultService/eVaultService.js.map +1 -1
- package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.d.ts +1 -1
- package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.d.ts.map +1 -1
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.d.ts +1 -1
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.d.ts.map +1 -1
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.js +22 -21
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.js.map +1 -1
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.d.ts.map +1 -1
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.js +27 -32
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.js.map +1 -1
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.d.ts +1 -1
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.d.ts.map +1 -1
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.js +113 -72
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.js.map +1 -1
- package/dist/src/services/vaults/eulerEarnService/eulerEarnService.d.ts +5 -5
- package/dist/src/services/vaults/eulerEarnService/eulerEarnService.d.ts.map +1 -1
- package/dist/src/services/vaults/eulerEarnService/eulerEarnService.js +30 -28
- package/dist/src/services/vaults/eulerEarnService/eulerEarnService.js.map +1 -1
- package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.d.ts +1 -1
- package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.d.ts.map +1 -1
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.d.ts +1 -1
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.d.ts.map +1 -1
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.js +10 -7
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.js.map +1 -1
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.d.ts.map +1 -1
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.js +6 -8
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.js.map +1 -1
- package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.d.ts +2 -2
- package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.d.ts.map +1 -1
- package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.js +13 -18
- package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.js.map +1 -1
- package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.d.ts +1 -1
- package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.d.ts.map +1 -1
- package/dist/src/services/vaults/vaultMetaService/vaultMetaService.d.ts +3 -3
- package/dist/src/services/vaults/vaultMetaService/vaultMetaService.d.ts.map +1 -1
- package/dist/src/services/vaults/vaultMetaService/vaultMetaService.js +31 -32
- package/dist/src/services/vaults/vaultMetaService/vaultMetaService.js.map +1 -1
- package/dist/src/services/walletService/adapters/walletOnchainAdapter.d.ts +5 -1
- package/dist/src/services/walletService/adapters/walletOnchainAdapter.d.ts.map +1 -1
- package/dist/src/services/walletService/adapters/walletOnchainAdapter.js +181 -40
- package/dist/src/services/walletService/adapters/walletOnchainAdapter.js.map +1 -1
- package/dist/src/services/walletService/walletService.d.ts +1 -1
- package/dist/src/services/walletService/walletService.d.ts.map +1 -1
- package/dist/src/services/walletService/walletService.js +4 -3
- package/dist/src/services/walletService/walletService.js.map +1 -1
- package/dist/src/utils/accountComputations.d.ts +42 -12
- package/dist/src/utils/accountComputations.d.ts.map +1 -1
- package/dist/src/utils/accountComputations.js +142 -40
- package/dist/src/utils/accountComputations.js.map +1 -1
- package/dist/src/utils/accountPositionClassification.d.ts +15 -0
- package/dist/src/utils/accountPositionClassification.d.ts.map +1 -0
- package/dist/src/utils/accountPositionClassification.js +27 -0
- package/dist/src/utils/accountPositionClassification.js.map +1 -0
- package/dist/src/utils/buildQuery.d.ts +1 -0
- package/dist/src/utils/buildQuery.d.ts.map +1 -1
- package/dist/src/utils/buildQuery.js +1 -1
- package/dist/src/utils/buildQuery.js.map +1 -1
- package/dist/src/utils/entityDiagnostics.d.ts +75 -12
- package/dist/src/utils/entityDiagnostics.d.ts.map +1 -1
- package/dist/src/utils/entityDiagnostics.js +85 -19
- package/dist/src/utils/entityDiagnostics.js.map +1 -1
- package/dist/src/utils/eulerLabels.d.ts +34 -0
- package/dist/src/utils/eulerLabels.d.ts.map +1 -0
- package/dist/src/utils/eulerLabels.js +156 -0
- package/dist/src/utils/eulerLabels.js.map +1 -0
- package/dist/src/utils/healthCheckSets.d.ts +14 -0
- package/dist/src/utils/healthCheckSets.d.ts.map +1 -0
- package/dist/src/utils/healthCheckSets.js +174 -0
- package/dist/src/utils/healthCheckSets.js.map +1 -0
- package/dist/src/utils/normalization.d.ts +10 -4
- package/dist/src/utils/normalization.d.ts.map +1 -1
- package/dist/src/utils/normalization.js +38 -11
- package/dist/src/utils/normalization.js.map +1 -1
- package/dist/src/utils/oracle.d.ts.map +1 -1
- package/dist/src/utils/oracle.js +12 -1
- package/dist/src/utils/oracle.js.map +1 -1
- package/dist/src/utils/parsing.d.ts +2 -2
- package/dist/src/utils/parsing.d.ts.map +1 -1
- package/dist/src/utils/parsing.js +12 -22
- package/dist/src/utils/parsing.js.map +1 -1
- package/package.json +2 -2
- package/dist/src/services/simulationService/index.d.ts +0 -3
- package/dist/src/services/simulationService/index.d.ts.map +0 -1
- package/dist/src/services/simulationService/index.js +0 -2
- package/dist/src/services/simulationService/index.js.map +0 -1
- package/dist/src/services/simulationService/simulationService.d.ts.map +0 -1
- package/dist/src/services/simulationService/simulationService.js +0 -533
- package/dist/src/services/simulationService/simulationService.js.map +0 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Pure computation functions for sub-account metrics and leverage utilities.
|
|
3
3
|
* All functions return `undefined` when prerequisites are missing.
|
|
4
4
|
*/
|
|
5
|
+
import { getAddress, isAddressEqual } from "viem";
|
|
5
6
|
const WAD = 10n ** 18n;
|
|
6
7
|
// ---------------------------------------------------------------------------
|
|
7
8
|
// Sub-account risk metrics (oracle-denominated, not USD)
|
|
@@ -49,30 +50,32 @@ export function computeLiquidationLTV(subAccount) {
|
|
|
49
50
|
// Sub-account USD metrics (require populated market prices)
|
|
50
51
|
// ---------------------------------------------------------------------------
|
|
51
52
|
/**
|
|
52
|
-
* Leverage multiplier for a sub-account (
|
|
53
|
-
* `
|
|
53
|
+
* Leverage multiplier for a sub-account (1 = 1x).
|
|
54
|
+
* `suppliedCollateralValueUsd / (suppliedCollateralValueUsd - borrowedValueUsd)`.
|
|
54
55
|
*/
|
|
55
56
|
export function computeMultiplier(subAccount) {
|
|
56
|
-
const
|
|
57
|
-
if (!
|
|
57
|
+
const borrow = findBorrowPosition(subAccount);
|
|
58
|
+
if (!borrow)
|
|
58
59
|
return undefined;
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
return computeCollateralMultiplier(sumPositionUsd(findCollateralPositionsForBorrow(subAccount, borrow), "suppliedValueUsd"), borrow.borrowedValueUsd);
|
|
61
|
+
}
|
|
62
|
+
export function computeCollateralMultiplier(suppliedValueUsd, borrowedValueUsd) {
|
|
63
|
+
if (suppliedValueUsd == null || borrowedValueUsd == null)
|
|
61
64
|
return undefined;
|
|
62
|
-
const equity =
|
|
63
|
-
if (equity <=
|
|
65
|
+
const equity = suppliedValueUsd - borrowedValueUsd;
|
|
66
|
+
if (equity <= 0)
|
|
64
67
|
return undefined;
|
|
65
|
-
return
|
|
68
|
+
return suppliedValueUsd / equity;
|
|
66
69
|
}
|
|
67
70
|
/**
|
|
68
|
-
* Total collateral value in USD for a sub-account
|
|
71
|
+
* Total collateral value in USD for a sub-account.
|
|
69
72
|
* Sourced from sub-account liquidity and populated by `populateMarketPrices`.
|
|
70
73
|
*/
|
|
71
74
|
export function computeSubAccountTotalCollateralValueUsd(subAccount) {
|
|
72
75
|
return findLiquidity(subAccount)?.totalCollateralValueUsd;
|
|
73
76
|
}
|
|
74
77
|
/**
|
|
75
|
-
* Liability value in USD for a sub-account
|
|
78
|
+
* Liability value in USD for a sub-account.
|
|
76
79
|
* Sourced from sub-account liquidity and populated by `populateMarketPrices`.
|
|
77
80
|
*/
|
|
78
81
|
export function computeSubAccountLiabilityValueUsd(subAccount) {
|
|
@@ -86,13 +89,13 @@ export function computeSubAccountNetValueUsd(subAccount) {
|
|
|
86
89
|
let borrowed;
|
|
87
90
|
for (const p of subAccount.positions) {
|
|
88
91
|
if (p.suppliedValueUsd != null)
|
|
89
|
-
supplied = (supplied ??
|
|
92
|
+
supplied = (supplied ?? 0) + p.suppliedValueUsd;
|
|
90
93
|
if (p.borrowedValueUsd != null)
|
|
91
|
-
borrowed = (borrowed ??
|
|
94
|
+
borrowed = (borrowed ?? 0) + p.borrowedValueUsd;
|
|
92
95
|
}
|
|
93
96
|
if (supplied == null)
|
|
94
97
|
return undefined;
|
|
95
|
-
return supplied - (borrowed ??
|
|
98
|
+
return supplied - (borrowed ?? 0);
|
|
96
99
|
}
|
|
97
100
|
// ---------------------------------------------------------------------------
|
|
98
101
|
// Liquidation price multipliers (oracle-denominated)
|
|
@@ -147,8 +150,8 @@ export function computeSubAccountRoe(subAccount) {
|
|
|
147
150
|
continue;
|
|
148
151
|
const intrinsicApyDecimal = getVaultIntrinsicApy(vault);
|
|
149
152
|
// Supply side
|
|
150
|
-
if (p.suppliedValueUsd != null && p.suppliedValueUsd >
|
|
151
|
-
const supplyUsd =
|
|
153
|
+
if (p.suppliedValueUsd != null && p.suppliedValueUsd > 0) {
|
|
154
|
+
const supplyUsd = p.suppliedValueUsd;
|
|
152
155
|
const supplyApy = getVaultSupplyApy(vault);
|
|
153
156
|
if (supplyApy != null) {
|
|
154
157
|
hasData = true;
|
|
@@ -159,8 +162,8 @@ export function computeSubAccountRoe(subAccount) {
|
|
|
159
162
|
}
|
|
160
163
|
}
|
|
161
164
|
// Borrow side
|
|
162
|
-
if (p.borrowedValueUsd != null && p.borrowedValueUsd >
|
|
163
|
-
const borrowUsd =
|
|
165
|
+
if (p.borrowedValueUsd != null && p.borrowedValueUsd > 0) {
|
|
166
|
+
const borrowUsd = p.borrowedValueUsd;
|
|
164
167
|
const borrowApy = getVaultBorrowApy(vault);
|
|
165
168
|
if (borrowApy != null) {
|
|
166
169
|
hasData = true;
|
|
@@ -242,6 +245,46 @@ export function computePositionsRoe(positions) {
|
|
|
242
245
|
return 0;
|
|
243
246
|
return totals.totalNetYield / totals.totalEquityUsd;
|
|
244
247
|
}
|
|
248
|
+
/**
|
|
249
|
+
* APY contribution breakdown across a pre-filtered set of positions, relative to supplied value.
|
|
250
|
+
*/
|
|
251
|
+
export function computePositionsNetApyBreakdown(positions) {
|
|
252
|
+
const totals = computePositionYieldTotals(positions);
|
|
253
|
+
if (!totals)
|
|
254
|
+
return undefined;
|
|
255
|
+
if (totals.totalSupplyUsd === 0)
|
|
256
|
+
return zeroYieldApyBreakdown();
|
|
257
|
+
return divideYieldTotals(totals, totals.totalSupplyUsd);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* ROE contribution breakdown across a pre-filtered set of positions, relative to net asset value.
|
|
261
|
+
*/
|
|
262
|
+
export function computePositionsRoeBreakdown(positions) {
|
|
263
|
+
const totals = computePositionYieldTotals(positions);
|
|
264
|
+
if (!totals)
|
|
265
|
+
return undefined;
|
|
266
|
+
if (totals.totalEquityUsd <= 0)
|
|
267
|
+
return zeroYieldApyBreakdown();
|
|
268
|
+
return divideYieldTotals(totals, totals.totalEquityUsd);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* APY breakdown for a single supplied vault position.
|
|
272
|
+
* Does not require USD values because a single supply-side APY is value-independent.
|
|
273
|
+
*/
|
|
274
|
+
export function computeSupplyApyBreakdown(vault) {
|
|
275
|
+
if (!vault)
|
|
276
|
+
return undefined;
|
|
277
|
+
const lending = getVaultSupplyApy(vault) ?? 0;
|
|
278
|
+
const intrinsicApy = getIntrinsicApyContribution(lending, getVaultIntrinsicApy(vault));
|
|
279
|
+
const rewards = getVaultRewardApr(vault, "LEND");
|
|
280
|
+
return {
|
|
281
|
+
lending,
|
|
282
|
+
borrowing: 0,
|
|
283
|
+
rewards,
|
|
284
|
+
intrinsicApy,
|
|
285
|
+
total: lending + rewards + intrinsicApy,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
245
288
|
// ---------------------------------------------------------------------------
|
|
246
289
|
// Yield computations (use `number` since APYs are percentages)
|
|
247
290
|
// ---------------------------------------------------------------------------
|
|
@@ -300,12 +343,28 @@ function findLiquidity(subAccount) {
|
|
|
300
343
|
}
|
|
301
344
|
return undefined;
|
|
302
345
|
}
|
|
303
|
-
function
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
346
|
+
function findBorrowPosition(subAccount) {
|
|
347
|
+
return subAccount.positions.find((position) => position.borrowed > 0n);
|
|
348
|
+
}
|
|
349
|
+
function findCollateralPositionsForBorrow(subAccount, borrow) {
|
|
350
|
+
const collateralAddresses = borrow.liquidity?.collaterals.map((collateral) => getAddress(collateral.address)) ??
|
|
351
|
+
subAccount.enabledCollaterals.map((collateral) => getAddress(collateral));
|
|
352
|
+
const collateralPositions = collateralAddresses.flatMap((collateralAddress) => {
|
|
353
|
+
const position = subAccount.positions.find((candidate) => isAddressEqual(candidate.vaultAddress, collateralAddress));
|
|
354
|
+
return position ? [position] : [];
|
|
355
|
+
});
|
|
356
|
+
return collateralPositions.length > 0
|
|
357
|
+
? collateralPositions
|
|
358
|
+
: subAccount.positions.filter((position) => position.isCollateral);
|
|
359
|
+
}
|
|
360
|
+
function sumPositionUsd(positions, field) {
|
|
361
|
+
let total;
|
|
362
|
+
for (const position of positions) {
|
|
363
|
+
if (position[field] != null) {
|
|
364
|
+
total = (total ?? 0) + position[field];
|
|
365
|
+
}
|
|
307
366
|
}
|
|
308
|
-
return
|
|
367
|
+
return total;
|
|
309
368
|
}
|
|
310
369
|
function computeAccountYieldTotals(account) {
|
|
311
370
|
function* positions() {
|
|
@@ -319,6 +378,10 @@ function computeAccountYieldTotals(account) {
|
|
|
319
378
|
}
|
|
320
379
|
function computePositionYieldTotals(positions) {
|
|
321
380
|
let totalNetYield = 0;
|
|
381
|
+
let totalLendingYield = 0;
|
|
382
|
+
let totalBorrowingYield = 0;
|
|
383
|
+
let totalRewardYield = 0;
|
|
384
|
+
let totalIntrinsicYield = 0;
|
|
322
385
|
let totalSupplyUsd = 0;
|
|
323
386
|
let totalBorrowUsd = 0;
|
|
324
387
|
let hasUsdData = false;
|
|
@@ -326,19 +389,29 @@ function computePositionYieldTotals(positions) {
|
|
|
326
389
|
const vault = position.vault;
|
|
327
390
|
if (!vault)
|
|
328
391
|
continue;
|
|
329
|
-
if (position.suppliedValueUsd != null && position.suppliedValueUsd >
|
|
330
|
-
const supplyUsd =
|
|
331
|
-
const
|
|
392
|
+
if (position.suppliedValueUsd != null && position.suppliedValueUsd > 0) {
|
|
393
|
+
const supplyUsd = position.suppliedValueUsd;
|
|
394
|
+
const baseSupplyApy = getVaultSupplyApy(vault) ?? 0;
|
|
395
|
+
const intrinsicSupplyApy = getIntrinsicApyContribution(baseSupplyApy, getVaultIntrinsicApy(vault));
|
|
396
|
+
const supplyApy = baseSupplyApy + intrinsicSupplyApy;
|
|
332
397
|
const supplyRewardApy = getVaultRewardApr(vault, "LEND");
|
|
333
398
|
totalNetYield += supplyUsd * (supplyApy + supplyRewardApy);
|
|
399
|
+
totalLendingYield += supplyUsd * baseSupplyApy;
|
|
400
|
+
totalRewardYield += supplyUsd * supplyRewardApy;
|
|
401
|
+
totalIntrinsicYield += supplyUsd * intrinsicSupplyApy;
|
|
334
402
|
totalSupplyUsd += supplyUsd;
|
|
335
403
|
hasUsdData = true;
|
|
336
404
|
}
|
|
337
|
-
if (position.borrowedValueUsd != null && position.borrowedValueUsd >
|
|
338
|
-
const borrowUsd =
|
|
339
|
-
const
|
|
405
|
+
if (position.borrowedValueUsd != null && position.borrowedValueUsd > 0) {
|
|
406
|
+
const borrowUsd = position.borrowedValueUsd;
|
|
407
|
+
const baseBorrowApy = getVaultBorrowApy(vault) ?? 0;
|
|
408
|
+
const intrinsicBorrowApy = getIntrinsicApyContribution(baseBorrowApy, getVaultIntrinsicApy(vault));
|
|
409
|
+
const borrowApy = baseBorrowApy + intrinsicBorrowApy;
|
|
340
410
|
const borrowRewardApy = getVaultRewardApr(vault, "BORROW");
|
|
341
411
|
totalNetYield -= borrowUsd * (borrowApy - borrowRewardApy);
|
|
412
|
+
totalBorrowingYield += borrowUsd * baseBorrowApy;
|
|
413
|
+
totalRewardYield += borrowUsd * borrowRewardApy;
|
|
414
|
+
totalIntrinsicYield -= borrowUsd * intrinsicBorrowApy;
|
|
342
415
|
totalBorrowUsd += borrowUsd;
|
|
343
416
|
hasUsdData = true;
|
|
344
417
|
}
|
|
@@ -347,18 +420,45 @@ function computePositionYieldTotals(positions) {
|
|
|
347
420
|
return undefined;
|
|
348
421
|
return {
|
|
349
422
|
totalNetYield,
|
|
423
|
+
totalLendingYield,
|
|
424
|
+
totalBorrowingYield,
|
|
425
|
+
totalRewardYield,
|
|
426
|
+
totalIntrinsicYield,
|
|
350
427
|
totalEquityUsd: totalSupplyUsd - totalBorrowUsd,
|
|
351
428
|
totalSupplyUsd,
|
|
352
429
|
};
|
|
353
430
|
}
|
|
354
|
-
|
|
431
|
+
function divideYieldTotals(totals, denominator) {
|
|
432
|
+
const lending = totals.totalLendingYield / denominator;
|
|
433
|
+
const borrowing = -totals.totalBorrowingYield / denominator;
|
|
434
|
+
const rewards = totals.totalRewardYield / denominator;
|
|
435
|
+
const intrinsicApy = totals.totalIntrinsicYield / denominator;
|
|
436
|
+
return {
|
|
437
|
+
lending,
|
|
438
|
+
borrowing,
|
|
439
|
+
rewards,
|
|
440
|
+
intrinsicApy,
|
|
441
|
+
total: totals.totalNetYield / denominator,
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
function zeroYieldApyBreakdown() {
|
|
445
|
+
return {
|
|
446
|
+
lending: 0,
|
|
447
|
+
borrowing: 0,
|
|
448
|
+
rewards: 0,
|
|
449
|
+
intrinsicApy: 0,
|
|
450
|
+
total: 0,
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
/** Duck-type supply APY from a vault entity (percentage points). */
|
|
355
454
|
function getVaultSupplyApy(vault) {
|
|
356
|
-
// EVault: interestRates.supplyAPY (string, decimal fraction via formatUnits(_, 27))
|
|
357
455
|
if (vault.interestRates?.supplyAPY != null) {
|
|
358
|
-
const val =
|
|
456
|
+
const val = typeof vault.interestRates.supplyAPY === "number"
|
|
457
|
+
? vault.interestRates.supplyAPY
|
|
458
|
+
: parseFloat(vault.interestRates.supplyAPY);
|
|
359
459
|
return Number.isFinite(val) ? val : undefined;
|
|
360
460
|
}
|
|
361
|
-
// EulerEarn: supplyApy1h (
|
|
461
|
+
// EulerEarn: supplyApy1h (percentage points)
|
|
362
462
|
if (typeof vault.supplyApy1h === "number") {
|
|
363
463
|
return Number.isFinite(vault.supplyApy1h) ? vault.supplyApy1h : undefined;
|
|
364
464
|
}
|
|
@@ -367,30 +467,32 @@ function getVaultSupplyApy(vault) {
|
|
|
367
467
|
/** Duck-type borrow APY from a vault entity (EVault only). */
|
|
368
468
|
function getVaultBorrowApy(vault) {
|
|
369
469
|
if (vault.interestRates?.borrowAPY != null) {
|
|
370
|
-
const val =
|
|
470
|
+
const val = typeof vault.interestRates.borrowAPY === "number"
|
|
471
|
+
? vault.interestRates.borrowAPY
|
|
472
|
+
: parseFloat(vault.interestRates.borrowAPY);
|
|
371
473
|
return Number.isFinite(val) ? val : undefined;
|
|
372
474
|
}
|
|
373
475
|
return undefined;
|
|
374
476
|
}
|
|
375
|
-
/** Intrinsic APY as
|
|
477
|
+
/** Intrinsic APY as percentage points from vault's populated intrinsicApy field. */
|
|
376
478
|
function getVaultIntrinsicApy(vault) {
|
|
377
479
|
if (vault.intrinsicApy?.apy != null &&
|
|
378
480
|
typeof vault.intrinsicApy.apy === "number") {
|
|
379
|
-
return vault.intrinsicApy.apy
|
|
481
|
+
return vault.intrinsicApy.apy;
|
|
380
482
|
}
|
|
381
483
|
return 0;
|
|
382
484
|
}
|
|
383
|
-
function
|
|
384
|
-
return
|
|
485
|
+
function getIntrinsicApyContribution(baseApy, intrinsicApy) {
|
|
486
|
+
return (1 + baseApy / 100) * intrinsicApy;
|
|
385
487
|
}
|
|
386
|
-
/** Sum reward APRs for a given action
|
|
488
|
+
/** Sum reward APRs for a given action as percentage points from vault campaigns. */
|
|
387
489
|
function getVaultRewardApr(vault, action) {
|
|
388
490
|
if (!vault.rewards?.campaigns)
|
|
389
491
|
return 0;
|
|
390
492
|
let total = 0;
|
|
391
493
|
for (const c of vault.rewards.campaigns) {
|
|
392
494
|
if (c.action === action && typeof c.apr === "number") {
|
|
393
|
-
total += c.apr;
|
|
495
|
+
total += c.apr * 100;
|
|
394
496
|
}
|
|
395
497
|
}
|
|
396
498
|
return total;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountComputations.js","sourceRoot":"","sources":["../../../src/utils/accountComputations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accountComputations.js","sourceRoot":"","sources":["../../../src/utils/accountComputations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Address } from "viem";
|
|
2
|
+
import type { AccountPosition, IHasVaultAddress, SubAccount } from "../entities/Account.js";
|
|
3
|
+
export type AccountPositionFilter<TVaultEntity extends IHasVaultAddress = IHasVaultAddress> = (position: AccountPosition<TVaultEntity>) => boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Resolve the active collateral positions backing a borrow position.
|
|
6
|
+
*
|
|
7
|
+
* This mirrors Portfolio's borrow/savings classification: prefer collateral
|
|
8
|
+
* addresses from account liquidity, then fall back to enabled collaterals when
|
|
9
|
+
* liquidity is unavailable. Only positions actually present on the sub-account
|
|
10
|
+
* are returned, so callers do not treat enabled-but-empty collateral slots as
|
|
11
|
+
* active savings/collateral.
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveBorrowCollateralPositions<TVaultEntity extends IHasVaultAddress>(subAccount: SubAccount<TVaultEntity>, borrow: AccountPosition<TVaultEntity>, positionFilter?: AccountPositionFilter<TVaultEntity>): AccountPosition<TVaultEntity>[];
|
|
14
|
+
export declare function resolveBorrowCollateralVaults<TVaultEntity extends IHasVaultAddress>(subAccount: SubAccount<TVaultEntity>, borrow: AccountPosition<TVaultEntity>): Address[];
|
|
15
|
+
//# sourceMappingURL=accountPositionClassification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountPositionClassification.d.ts","sourceRoot":"","sources":["../../../src/utils/accountPositionClassification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA8B,MAAM,MAAM,CAAC;AAChE,OAAO,KAAK,EACX,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,qBAAqB,CAChC,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,IACrD,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC;AAEzD;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC/C,YAAY,SAAS,gBAAgB,EAErC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EACpC,MAAM,EAAE,eAAe,CAAC,YAAY,CAAC,EACrC,cAAc,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,GAClD,eAAe,CAAC,YAAY,CAAC,EAAE,CAWjC;AAED,wBAAgB,6BAA6B,CAC5C,YAAY,SAAS,gBAAgB,EAErC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EACpC,MAAM,EAAE,eAAe,CAAC,YAAY,CAAC,GACnC,OAAO,EAAE,CASX"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { getAddress, isAddressEqual } from "viem";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve the active collateral positions backing a borrow position.
|
|
4
|
+
*
|
|
5
|
+
* This mirrors Portfolio's borrow/savings classification: prefer collateral
|
|
6
|
+
* addresses from account liquidity, then fall back to enabled collaterals when
|
|
7
|
+
* liquidity is unavailable. Only positions actually present on the sub-account
|
|
8
|
+
* are returned, so callers do not treat enabled-but-empty collateral slots as
|
|
9
|
+
* active savings/collateral.
|
|
10
|
+
*/
|
|
11
|
+
export function resolveBorrowCollateralPositions(subAccount, borrow, positionFilter) {
|
|
12
|
+
return resolveBorrowCollateralVaults(subAccount, borrow).flatMap((collateralAddress) => {
|
|
13
|
+
const collateral = subAccount.positions.find((position) => isAddressEqual(position.vaultAddress, collateralAddress));
|
|
14
|
+
if (!collateral)
|
|
15
|
+
return [];
|
|
16
|
+
if (positionFilter && !positionFilter(collateral))
|
|
17
|
+
return [];
|
|
18
|
+
return [collateral];
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export function resolveBorrowCollateralVaults(subAccount, borrow) {
|
|
22
|
+
const liquidityCollaterals = borrow.liquidity?.collaterals.map((collateral) => getAddress(collateral.address)) ?? [];
|
|
23
|
+
return liquidityCollaterals.length > 0
|
|
24
|
+
? liquidityCollaterals
|
|
25
|
+
: subAccount.enabledCollaterals.map((collateral) => getAddress(collateral));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=accountPositionClassification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountPositionClassification.js","sourceRoot":"","sources":["../../../src/utils/accountPositionClassification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAWhE;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC,CAG/C,UAAoC,EACpC,MAAqC,EACrC,cAAoD;IAEpD,OAAO,6BAA6B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,OAAO,CAC/D,CAAC,iBAAiB,EAAE,EAAE;QACrB,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACzD,cAAc,CAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC,CACxD,CAAC;QACF,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAC3B,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7D,OAAO,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC,CACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAG5C,UAAoC,EACpC,MAAqC;IAErC,MAAM,oBAAoB,GACzB,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAChD,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAC9B,IAAI,EAAE,CAAC;IAET,OAAO,oBAAoB,CAAC,MAAM,GAAG,CAAC;QACrC,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -11,6 +11,7 @@ export interface QueryCacheConfig {
|
|
|
11
11
|
enabled?: boolean;
|
|
12
12
|
ttlMs?: number;
|
|
13
13
|
}
|
|
14
|
+
export declare function serializeQueryArgs(args: unknown[]): string | null;
|
|
14
15
|
export declare function createQueryCacheBuildQuery(config?: QueryCacheConfig): BuildQueryFn;
|
|
15
16
|
/**
|
|
16
17
|
* Applies a buildQuery decorator to all `query*` properties on a target object.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildQuery.d.ts","sourceRoot":"","sources":["../../../src/utils/buildQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACrE,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,CAAC,EACL,MAAM,EAAE,MAAM,KACV,CAAC,CAAC;AAEP,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"buildQuery.d.ts","sourceRoot":"","sources":["../../../src/utils/buildQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACrE,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,CAAC,EACL,MAAM,EAAE,MAAM,KACV,CAAC,CAAC;AAEP,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAYjE;AAED,wBAAgB,0BAA0B,CACzC,MAAM,CAAC,EAAE,gBAAgB,GACvB,YAAY,CA2Dd;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,YAAY,GACtB,IAAI,CAMN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildQuery.js","sourceRoot":"","sources":["../../../src/utils/buildQuery.ts"],"names":[],"mappings":"AAmBA,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEzC,
|
|
1
|
+
{"version":3,"file":"buildQuery.js","sourceRoot":"","sources":["../../../src/utils/buildQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,68 @@
|
|
|
1
|
+
import type { Address } from "viem";
|
|
1
2
|
export type DataIssueSeverity = "info" | "warning" | "error";
|
|
2
3
|
export type DataIssueCode = "COERCED_TYPE" | "OUT_OF_RANGE_CLAMPED" | "OUT_OF_RANGE_DROPPED" | "PRECISION_LOSS" | "DEFAULT_APPLIED" | "SOURCE_UNAVAILABLE" | "FALLBACK_USED" | "DECODE_FAILED";
|
|
4
|
+
export type DataIssueOwnerRef = {
|
|
5
|
+
kind: "account";
|
|
6
|
+
chainId: number;
|
|
7
|
+
address: Address;
|
|
8
|
+
} | {
|
|
9
|
+
kind: "subAccount";
|
|
10
|
+
chainId: number;
|
|
11
|
+
address: Address;
|
|
12
|
+
} | {
|
|
13
|
+
kind: "accountPosition";
|
|
14
|
+
chainId: number;
|
|
15
|
+
account: Address;
|
|
16
|
+
vault: Address;
|
|
17
|
+
} | {
|
|
18
|
+
kind: "accountPositionCollateral";
|
|
19
|
+
chainId: number;
|
|
20
|
+
account: Address;
|
|
21
|
+
vault: Address;
|
|
22
|
+
collateral: Address;
|
|
23
|
+
} | {
|
|
24
|
+
kind: "asset";
|
|
25
|
+
chainId: number;
|
|
26
|
+
address: Address;
|
|
27
|
+
} | {
|
|
28
|
+
kind: "vault";
|
|
29
|
+
chainId: number;
|
|
30
|
+
address: Address;
|
|
31
|
+
} | {
|
|
32
|
+
kind: "vaultCollateral";
|
|
33
|
+
chainId: number;
|
|
34
|
+
vault: Address;
|
|
35
|
+
collateral: Address;
|
|
36
|
+
} | {
|
|
37
|
+
kind: "vaultStrategy";
|
|
38
|
+
chainId: number;
|
|
39
|
+
vault: Address;
|
|
40
|
+
strategy: Address;
|
|
41
|
+
} | {
|
|
42
|
+
kind: "wallet";
|
|
43
|
+
chainId: number;
|
|
44
|
+
address: Address;
|
|
45
|
+
} | {
|
|
46
|
+
kind: "walletAsset";
|
|
47
|
+
chainId: number;
|
|
48
|
+
wallet: Address;
|
|
49
|
+
asset: Address;
|
|
50
|
+
} | {
|
|
51
|
+
kind: "service";
|
|
52
|
+
service: string;
|
|
53
|
+
chainId?: number;
|
|
54
|
+
id?: string;
|
|
55
|
+
};
|
|
56
|
+
export interface DataIssueLocation {
|
|
57
|
+
owner: DataIssueOwnerRef;
|
|
58
|
+
/** JSONPath-like, relative to the diagnostic owner. */
|
|
59
|
+
path: string;
|
|
60
|
+
}
|
|
3
61
|
export interface DataIssue {
|
|
4
62
|
code: DataIssueCode;
|
|
5
63
|
severity: DataIssueSeverity;
|
|
6
64
|
message: string;
|
|
7
|
-
|
|
8
|
-
paths: string[];
|
|
9
|
-
/** Stable entity identifier (address for vault/account/subaccount/wallet/asset when known). */
|
|
10
|
-
entityId?: string;
|
|
65
|
+
locations: DataIssueLocation[];
|
|
11
66
|
source?: string;
|
|
12
67
|
originalValue?: unknown;
|
|
13
68
|
normalizedValue?: unknown;
|
|
@@ -16,14 +71,22 @@ export interface ServiceResult<T> {
|
|
|
16
71
|
result: T;
|
|
17
72
|
errors: DataIssue[];
|
|
18
73
|
}
|
|
74
|
+
export declare function vaultDiagnosticOwner(chainId: number, address: Address): DataIssueOwnerRef;
|
|
75
|
+
export declare function assetDiagnosticOwner(chainId: number, address: Address): DataIssueOwnerRef;
|
|
76
|
+
export declare function accountDiagnosticOwner(chainId: number, address: Address): DataIssueOwnerRef;
|
|
77
|
+
export declare function subAccountDiagnosticOwner(chainId: number, address: Address): DataIssueOwnerRef;
|
|
78
|
+
export declare function accountPositionDiagnosticOwner(chainId: number, account: Address, vault: Address): DataIssueOwnerRef;
|
|
79
|
+
export declare function accountPositionCollateralDiagnosticOwner(chainId: number, account: Address, vault: Address, collateral: Address): DataIssueOwnerRef;
|
|
80
|
+
export declare function vaultCollateralDiagnosticOwner(chainId: number, vault: Address, collateral: Address): DataIssueOwnerRef;
|
|
81
|
+
export declare function vaultStrategyDiagnosticOwner(chainId: number, vault: Address, strategy: Address): DataIssueOwnerRef;
|
|
82
|
+
export declare function walletDiagnosticOwner(chainId: number, address: Address): DataIssueOwnerRef;
|
|
83
|
+
export declare function walletAssetDiagnosticOwner(chainId: number, wallet: Address, asset: Address): DataIssueOwnerRef;
|
|
84
|
+
export declare function serviceDiagnosticOwner(service: string, chainId?: number, id?: string): DataIssueOwnerRef;
|
|
85
|
+
export declare function dataIssueLocation(owner: DataIssueOwnerRef, path?: string): DataIssueLocation;
|
|
19
86
|
export declare function withPathPrefix(path: string, prefix: string): string;
|
|
20
|
-
export declare function
|
|
21
|
-
export declare function
|
|
22
|
-
export declare function
|
|
23
|
-
|
|
24
|
-
* Normalizes list-root diagnostics like "$.vaults[0].x" to "$[0].x" for
|
|
25
|
-
* service methods that return top-level arrays.
|
|
26
|
-
*/
|
|
27
|
-
export declare function normalizeTopLevelVaultArrayPath(path: string): string;
|
|
87
|
+
export declare function dataIssueOwnerKey(owner: DataIssueOwnerRef): string;
|
|
88
|
+
export declare function dataIssueLocationKey(location: DataIssueLocation): string;
|
|
89
|
+
export declare function mapDataIssueLocations(issue: DataIssue, mapLocation: (location: DataIssueLocation) => DataIssueLocation): DataIssue;
|
|
90
|
+
export declare function replaceDataIssueLocations(issue: DataIssue, locations: DataIssueLocation[]): DataIssue;
|
|
28
91
|
export declare function compressDataIssues(errors: DataIssue[]): DataIssue[];
|
|
29
92
|
//# sourceMappingURL=entityDiagnostics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityDiagnostics.d.ts","sourceRoot":"","sources":["../../../src/utils/entityDiagnostics.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7D,MAAM,MAAM,aAAa,GACtB,cAAc,GACd,sBAAsB,GACtB,sBAAsB,GACtB,gBAAgB,GAChB,iBAAiB,GACjB,oBAAoB,GACpB,eAAe,GACf,eAAe,CAAC;AAEnB,MAAM,
|
|
1
|
+
{"version":3,"file":"entityDiagnostics.d.ts","sourceRoot":"","sources":["../../../src/utils/entityDiagnostics.ts"],"names":[],"mappings":"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"}
|