@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.
- package/README.md +24 -25
- package/dist/src/entities/Account.d.ts +50 -49
- package/dist/src/entities/Account.d.ts.map +1 -1
- package/dist/src/entities/Account.js +80 -66
- 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 +20 -19
- package/dist/src/entities/Portfolio.d.ts.map +1 -1
- package/dist/src/entities/Portfolio.js +34 -17
- 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 +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/plugins/keyring/keyringPlugin.d.ts.map +1 -1
- package/dist/src/plugins/keyring/keyringPlugin.js +59 -10
- 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 +10 -4
- package/dist/src/sdk/buildSDK.d.ts.map +1 -1
- package/dist/src/sdk/buildSDK.js +359 -110
- 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 +4 -3
- package/dist/src/sdk/sdk.d.ts.map +1 -1
- package/dist/src/sdk/sdk.js +2 -4
- 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/accountServiceConfig.d.ts +1 -1
- package/dist/src/services/accountService/accountServiceConfig.d.ts.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.map +1 -1
- package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.js +58 -53
- 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 +15 -11
- package/dist/src/services/executionService/encode.d.ts.map +1 -1
- package/dist/src/services/executionService/encode.js +242 -23
- package/dist/src/services/executionService/encode.js.map +1 -1
- package/dist/src/services/executionService/execute.d.ts +2 -1
- package/dist/src/services/executionService/execute.d.ts.map +1 -1
- package/dist/src/services/executionService/execute.js +10 -6
- package/dist/src/services/executionService/execute.js.map +1 -1
- package/dist/src/services/executionService/executionService.d.ts +45 -7
- package/dist/src/services/executionService/executionService.d.ts.map +1 -1
- package/dist/src/services/executionService/executionService.js +325 -20
- package/dist/src/services/executionService/executionService.js.map +1 -1
- package/dist/src/services/executionService/executionServiceTypes.d.ts +109 -1
- package/dist/src/services/executionService/executionServiceTypes.d.ts.map +1 -1
- package/dist/src/services/executionService/executionServiceTypes.js.map +1 -1
- package/dist/src/services/executionService/index.d.ts +1 -1
- package/dist/src/services/executionService/index.d.ts.map +1 -1
- package/dist/src/services/executionService/index.js.map +1 -1
- package/dist/src/services/executionService/simulate.d.ts.map +1 -1
- package/dist/src/services/executionService/simulate.js +3 -2
- package/dist/src/services/executionService/simulate.js.map +1 -1
- 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 -11
- 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 +21 -18
- package/dist/src/services/priceService/priceService.d.ts.map +1 -1
- package/dist/src/services/priceService/priceService.js +61 -101
- package/dist/src/services/priceService/priceService.js.map +1 -1
- package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.d.ts +4 -1
- package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.d.ts.map +1 -1
- package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.js +20 -4
- package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.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 +5 -2
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js.map +1 -1
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.d.ts +2 -0
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.d.ts.map +1 -1
- package/dist/src/services/rewardsService/rewardsService.d.ts +6 -1
- package/dist/src/services/rewardsService/rewardsService.d.ts.map +1 -1
- package/dist/src/services/rewardsService/rewardsService.js +128 -3
- package/dist/src/services/rewardsService/rewardsService.js.map +1 -1
- package/dist/src/services/rewardsService/rewardsServiceTypes.d.ts +5 -3
- package/dist/src/services/rewardsService/rewardsServiceTypes.d.ts.map +1 -1
- package/dist/src/services/swapService/swapService.d.ts +4 -6
- package/dist/src/services/swapService/swapService.d.ts.map +1 -1
- package/dist/src/services/swapService/swapService.js +90 -99
- package/dist/src/services/swapService/swapService.js.map +1 -1
- package/dist/src/services/swapService/swapVerification.d.ts +28 -0
- package/dist/src/services/swapService/swapVerification.d.ts.map +1 -0
- package/dist/src/services/swapService/swapVerification.js +138 -0
- package/dist/src/services/swapService/swapVerification.js.map +1 -0
- 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 +5 -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 +50 -18
- 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 +14 -13
- package/dist/src/utils/accountComputations.d.ts.map +1 -1
- package/dist/src/utils/accountComputations.js +59 -37
- package/dist/src/utils/accountComputations.js.map +1 -1
- 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 +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getAddress } from "viem";
|
|
2
|
+
import { dataIssueLocation, vaultCollateralDiagnosticOwner, vaultDiagnosticOwner, } from "../../../../../utils/entityDiagnostics.js";
|
|
2
3
|
import { parseAddressField, parseBigIntField, parseBooleanField, parseNumberField, parseRatio1e4, parseStringField, parseTimestampField, ZERO_ADDRESS, } from "../../../../../utils/parsing.js";
|
|
3
4
|
import { hasActiveBorrowableLtv, } from "../../../../../entities/EVault.js";
|
|
4
5
|
import { VaultType } from "../../../../../utils/types.js";
|
|
@@ -47,6 +48,10 @@ const DEFAULT_INTEREST_RATES_BLOCK = {
|
|
|
47
48
|
borrowAPY: "0",
|
|
48
49
|
supplyAPY: "0",
|
|
49
50
|
};
|
|
51
|
+
function parseRate(value) {
|
|
52
|
+
const parsed = Number.parseFloat(value);
|
|
53
|
+
return Number.isFinite(parsed) ? parsed * 100 : 0;
|
|
54
|
+
}
|
|
50
55
|
const DEFAULT_INTEREST_RATE_MODEL_BLOCK = {
|
|
51
56
|
address: ZERO_ADDRESS,
|
|
52
57
|
type: "unknown",
|
|
@@ -86,77 +91,77 @@ function mapInterestRateModelType(type) {
|
|
|
86
91
|
return InterestRateModelType.UNKNOWN;
|
|
87
92
|
}
|
|
88
93
|
}
|
|
89
|
-
function convertToken(token, path,
|
|
94
|
+
function convertToken(token, path, owner, errors) {
|
|
90
95
|
return {
|
|
91
96
|
address: parseAddressField(token.address, {
|
|
92
97
|
path: `${path}.address`,
|
|
93
|
-
|
|
98
|
+
owner,
|
|
94
99
|
errors,
|
|
95
100
|
source: "eVaultV3",
|
|
96
101
|
}),
|
|
97
102
|
name: parseStringField(token.name, {
|
|
98
103
|
path: `${path}.name`,
|
|
99
|
-
|
|
104
|
+
owner,
|
|
100
105
|
errors,
|
|
101
106
|
source: "eVaultV3",
|
|
102
107
|
}),
|
|
103
108
|
symbol: parseStringField(token.symbol, {
|
|
104
109
|
path: `${path}.symbol`,
|
|
105
|
-
|
|
110
|
+
owner,
|
|
106
111
|
errors,
|
|
107
112
|
source: "eVaultV3",
|
|
108
113
|
}),
|
|
109
114
|
decimals: parseNumberField(token.decimals, {
|
|
110
115
|
path: `${path}.decimals`,
|
|
111
|
-
|
|
116
|
+
owner,
|
|
112
117
|
errors,
|
|
113
118
|
source: "eVaultV3",
|
|
114
119
|
}),
|
|
115
120
|
};
|
|
116
121
|
}
|
|
117
|
-
function convertOraclePrice(price, errors, path,
|
|
122
|
+
function convertOraclePrice(price, errors, path, owner) {
|
|
118
123
|
const converted = {
|
|
119
124
|
queryFailure: parseBooleanField(price.queryFailure, {
|
|
120
125
|
path: `${path}.queryFailure`,
|
|
121
|
-
|
|
126
|
+
owner,
|
|
122
127
|
errors,
|
|
123
128
|
source: "eVaultV3",
|
|
124
129
|
fallback: true,
|
|
125
130
|
}),
|
|
126
131
|
queryFailureReason: parseStringField(price.queryFailureReason, {
|
|
127
132
|
path: `${path}.queryFailureReason`,
|
|
128
|
-
|
|
133
|
+
owner,
|
|
129
134
|
errors,
|
|
130
135
|
source: "eVaultV3",
|
|
131
136
|
fallback: "0x",
|
|
132
137
|
}),
|
|
133
138
|
amountIn: parseBigIntField(price.amountIn, {
|
|
134
139
|
path: `${path}.amountIn`,
|
|
135
|
-
|
|
140
|
+
owner,
|
|
136
141
|
errors,
|
|
137
142
|
source: "eVaultV3",
|
|
138
143
|
}),
|
|
139
144
|
amountOutMid: parseBigIntField(price.amountOutMid, {
|
|
140
145
|
path: `${path}.amountOutMid`,
|
|
141
|
-
|
|
146
|
+
owner,
|
|
142
147
|
errors,
|
|
143
148
|
source: "eVaultV3",
|
|
144
149
|
}),
|
|
145
150
|
amountOutBid: parseBigIntField(price.amountOutBid, {
|
|
146
151
|
path: `${path}.amountOutBid`,
|
|
147
|
-
|
|
152
|
+
owner,
|
|
148
153
|
errors,
|
|
149
154
|
source: "eVaultV3",
|
|
150
155
|
}),
|
|
151
156
|
amountOutAsk: parseBigIntField(price.amountOutAsk, {
|
|
152
157
|
path: `${path}.amountOutAsk`,
|
|
153
|
-
|
|
158
|
+
owner,
|
|
154
159
|
errors,
|
|
155
160
|
source: "eVaultV3",
|
|
156
161
|
}),
|
|
157
162
|
timestamp: parseTimestampField(price.timestamp, {
|
|
158
163
|
path: `${path}.timestamp`,
|
|
159
|
-
|
|
164
|
+
owner,
|
|
160
165
|
errors,
|
|
161
166
|
source: "eVaultV3",
|
|
162
167
|
}),
|
|
@@ -166,8 +171,7 @@ function convertOraclePrice(price, errors, path, entityId) {
|
|
|
166
171
|
code: "SOURCE_UNAVAILABLE",
|
|
167
172
|
severity: "warning",
|
|
168
173
|
message: "Oracle price query reported failure.",
|
|
169
|
-
|
|
170
|
-
entityId,
|
|
174
|
+
locations: [dataIssueLocation(owner, path)],
|
|
171
175
|
source: "eVaultV3",
|
|
172
176
|
originalValue: converted.queryFailureReason,
|
|
173
177
|
normalizedValue: "queryFailure:true",
|
|
@@ -175,29 +179,29 @@ function convertOraclePrice(price, errors, path, entityId) {
|
|
|
175
179
|
}
|
|
176
180
|
return converted;
|
|
177
181
|
}
|
|
178
|
-
function convertOracleAdapter(adapter,
|
|
182
|
+
function convertOracleAdapter(adapter, owner, errors) {
|
|
179
183
|
const converted = {
|
|
180
184
|
oracle: parseAddressField(adapter.oracle, {
|
|
181
185
|
path: "$.oracle.adapters[].oracle",
|
|
182
|
-
|
|
186
|
+
owner,
|
|
183
187
|
errors,
|
|
184
188
|
source: "eVaultV3",
|
|
185
189
|
}),
|
|
186
190
|
name: parseStringField(adapter.name, {
|
|
187
191
|
path: "$.oracle.adapters[].name",
|
|
188
|
-
|
|
192
|
+
owner,
|
|
189
193
|
errors,
|
|
190
194
|
source: "eVaultV3",
|
|
191
195
|
}),
|
|
192
196
|
base: parseAddressField(adapter.base, {
|
|
193
197
|
path: "$.oracle.adapters[].base",
|
|
194
|
-
|
|
198
|
+
owner,
|
|
195
199
|
errors,
|
|
196
200
|
source: "eVaultV3",
|
|
197
201
|
}),
|
|
198
202
|
quote: parseAddressField(adapter.quote, {
|
|
199
203
|
path: "$.oracle.adapters[].quote",
|
|
200
|
-
|
|
204
|
+
owner,
|
|
201
205
|
errors,
|
|
202
206
|
source: "eVaultV3",
|
|
203
207
|
}),
|
|
@@ -206,38 +210,38 @@ function convertOracleAdapter(adapter, entityId, errors) {
|
|
|
206
210
|
converted.pythDetail = {
|
|
207
211
|
pyth: parseAddressField(adapter.pythDetail.pyth, {
|
|
208
212
|
path: "$.oracle.adapters[].pythDetail.pyth",
|
|
209
|
-
|
|
213
|
+
owner,
|
|
210
214
|
errors,
|
|
211
215
|
source: "eVaultV3",
|
|
212
216
|
}),
|
|
213
217
|
base: parseAddressField(adapter.pythDetail.base, {
|
|
214
218
|
path: "$.oracle.adapters[].pythDetail.base",
|
|
215
|
-
|
|
219
|
+
owner,
|
|
216
220
|
errors,
|
|
217
221
|
source: "eVaultV3",
|
|
218
222
|
}),
|
|
219
223
|
quote: parseAddressField(adapter.pythDetail.quote, {
|
|
220
224
|
path: "$.oracle.adapters[].pythDetail.quote",
|
|
221
|
-
|
|
225
|
+
owner,
|
|
222
226
|
errors,
|
|
223
227
|
source: "eVaultV3",
|
|
224
228
|
}),
|
|
225
229
|
feedId: parseStringField(adapter.pythDetail.feedId, {
|
|
226
230
|
path: "$.oracle.adapters[].pythDetail.feedId",
|
|
227
|
-
|
|
231
|
+
owner,
|
|
228
232
|
errors,
|
|
229
233
|
source: "eVaultV3",
|
|
230
234
|
fallback: "0x",
|
|
231
235
|
}),
|
|
232
236
|
maxStaleness: parseBigIntField(String(adapter.pythDetail.maxStaleness), {
|
|
233
237
|
path: "$.oracle.adapters[].pythDetail.maxStaleness",
|
|
234
|
-
|
|
238
|
+
owner,
|
|
235
239
|
errors,
|
|
236
240
|
source: "eVaultV3",
|
|
237
241
|
}),
|
|
238
242
|
maxConfWidth: parseBigIntField(String(adapter.pythDetail.maxConfWidth), {
|
|
239
243
|
path: "$.oracle.adapters[].pythDetail.maxConfWidth",
|
|
240
|
-
|
|
244
|
+
owner,
|
|
241
245
|
errors,
|
|
242
246
|
source: "eVaultV3",
|
|
243
247
|
}),
|
|
@@ -247,7 +251,7 @@ function convertOracleAdapter(adapter, entityId, errors) {
|
|
|
247
251
|
converted.chainlinkDetail = {
|
|
248
252
|
oracle: parseAddressField(adapter.chainlinkDetail.oracle, {
|
|
249
253
|
path: "$.oracle.adapters[].chainlinkDetail.oracle",
|
|
250
|
-
|
|
254
|
+
owner,
|
|
251
255
|
errors,
|
|
252
256
|
source: "eVaultV3",
|
|
253
257
|
}),
|
|
@@ -255,60 +259,62 @@ function convertOracleAdapter(adapter, entityId, errors) {
|
|
|
255
259
|
}
|
|
256
260
|
return converted;
|
|
257
261
|
}
|
|
258
|
-
function convertOracleResolvedVaults(resolvedVaults,
|
|
259
|
-
return resolvedVaults.map((resolvedVault, index) => ({
|
|
262
|
+
function convertOracleResolvedVaults(resolvedVaults, owner, errors) {
|
|
263
|
+
return (resolvedVaults ?? []).map((resolvedVault, index) => ({
|
|
260
264
|
vault: parseAddressField(resolvedVault.vault, {
|
|
261
265
|
path: `$.oracle.resolvedVaults[${index}].vault`,
|
|
262
|
-
|
|
266
|
+
owner,
|
|
263
267
|
errors,
|
|
264
268
|
source: "eVaultV3",
|
|
265
269
|
}),
|
|
266
270
|
quote: parseAddressField(resolvedVault.quote, {
|
|
267
271
|
path: `$.oracle.resolvedVaults[${index}].quote`,
|
|
268
|
-
|
|
272
|
+
owner,
|
|
269
273
|
errors,
|
|
270
274
|
source: "eVaultV3",
|
|
271
275
|
}),
|
|
272
276
|
asset: parseAddressField(resolvedVault.asset, {
|
|
273
277
|
path: `$.oracle.resolvedVaults[${index}].asset`,
|
|
274
|
-
|
|
278
|
+
owner,
|
|
275
279
|
errors,
|
|
276
280
|
source: "eVaultV3",
|
|
277
281
|
}),
|
|
278
|
-
resolvedAssets: resolvedVault.resolvedAssets.map((asset, assetIndex) => parseAddressField(asset, {
|
|
282
|
+
resolvedAssets: (resolvedVault.resolvedAssets ?? []).map((asset, assetIndex) => parseAddressField(asset, {
|
|
279
283
|
path: `$.oracle.resolvedVaults[${index}].resolvedAssets[${assetIndex}]`,
|
|
280
|
-
|
|
284
|
+
owner,
|
|
281
285
|
errors,
|
|
282
286
|
source: "eVaultV3",
|
|
283
287
|
})),
|
|
284
288
|
}));
|
|
285
289
|
}
|
|
286
|
-
function convertCollaterals(rows, vaultTimestamp, vaultEntityId, errors) {
|
|
290
|
+
function convertCollaterals(rows, vaultTimestamp, vaultEntityId, chainId, errors) {
|
|
287
291
|
const collaterals = [];
|
|
292
|
+
const vaultOwner = vaultDiagnosticOwner(chainId, vaultEntityId);
|
|
288
293
|
for (const [index, row] of rows.entries()) {
|
|
289
294
|
const collateralAddress = parseAddressField(row.collateral, {
|
|
290
295
|
path: `$.collaterals[${index}].collateral`,
|
|
291
|
-
|
|
296
|
+
owner: vaultOwner,
|
|
292
297
|
errors,
|
|
293
298
|
source: "eVaultV3",
|
|
294
299
|
});
|
|
300
|
+
const collateralOwner = vaultCollateralDiagnosticOwner(chainId, vaultEntityId, collateralAddress);
|
|
295
301
|
const borrowLTV = parseRatio1e4(row.borrowLTV, {
|
|
296
|
-
path:
|
|
297
|
-
|
|
302
|
+
path: "$.borrowLTV",
|
|
303
|
+
owner: collateralOwner,
|
|
298
304
|
errors,
|
|
299
305
|
source: "eVaultV3",
|
|
300
306
|
});
|
|
301
307
|
const liquidationLTV = parseRatio1e4(row.liquidationLTV, {
|
|
302
|
-
path:
|
|
303
|
-
|
|
308
|
+
path: "$.liquidationLTV",
|
|
309
|
+
owner: collateralOwner,
|
|
304
310
|
errors,
|
|
305
311
|
source: "eVaultV3",
|
|
306
312
|
});
|
|
307
313
|
const targetTimestamp = parseNumberField(typeof row.targetTimestamp === "number"
|
|
308
314
|
? row.targetTimestamp
|
|
309
315
|
: Number(row.targetTimestamp), {
|
|
310
|
-
path:
|
|
311
|
-
|
|
316
|
+
path: "$.targetTimestamp",
|
|
317
|
+
owner: collateralOwner,
|
|
312
318
|
errors,
|
|
313
319
|
source: "eVaultV3",
|
|
314
320
|
});
|
|
@@ -322,7 +328,7 @@ function convertCollaterals(rows, vaultTimestamp, vaultEntityId, errors) {
|
|
|
322
328
|
borrowLTV,
|
|
323
329
|
liquidationLTV,
|
|
324
330
|
oraclePriceRaw: row.oraclePriceRaw
|
|
325
|
-
? convertOraclePrice(row.oraclePriceRaw, errors,
|
|
331
|
+
? convertOraclePrice(row.oraclePriceRaw, errors, "$.oraclePriceRaw", collateralOwner)
|
|
326
332
|
: {
|
|
327
333
|
queryFailure: true,
|
|
328
334
|
queryFailureReason: "0x",
|
|
@@ -338,8 +344,7 @@ function convertCollaterals(rows, vaultTimestamp, vaultEntityId, errors) {
|
|
|
338
344
|
code: "DEFAULT_APPLIED",
|
|
339
345
|
severity: "warning",
|
|
340
346
|
message: "Missing collateral oraclePriceRaw; default zero-price placeholder applied.",
|
|
341
|
-
|
|
342
|
-
entityId: collateralAddress,
|
|
347
|
+
locations: [dataIssueLocation(collateralOwner, "$.oraclePriceRaw")],
|
|
343
348
|
source: "eVaultV3",
|
|
344
349
|
normalizedValue: "queryFailure:true",
|
|
345
350
|
});
|
|
@@ -347,15 +352,15 @@ function convertCollaterals(rows, vaultTimestamp, vaultEntityId, errors) {
|
|
|
347
352
|
if (targetTimestamp > vaultTimestamp) {
|
|
348
353
|
const ramping = {
|
|
349
354
|
initialLiquidationLTV: parseRatio1e4(row.initialLiquidationLTV, {
|
|
350
|
-
path:
|
|
351
|
-
|
|
355
|
+
path: "$.ramping.initialLiquidationLTV",
|
|
356
|
+
owner: collateralOwner,
|
|
352
357
|
errors,
|
|
353
358
|
source: "eVaultV3",
|
|
354
359
|
}),
|
|
355
360
|
targetTimestamp,
|
|
356
361
|
rampDuration: parseBigIntField(String(row.rampDuration ?? 0), {
|
|
357
|
-
path:
|
|
358
|
-
|
|
362
|
+
path: "$.ramping.rampDuration",
|
|
363
|
+
owner: collateralOwner,
|
|
359
364
|
errors,
|
|
360
365
|
source: "eVaultV3",
|
|
361
366
|
}),
|
|
@@ -376,21 +381,21 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
376
381
|
return false;
|
|
377
382
|
}
|
|
378
383
|
})();
|
|
379
|
-
const
|
|
384
|
+
const vaultAddress = parseAddressField(detail.address, {
|
|
380
385
|
path: "$.address",
|
|
381
|
-
|
|
386
|
+
owner: vaultDiagnosticOwner(detail.chainId, fallbackAddress),
|
|
382
387
|
errors,
|
|
383
388
|
source: "eVaultV3",
|
|
384
389
|
fallback: fallbackAddress,
|
|
385
390
|
fallbackLabel: "requested vault address",
|
|
386
391
|
});
|
|
392
|
+
const owner = vaultDiagnosticOwner(detail.chainId, vaultAddress);
|
|
387
393
|
if (!detail.oracle) {
|
|
388
394
|
errors.push({
|
|
389
395
|
code: "DEFAULT_APPLIED",
|
|
390
396
|
severity: "warning",
|
|
391
397
|
message: "Missing oracle block; defaulted all oracle fields to 0/empty.",
|
|
392
|
-
|
|
393
|
-
entityId,
|
|
398
|
+
locations: [dataIssueLocation(owner, "$.oracle")],
|
|
394
399
|
source: "eVaultV3",
|
|
395
400
|
normalizedValue: DEFAULT_ORACLE_BLOCK,
|
|
396
401
|
});
|
|
@@ -399,18 +404,18 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
399
404
|
const oracle = {
|
|
400
405
|
oracle: parseAddressField(oracleData.oracle, {
|
|
401
406
|
path: "$.oracle.oracle",
|
|
402
|
-
|
|
407
|
+
owner,
|
|
403
408
|
errors,
|
|
404
409
|
source: "eVaultV3",
|
|
405
410
|
}),
|
|
406
411
|
name: parseStringField(oracleData.name, {
|
|
407
412
|
path: "$.oracle.name",
|
|
408
|
-
|
|
413
|
+
owner,
|
|
409
414
|
errors,
|
|
410
415
|
source: "eVaultV3",
|
|
411
416
|
}),
|
|
412
|
-
adapters: oracleData.adapters.map((adapter) => convertOracleAdapter(adapter,
|
|
413
|
-
resolvedVaults: convertOracleResolvedVaults(oracleData.resolvedVaults,
|
|
417
|
+
adapters: (oracleData.adapters ?? []).map((adapter) => convertOracleAdapter(adapter, owner, errors)),
|
|
418
|
+
resolvedVaults: convertOracleResolvedVaults(oracleData.resolvedVaults, owner, errors),
|
|
414
419
|
};
|
|
415
420
|
const suppressUnitOfAccountDiagnostics = hasZeroOracleAddress;
|
|
416
421
|
if (!detail.shares) {
|
|
@@ -418,8 +423,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
418
423
|
code: "DEFAULT_APPLIED",
|
|
419
424
|
severity: "warning",
|
|
420
425
|
message: "Missing shares block; defaulted all share token fields to 0/empty.",
|
|
421
|
-
|
|
422
|
-
entityId,
|
|
426
|
+
locations: [dataIssueLocation(owner, "$.shares")],
|
|
423
427
|
source: "eVaultV3",
|
|
424
428
|
normalizedValue: DEFAULT_TOKEN_BLOCK,
|
|
425
429
|
});
|
|
@@ -430,8 +434,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
430
434
|
code: "DEFAULT_APPLIED",
|
|
431
435
|
severity: "warning",
|
|
432
436
|
message: "Missing asset block; defaulted all asset token fields to 0/empty.",
|
|
433
|
-
|
|
434
|
-
entityId,
|
|
437
|
+
locations: [dataIssueLocation(owner, "$.asset")],
|
|
435
438
|
source: "eVaultV3",
|
|
436
439
|
normalizedValue: DEFAULT_TOKEN_BLOCK,
|
|
437
440
|
});
|
|
@@ -442,8 +445,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
442
445
|
code: "DEFAULT_APPLIED",
|
|
443
446
|
severity: "warning",
|
|
444
447
|
message: "Missing unitOfAccount block; defaulted all unit-of-account fields to 0/empty.",
|
|
445
|
-
|
|
446
|
-
entityId,
|
|
448
|
+
locations: [dataIssueLocation(owner, "$.unitOfAccount")],
|
|
447
449
|
source: "eVaultV3",
|
|
448
450
|
normalizedValue: DEFAULT_TOKEN_BLOCK,
|
|
449
451
|
});
|
|
@@ -455,8 +457,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
455
457
|
code: "DEFAULT_APPLIED",
|
|
456
458
|
severity: "warning",
|
|
457
459
|
message: "Missing fees object; defaulted all fee fields to 0.",
|
|
458
|
-
|
|
459
|
-
entityId,
|
|
460
|
+
locations: [dataIssueLocation(owner, "$.fees")],
|
|
460
461
|
source: "eVaultV3",
|
|
461
462
|
normalizedValue: {
|
|
462
463
|
interestFee: 0,
|
|
@@ -480,25 +481,25 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
480
481
|
interestFee: feeData.interestFee ?? 0,
|
|
481
482
|
accumulatedFeesShares: parseBigIntField(feeData.accumulatedFeesShares ?? "0", {
|
|
482
483
|
path: "$.fees.accumulatedFeesShares",
|
|
483
|
-
|
|
484
|
+
owner,
|
|
484
485
|
errors,
|
|
485
486
|
source: "eVaultV3",
|
|
486
487
|
}),
|
|
487
488
|
accumulatedFeesAssets: parseBigIntField(feeData.accumulatedFeesAssets ?? "0", {
|
|
488
489
|
path: "$.fees.accumulatedFeesAssets",
|
|
489
|
-
|
|
490
|
+
owner,
|
|
490
491
|
errors,
|
|
491
492
|
source: "eVaultV3",
|
|
492
493
|
}),
|
|
493
494
|
governorFeeReceiver: parseAddressField(feeData.governorFeeReceiver, {
|
|
494
495
|
path: "$.fees.governorFeeReceiver",
|
|
495
|
-
|
|
496
|
+
owner,
|
|
496
497
|
errors,
|
|
497
498
|
source: "eVaultV3",
|
|
498
499
|
}),
|
|
499
500
|
protocolFeeReceiver: parseAddressField(feeData.protocolFeeReceiver, {
|
|
500
501
|
path: "$.fees.protocolFeeReceiver",
|
|
501
|
-
|
|
502
|
+
owner,
|
|
502
503
|
errors,
|
|
503
504
|
source: "eVaultV3",
|
|
504
505
|
}),
|
|
@@ -511,7 +512,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
511
512
|
},
|
|
512
513
|
hookTarget: parseAddressField(detail.hooks?.hookTarget, {
|
|
513
514
|
path: "$.hooks.hookTarget",
|
|
514
|
-
|
|
515
|
+
owner,
|
|
515
516
|
errors,
|
|
516
517
|
source: "eVaultV3",
|
|
517
518
|
}),
|
|
@@ -521,8 +522,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
521
522
|
code: "DEFAULT_APPLIED",
|
|
522
523
|
severity: "warning",
|
|
523
524
|
message: "Missing hookedOperations; defaulted all operations to false.",
|
|
524
|
-
|
|
525
|
-
entityId,
|
|
525
|
+
locations: [dataIssueLocation(owner, "$.hooks.hookedOperations")],
|
|
526
526
|
source: "eVaultV3",
|
|
527
527
|
normalizedValue: DEFAULT_HOOKED_OPERATIONS,
|
|
528
528
|
});
|
|
@@ -532,8 +532,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
532
532
|
code: "DEFAULT_APPLIED",
|
|
533
533
|
severity: "warning",
|
|
534
534
|
message: "Missing caps block; defaulted all cap fields to 0.",
|
|
535
|
-
|
|
536
|
-
entityId,
|
|
535
|
+
locations: [dataIssueLocation(owner, "$.caps")],
|
|
537
536
|
source: "eVaultV3",
|
|
538
537
|
normalizedValue: DEFAULT_CAPS_BLOCK,
|
|
539
538
|
});
|
|
@@ -542,13 +541,13 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
542
541
|
const caps = {
|
|
543
542
|
supplyCap: parseBigIntField(capsData.supplyCap ?? "0", {
|
|
544
543
|
path: "$.caps.supplyCap",
|
|
545
|
-
|
|
544
|
+
owner,
|
|
546
545
|
errors,
|
|
547
546
|
source: "eVaultV3",
|
|
548
547
|
}),
|
|
549
548
|
borrowCap: parseBigIntField(capsData.borrowCap ?? "0", {
|
|
550
549
|
path: "$.caps.borrowCap",
|
|
551
|
-
|
|
550
|
+
owner,
|
|
552
551
|
errors,
|
|
553
552
|
source: "eVaultV3",
|
|
554
553
|
}),
|
|
@@ -558,8 +557,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
558
557
|
code: "DEFAULT_APPLIED",
|
|
559
558
|
severity: "warning",
|
|
560
559
|
message: "Missing liquidation block; defaulted all liquidation fields to 0/false.",
|
|
561
|
-
|
|
562
|
-
entityId,
|
|
560
|
+
locations: [dataIssueLocation(owner, "$.liquidation")],
|
|
563
561
|
source: "eVaultV3",
|
|
564
562
|
normalizedValue: {
|
|
565
563
|
maxLiquidationDiscount: 0,
|
|
@@ -579,43 +577,41 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
579
577
|
code: "DEFAULT_APPLIED",
|
|
580
578
|
severity: "warning",
|
|
581
579
|
message: "Missing interestRates block; defaulted all rate fields to 0.",
|
|
582
|
-
|
|
583
|
-
entityId,
|
|
580
|
+
locations: [dataIssueLocation(owner, "$.interestRates")],
|
|
584
581
|
source: "eVaultV3",
|
|
585
582
|
normalizedValue: DEFAULT_INTEREST_RATES_BLOCK,
|
|
586
583
|
});
|
|
587
584
|
}
|
|
588
585
|
const interestRatesData = detail.interestRates ?? DEFAULT_INTEREST_RATES_BLOCK;
|
|
589
586
|
const interestRates = {
|
|
590
|
-
borrowSPY: parseStringField(interestRatesData.borrowSPY, {
|
|
587
|
+
borrowSPY: parseRate(parseStringField(interestRatesData.borrowSPY, {
|
|
591
588
|
path: "$.interestRates.borrowSPY",
|
|
592
|
-
|
|
589
|
+
owner,
|
|
593
590
|
errors,
|
|
594
591
|
source: "eVaultV3",
|
|
595
592
|
fallback: "0",
|
|
596
|
-
}),
|
|
597
|
-
borrowAPY: parseStringField(interestRatesData.borrowAPY, {
|
|
593
|
+
})),
|
|
594
|
+
borrowAPY: parseRate(parseStringField(interestRatesData.borrowAPY, {
|
|
598
595
|
path: "$.interestRates.borrowAPY",
|
|
599
|
-
|
|
596
|
+
owner,
|
|
600
597
|
errors,
|
|
601
598
|
source: "eVaultV3",
|
|
602
599
|
fallback: "0",
|
|
603
|
-
}),
|
|
604
|
-
supplyAPY: parseStringField(interestRatesData.supplyAPY, {
|
|
600
|
+
})),
|
|
601
|
+
supplyAPY: parseRate(parseStringField(interestRatesData.supplyAPY, {
|
|
605
602
|
path: "$.interestRates.supplyAPY",
|
|
606
|
-
|
|
603
|
+
owner,
|
|
607
604
|
errors,
|
|
608
605
|
source: "eVaultV3",
|
|
609
606
|
fallback: "0",
|
|
610
|
-
}),
|
|
607
|
+
})),
|
|
611
608
|
};
|
|
612
609
|
if (!detail.interestRateModel) {
|
|
613
610
|
errors.push({
|
|
614
611
|
code: "DEFAULT_APPLIED",
|
|
615
612
|
severity: "warning",
|
|
616
613
|
message: "Missing interestRateModel block; defaulted all model fields to 0/unknown.",
|
|
617
|
-
|
|
618
|
-
entityId,
|
|
614
|
+
locations: [dataIssueLocation(owner, "$.interestRateModel")],
|
|
619
615
|
source: "eVaultV3",
|
|
620
616
|
normalizedValue: DEFAULT_INTEREST_RATE_MODEL_BLOCK,
|
|
621
617
|
});
|
|
@@ -623,7 +619,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
623
619
|
const interestRateModelData = detail.interestRateModel ?? DEFAULT_INTEREST_RATE_MODEL_BLOCK;
|
|
624
620
|
const interestRateModelType = mapInterestRateModelType(parseStringField(interestRateModelData.type, {
|
|
625
621
|
path: "$.interestRateModel.type",
|
|
626
|
-
|
|
622
|
+
owner,
|
|
627
623
|
errors,
|
|
628
624
|
source: "eVaultV3",
|
|
629
625
|
fallback: "unknown",
|
|
@@ -631,7 +627,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
631
627
|
const normalizedIRMData = normalizeIRMParams(interestRateModelType, interestRateModelData.data);
|
|
632
628
|
const interestRateModelAddress = parseAddressField(interestRateModelData.address, {
|
|
633
629
|
path: "$.interestRateModel.address",
|
|
634
|
-
|
|
630
|
+
owner,
|
|
635
631
|
errors,
|
|
636
632
|
source: "eVaultV3",
|
|
637
633
|
});
|
|
@@ -675,8 +671,7 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
675
671
|
code: "DEFAULT_APPLIED",
|
|
676
672
|
severity: "warning",
|
|
677
673
|
message: "Missing oraclePriceRaw block; defaulted all oracle price fields to 0.",
|
|
678
|
-
|
|
679
|
-
entityId,
|
|
674
|
+
locations: [dataIssueLocation(owner, "$.oraclePriceRaw")],
|
|
680
675
|
source: "eVaultV3",
|
|
681
676
|
normalizedValue: DEFAULT_ORACLE_PRICE_BLOCK,
|
|
682
677
|
});
|
|
@@ -684,64 +679,64 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
684
679
|
const oraclePriceData = detail.oraclePriceRaw ?? DEFAULT_ORACLE_PRICE_BLOCK;
|
|
685
680
|
const timestamp = parseTimestampField(detail.timestamp, {
|
|
686
681
|
path: "$.timestamp",
|
|
687
|
-
|
|
682
|
+
owner,
|
|
688
683
|
errors,
|
|
689
684
|
source: "eVaultV3",
|
|
690
685
|
});
|
|
691
|
-
const collaterals = convertCollaterals(collateralRows, timestamp,
|
|
692
|
-
const unitOfAccount = normalizeUnitOfAccountToken(convertToken(unitOfAccountData, "$.unitOfAccount",
|
|
686
|
+
const collaterals = convertCollaterals(collateralRows, timestamp, vaultAddress, detail.chainId, errors);
|
|
687
|
+
const unitOfAccount = normalizeUnitOfAccountToken(convertToken(unitOfAccountData, "$.unitOfAccount", owner, unitOfAccountErrors));
|
|
693
688
|
return {
|
|
694
689
|
type: VaultType.EVault,
|
|
695
690
|
chainId: detail.chainId,
|
|
696
|
-
address:
|
|
697
|
-
shares: convertToken(sharesData, "$.shares",
|
|
698
|
-
asset: convertToken(assetData, "$.asset",
|
|
691
|
+
address: vaultAddress,
|
|
692
|
+
shares: convertToken(sharesData, "$.shares", owner, errors),
|
|
693
|
+
asset: convertToken(assetData, "$.asset", owner, errors),
|
|
699
694
|
unitOfAccount,
|
|
700
695
|
totalShares: parseBigIntField(detail.totalShares, {
|
|
701
696
|
path: "$.totalShares",
|
|
702
|
-
|
|
697
|
+
owner,
|
|
703
698
|
errors,
|
|
704
699
|
source: "eVaultV3",
|
|
705
700
|
}),
|
|
706
701
|
totalAssets: parseBigIntField(detail.totalAssets, {
|
|
707
702
|
path: "$.totalAssets",
|
|
708
|
-
|
|
703
|
+
owner,
|
|
709
704
|
errors,
|
|
710
705
|
source: "eVaultV3",
|
|
711
706
|
}),
|
|
712
707
|
totalCash: parseBigIntField(detail.totalCash, {
|
|
713
708
|
path: "$.totalCash",
|
|
714
|
-
|
|
709
|
+
owner,
|
|
715
710
|
errors,
|
|
716
711
|
source: "eVaultV3",
|
|
717
712
|
}),
|
|
718
713
|
totalBorrowed: parseBigIntField(detail.totalBorrowed, {
|
|
719
714
|
path: "$.totalBorrowed",
|
|
720
|
-
|
|
715
|
+
owner,
|
|
721
716
|
errors,
|
|
722
717
|
source: "eVaultV3",
|
|
723
718
|
}),
|
|
724
719
|
creator: parseAddressField(detail.creator, {
|
|
725
720
|
path: "$.creator",
|
|
726
|
-
|
|
721
|
+
owner,
|
|
727
722
|
errors,
|
|
728
723
|
source: "eVaultV3",
|
|
729
724
|
}),
|
|
730
725
|
governorAdmin: parseAddressField(detail.governorAdmin, {
|
|
731
726
|
path: "$.governorAdmin",
|
|
732
|
-
|
|
727
|
+
owner,
|
|
733
728
|
errors,
|
|
734
729
|
source: "eVaultV3",
|
|
735
730
|
}),
|
|
736
731
|
dToken: parseAddressField(detail.dToken, {
|
|
737
732
|
path: "$.dToken",
|
|
738
|
-
|
|
733
|
+
owner,
|
|
739
734
|
errors,
|
|
740
735
|
source: "eVaultV3",
|
|
741
736
|
}),
|
|
742
737
|
balanceTracker: parseAddressField(detail.balanceTracker, {
|
|
743
738
|
path: "$.balanceTracker",
|
|
744
|
-
|
|
739
|
+
owner,
|
|
745
740
|
errors,
|
|
746
741
|
source: "eVaultV3",
|
|
747
742
|
}),
|
|
@@ -756,11 +751,11 @@ export function convertVault(detail, collateralRows, errors, fallbackAddress) {
|
|
|
756
751
|
isBorrowable: hasActiveBorrowableLtv(collaterals, timestamp),
|
|
757
752
|
evcCompatibleAsset: parseBooleanField(detail.evcCompatibleAsset, {
|
|
758
753
|
path: "$.evcCompatibleAsset",
|
|
759
|
-
|
|
754
|
+
owner,
|
|
760
755
|
errors,
|
|
761
756
|
source: "eVaultV3",
|
|
762
757
|
}),
|
|
763
|
-
oraclePriceRaw: convertOraclePrice(oraclePriceData, errors, "$.oraclePriceRaw",
|
|
758
|
+
oraclePriceRaw: convertOraclePrice(oraclePriceData, errors, "$.oraclePriceRaw", owner),
|
|
764
759
|
timestamp,
|
|
765
760
|
};
|
|
766
761
|
}
|