@varla/sdk 2.8.0 → 2.10.0
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/AGENTS.md +7 -7
- package/CHANGELOG.md +16 -0
- package/dist/views/core.d.ts +194 -0
- package/dist/views/core.d.ts.map +1 -1
- package/dist/views/core.js +215 -0
- package/dist/views/core.js.map +1 -1
- package/package.json +1 -1
- package/src/views/core.ts +364 -0
package/AGENTS.md
CHANGED
|
@@ -112,14 +112,14 @@ if (decoded) console.log(formatVarlaError(decoded));
|
|
|
112
112
|
<!-- BEGIN GENERATED:EXPORTS -->
|
|
113
113
|
<!--
|
|
114
114
|
Auto-generated by scripts/sdk/generate-docs.ts — DO NOT EDIT MANUALLY.
|
|
115
|
-
|
|
115
|
+
364 functions, 181 types across 10 subpaths.
|
|
116
116
|
-->
|
|
117
117
|
|
|
118
|
-
### `@varla/sdk` (
|
|
118
|
+
### `@varla/sdk` (180 functions, 92 types, 8 constants)
|
|
119
119
|
|
|
120
|
-
**Functions:** `prepareCoreSetDefaultLtvConfig`, `prepareCoreSetLiquidationConfig`, `prepareCoreSetTierLiquidationConfig`, `prepareCoreSetMaxPositions`, `prepareCoreSetMaxPositionsBounds`, `prepareCoreSetOracle`, `prepareCoreSetPositionLtvOverride`, `prepareCoreClearPositionLtvOverride`, `prepareCoreSetPositionLiquidationConfigOverride`, `prepareCoreClearPositionLiquidationConfigOverride`, `preparePoolSetDepositCap`, `preparePoolSetBorrowCap`, `preparePoolWithdrawReserve`, `preparePoolSetInterestRateStrategy`, `prepareOracleSetMaxStaleness`, `prepareOracleSetLiquidationGracePeriod`, `prepareOracleSetDefaultEarlyClosureWindow`, `prepareStrategySetPool`, `prepareStrategySetRateParams`, `prepareOracleUpdaterRouterSetPublisher`, `prepareCoreDeposit`, `prepareCoreWithdraw`, `prepareCoreBorrow`, `prepareCoreRepay`, `prepareErc20Approve`, `prepareErc1155SetApprovalForAll`, `prepareLiquidatorLiquidate`, `prepareLiquidatorLiquidateMulti`, `prepareLiquidatorLiquidateBadDebt`, `prepareLiquidatorResolveBadDebtWithReserve`, `prepareOracleConfigurePositionsBatch`, `prepareOracleConfigurePosition`, `prepareOracleSetUpdater`, `prepareOracleSetPositionEarlyClosureWindowOverride`, `prepareOracleClearPositionEarlyClosureWindowOverride`, `prepareOracleInvalidatePosition`, `prepareOracleValidatePosition`, `prepareOracleRegisterNegRiskMarketPositions`, `prepareOracleOverrideNegRiskMarketPositions`, `prepareOracleConfigureOppositePositions`, `prepareOracleConfigureOppositePositionsBatch`, `prepareOracleConfigureNegRiskPositionsBatch`, `prepareOracleUpdatePrices`, `prepareOracleUpdatePrice`, `prepareOracleFinalizePosition`, `prepareOracleUnfinalizePosition`, `prepareOracleResolvePositionEarly`, `prepareOracleBatchFinalizePositions`, `prepareOracleBatchResolvePositionsEarly`, `prepareOracleSetResolutionPrice`, `planOracleSeed`, `seedOracleFromJson`, `seedOracleFromJsonFiles`, `prepareOracleSeedPlan`, `executeOracleSeedPlan`, `buildNonce`, `splitNonce`, `readOracleUpdaterRouterLaneSeq`, `readOracleUpdaterRouterNonce`, `toOracleUpdaterRouterTypedMessage`, `computeOracleUpdaterDigest`, `signOracleUpdaterRouterUpdate`, `prepareOracleUpdaterRouterUpdatePricesWithSig`, `preparePoolDeposit`, `preparePoolMint`, `preparePoolWithdraw`, `preparePoolRedeem`, `readCanCall`, `assertCanCallImmediate`, `sendTx`, `selectorFromSignature`, `chunk`, `multicallChunks`, `getAddressBook`, `getVarlaContracts`, `getRequiredVarlaContracts`, `getErc20`, `getErc1155`, `getErc4626`, `decodeEventLogs`, `getEventLogsChunked`, `syncOracleRegistryViaEvents`, `getRecentEvents`, `formatWad`, `formatBps`, `formatPriceE8`, `parseUnits`, `parseWad`, `isSupportedChain`, `assertSupportedChain`, `getChainMeta`, `readAccessManagerBasics`, `readRoleSummary`, `readTargetConfig`, `readHasRole`, `readManyHasRole`, `readManyTargetFunctionRoles`, `readManyTargetConfigs`, `readAdapterInfo`, `readInterestRateStrategyBasics`, `getInterestRateStrategyFromPool`, `readProxyAdminPaused`, `readRepayTiming`, `readPositionCount`, `readOracleGuardsStatus`, `readAccountSnapshot`, `readCoreAddresses`, `readMaxPositionsConfig`, `readAccountPositionsFull`, `readPositionBalances`, `readBorrowerState`, `readPortfolioValue`, `readBorrowers`, `readCoreGlobalDebt`, `readPositionLiquidationConfigOverride`, `readPositionBalance`, `readAccountPositions`, `readBorrowersPage`, `readManyAccountSnapshots`, `readHealthFactor`, `readLiquidationConfig`, `readDefaultLtvConfig`, `readTieredLtvConfig`, `readTierLiquidationConfig`, `readLiquidationParamsForPosition`, `readPositionLtvOverride`, `readLtvForPosition`, `readLiquidationBonusBps`, `readManyLiquidationBonusBps`, `readWalletPositionIds`, `previewBorrow`, `previewRepay`, `readBorrowLimits`, `readManyBorrowLimits`, `readHypotheticalBorrowCapacity`, `readLenderSnapshot`, `readMaxWithdraw`, `readMaxRedeem`, `readLiquidatorBasics`, `readCanLiquidate`, `readPreviewLiquidation`, `readCalculateLiquidationBonus`, `readBadDebtStatus`, `readMergeLiquidatorBasics`, `readConvertLiquidatorBasics`, `rankPositionsForLiquidation`, `readLiquidationCandidates`, `readOracleRegistry`, `readOracleRegistryPage`, `readOracleFinalizationStatus`, `readOracleConfig`, `readOracleCollateralStatus`, `readTryGetPrice`, `readOraclePriceData`, `readOracleBasics`, `readOracleTiming`, `readConfiguredPositionIds`, `readNegRiskMarketPositionIds`, `readRiskTier`, `readSpotPrice`, `readTwap`, `readPrice`, `readLiquidity`, `readPositionSnapshot`, `readManyPositionSnapshots`, `readOraclePositionMeta`, `readManyOraclePositionMeta`, `hydrateOraclePositionIds`, `readPoolSnapshot`, `readPoolCaps`, `readPoolAccounting`, `readPoolRates`, `readPoolSharePrice`, `readPoolHealthScore`, `readPoolDebtState`, `readPoolCoreAddress`, `readSystemSnapshot`
|
|
120
|
+
**Functions:** `prepareCoreSetDefaultLtvConfig`, `prepareCoreSetLiquidationConfig`, `prepareCoreSetTierLiquidationConfig`, `prepareCoreSetMaxPositions`, `prepareCoreSetMaxPositionsBounds`, `prepareCoreSetOracle`, `prepareCoreSetPositionLtvOverride`, `prepareCoreClearPositionLtvOverride`, `prepareCoreSetPositionLiquidationConfigOverride`, `prepareCoreClearPositionLiquidationConfigOverride`, `preparePoolSetDepositCap`, `preparePoolSetBorrowCap`, `preparePoolWithdrawReserve`, `preparePoolSetInterestRateStrategy`, `prepareOracleSetMaxStaleness`, `prepareOracleSetLiquidationGracePeriod`, `prepareOracleSetDefaultEarlyClosureWindow`, `prepareStrategySetPool`, `prepareStrategySetRateParams`, `prepareOracleUpdaterRouterSetPublisher`, `prepareCoreDeposit`, `prepareCoreWithdraw`, `prepareCoreBorrow`, `prepareCoreRepay`, `prepareErc20Approve`, `prepareErc1155SetApprovalForAll`, `prepareLiquidatorLiquidate`, `prepareLiquidatorLiquidateMulti`, `prepareLiquidatorLiquidateBadDebt`, `prepareLiquidatorResolveBadDebtWithReserve`, `prepareOracleConfigurePositionsBatch`, `prepareOracleConfigurePosition`, `prepareOracleSetUpdater`, `prepareOracleSetPositionEarlyClosureWindowOverride`, `prepareOracleClearPositionEarlyClosureWindowOverride`, `prepareOracleInvalidatePosition`, `prepareOracleValidatePosition`, `prepareOracleRegisterNegRiskMarketPositions`, `prepareOracleOverrideNegRiskMarketPositions`, `prepareOracleConfigureOppositePositions`, `prepareOracleConfigureOppositePositionsBatch`, `prepareOracleConfigureNegRiskPositionsBatch`, `prepareOracleUpdatePrices`, `prepareOracleUpdatePrice`, `prepareOracleFinalizePosition`, `prepareOracleUnfinalizePosition`, `prepareOracleResolvePositionEarly`, `prepareOracleBatchFinalizePositions`, `prepareOracleBatchResolvePositionsEarly`, `prepareOracleSetResolutionPrice`, `planOracleSeed`, `seedOracleFromJson`, `seedOracleFromJsonFiles`, `prepareOracleSeedPlan`, `executeOracleSeedPlan`, `buildNonce`, `splitNonce`, `readOracleUpdaterRouterLaneSeq`, `readOracleUpdaterRouterNonce`, `toOracleUpdaterRouterTypedMessage`, `computeOracleUpdaterDigest`, `signOracleUpdaterRouterUpdate`, `prepareOracleUpdaterRouterUpdatePricesWithSig`, `preparePoolDeposit`, `preparePoolMint`, `preparePoolWithdraw`, `preparePoolRedeem`, `readCanCall`, `assertCanCallImmediate`, `sendTx`, `selectorFromSignature`, `chunk`, `multicallChunks`, `getAddressBook`, `getVarlaContracts`, `getRequiredVarlaContracts`, `getErc20`, `getErc1155`, `getErc4626`, `decodeEventLogs`, `getEventLogsChunked`, `syncOracleRegistryViaEvents`, `getRecentEvents`, `formatWad`, `formatBps`, `formatPriceE8`, `parseUnits`, `parseWad`, `isSupportedChain`, `assertSupportedChain`, `getChainMeta`, `readAccessManagerBasics`, `readRoleSummary`, `readTargetConfig`, `readHasRole`, `readManyHasRole`, `readManyTargetFunctionRoles`, `readManyTargetConfigs`, `readAdapterInfo`, `readInterestRateStrategyBasics`, `getInterestRateStrategyFromPool`, `readProxyAdminPaused`, `previewCoreDeposit`, `readRepayTiming`, `readPositionCount`, `readOracleGuardsStatus`, `readAccountSnapshot`, `readCoreAddresses`, `readMaxPositionsConfig`, `readAccountPositionsFull`, `readPositionBalances`, `readBorrowerState`, `readPortfolioValue`, `readBorrowers`, `readCoreGlobalDebt`, `readPositionLiquidationConfigOverride`, `readPositionBalance`, `readAccountPositions`, `readBorrowersPage`, `readManyAccountSnapshots`, `readHealthFactor`, `readLiquidationConfig`, `readDefaultLtvConfig`, `readTieredLtvConfig`, `readTierLiquidationConfig`, `readLiquidationParamsForPosition`, `readPositionLtvOverride`, `readLtvForPosition`, `readLiquidationBonusBps`, `readManyLiquidationBonusBps`, `readWalletPositionIds`, `previewBorrow`, `previewRepay`, `readBorrowLimits`, `readManyBorrowLimits`, `readHypotheticalBorrowCapacity`, `computeLiquidationPrice`, `readLiquidationPrice`, `readLenderSnapshot`, `readMaxWithdraw`, `readMaxRedeem`, `readLiquidatorBasics`, `readCanLiquidate`, `readPreviewLiquidation`, `readCalculateLiquidationBonus`, `readBadDebtStatus`, `readMergeLiquidatorBasics`, `readConvertLiquidatorBasics`, `rankPositionsForLiquidation`, `readLiquidationCandidates`, `readOracleRegistry`, `readOracleRegistryPage`, `readOracleFinalizationStatus`, `readOracleConfig`, `readOracleCollateralStatus`, `readTryGetPrice`, `readOraclePriceData`, `readOracleBasics`, `readOracleTiming`, `readConfiguredPositionIds`, `readNegRiskMarketPositionIds`, `readRiskTier`, `readSpotPrice`, `readTwap`, `readPrice`, `readLiquidity`, `readPositionSnapshot`, `readManyPositionSnapshots`, `readOraclePositionMeta`, `readManyOraclePositionMeta`, `hydrateOraclePositionIds`, `readPoolSnapshot`, `readPoolCaps`, `readPoolAccounting`, `readPoolRates`, `readPoolSharePrice`, `readPoolHealthScore`, `readPoolDebtState`, `readPoolCoreAddress`, `readSystemSnapshot`
|
|
121
121
|
|
|
122
|
-
**Types:** `StrategyRateParams`, `SimulatedTx`, `MarketConfigItem`, `OraclePriceUpdateItem`, `OracleLikeForSeeding`, `OracleSeedPlan`, `OracleSeedExecResult`, `MarketConfigItemJson`, `OppositePairItemJson`, `NegRiskMarketItemJson`, `SeedOracleFromJsonResult`, `OracleUpdaterRouterUpdate`, `AccessManagerCanCallLike`, `CanCallResult`, `MulticallChunkOptions`, `ReadonlyContract`, `VarlaContracts`, `GetVarlaContractsParams`, `DecodedEvent`, `GetEventLogsChunkedParams`, `OracleRegistryEntry`, `SyncOracleRegistryViaEventsParams`, `GetRecentEventsParams`, `VarlaChainKey`, `StablecoinKind`, `CollateralMeta`, `ChainMeta`, `ChainKey`, `AddressBook`, `ReadAccessManagerBasics`, `ReadManyHasRoleResult`, `ReadManyTargetFunctionRolesResult`, `ReadManyTargetConfigsResult`, `ReadAdapterInfo`, `InterestRateParams`, `ReadAccountSnapshot`, `ReadRepayTiming`, `ReadPositionCount`, `ReadOracleGuardsStatus`, `ReadCoreAddresses`, `ReadMaxPositionsConfig`, `ReadAccountPositionsFull`, `ReadPositionBalances`, `ReadBorrowerState`, `ReadPortfolioValue`, `ReadCoreGlobalDebt`, `ReadPositionLiquidationConfigOverride`, `ReadBorrowersPage`, `ReadHealthFactor`, `ReadLiquidationConfig`, `ReadDefaultLtvConfig`, `ReadTieredLtvConfig`, `ReadTierLiquidationConfig`, `ReadLiquidationParamsForPosition`, `ReadPositionLtvOverride`, `ReadManyLiquidationBonusBpsRow`, `ReadBorrowLimits`, `ReadWalletPositionIds`, `ReadHypotheticalBorrowCapacity`, `PreviewBorrow`, `PreviewRepay`, `ReadLenderSnapshot`, `ReadLiquidatorBasics`, `ReadCanLiquidate`, `ReadPreviewLiquidation`, `ReadBadDebtStatus`, `LiquidationCandidate`, `ReadLiquidationCandidates`, `ReadOracleRegistryParams`, `ReadOracleRegistryPage`, `ReadOracleConfig`, `ReadOracleFinalizationStatus`, `ReadOracleCollateralStatus`, `ReadTryGetPrice`, `ReadOraclePriceData`, `ReadOracleBasics`, `ReadOracleTiming`, `ReadPositionSnapshot`, `ReadOraclePositionMeta`, `ReadPoolSnapshot`, `ReadPoolDebtState`, `ReadPoolCaps`, `ReadPoolAccounting`, `ReadPoolRates`, `ReadPoolSharePrice`, `ReadPoolHealthScore`, `ReadSystemSnapshot`
|
|
122
|
+
**Types:** `StrategyRateParams`, `SimulatedTx`, `MarketConfigItem`, `OraclePriceUpdateItem`, `OracleLikeForSeeding`, `OracleSeedPlan`, `OracleSeedExecResult`, `MarketConfigItemJson`, `OppositePairItemJson`, `NegRiskMarketItemJson`, `SeedOracleFromJsonResult`, `OracleUpdaterRouterUpdate`, `AccessManagerCanCallLike`, `CanCallResult`, `MulticallChunkOptions`, `ReadonlyContract`, `VarlaContracts`, `GetVarlaContractsParams`, `DecodedEvent`, `GetEventLogsChunkedParams`, `OracleRegistryEntry`, `SyncOracleRegistryViaEventsParams`, `GetRecentEventsParams`, `VarlaChainKey`, `StablecoinKind`, `CollateralMeta`, `ChainMeta`, `ChainKey`, `AddressBook`, `ReadAccessManagerBasics`, `ReadManyHasRoleResult`, `ReadManyTargetFunctionRolesResult`, `ReadManyTargetConfigsResult`, `ReadAdapterInfo`, `InterestRateParams`, `DepositBlockReason`, `PreviewCoreDepositItem`, `PreviewCoreDeposit`, `ReadAccountSnapshot`, `ReadRepayTiming`, `ReadPositionCount`, `ReadOracleGuardsStatus`, `ReadCoreAddresses`, `ReadMaxPositionsConfig`, `ReadAccountPositionsFull`, `ReadPositionBalances`, `ReadBorrowerState`, `ReadPortfolioValue`, `ReadCoreGlobalDebt`, `ReadPositionLiquidationConfigOverride`, `ReadBorrowersPage`, `ReadHealthFactor`, `ReadLiquidationConfig`, `ReadDefaultLtvConfig`, `ReadTieredLtvConfig`, `ReadTierLiquidationConfig`, `ReadLiquidationParamsForPosition`, `ReadPositionLtvOverride`, `ReadManyLiquidationBonusBpsRow`, `ReadBorrowLimits`, `ReadWalletPositionIds`, `ReadHypotheticalBorrowCapacity`, `PreviewBorrow`, `PreviewRepay`, `ComputeLiquidationPriceResult`, `ReadLiquidationPrice`, `ReadLenderSnapshot`, `ReadLiquidatorBasics`, `ReadCanLiquidate`, `ReadPreviewLiquidation`, `ReadBadDebtStatus`, `LiquidationCandidate`, `ReadLiquidationCandidates`, `ReadOracleRegistryParams`, `ReadOracleRegistryPage`, `ReadOracleConfig`, `ReadOracleFinalizationStatus`, `ReadOracleCollateralStatus`, `ReadTryGetPrice`, `ReadOraclePriceData`, `ReadOracleBasics`, `ReadOracleTiming`, `ReadPositionSnapshot`, `ReadOraclePositionMeta`, `ReadPoolSnapshot`, `ReadPoolDebtState`, `ReadPoolCaps`, `ReadPoolAccounting`, `ReadPoolRates`, `ReadPoolSharePrice`, `ReadPoolHealthScore`, `ReadSystemSnapshot`
|
|
123
123
|
|
|
124
124
|
**Constants:** `ORACLE_UPDATER_ROUTER_EIP712`, `ORACLE_UPDATER_ROUTER_TYPES`, `UPDATE_TYPEHASH`, `ORACLE_SIGS`, `ORACLE_EVENTS`, `CORE_EVENTS`, `POOL_EVENTS`, `SUPPORTED_CHAINS`
|
|
125
125
|
|
|
@@ -129,11 +129,11 @@ if (decoded) console.log(formatVarlaError(decoded));
|
|
|
129
129
|
|
|
130
130
|
**Types:** `ReadonlyContract`, `VarlaContracts`, `GetVarlaContractsParams`
|
|
131
131
|
|
|
132
|
-
### `@varla/sdk/views` (
|
|
132
|
+
### `@varla/sdk/views` (89 functions, 63 types)
|
|
133
133
|
|
|
134
|
-
**Functions:** `readAccessManagerBasics`, `readRoleSummary`, `readTargetConfig`, `readHasRole`, `readManyHasRole`, `readManyTargetFunctionRoles`, `readManyTargetConfigs`, `readAdapterInfo`, `readInterestRateStrategyBasics`, `getInterestRateStrategyFromPool`, `readProxyAdminPaused`, `readRepayTiming`, `readPositionCount`, `readOracleGuardsStatus`, `readAccountSnapshot`, `readCoreAddresses`, `readMaxPositionsConfig`, `readAccountPositionsFull`, `readPositionBalances`, `readBorrowerState`, `readPortfolioValue`, `readBorrowers`, `readCoreGlobalDebt`, `readPositionLiquidationConfigOverride`, `readPositionBalance`, `readAccountPositions`, `readBorrowersPage`, `readManyAccountSnapshots`, `readHealthFactor`, `readLiquidationConfig`, `readDefaultLtvConfig`, `readTieredLtvConfig`, `readTierLiquidationConfig`, `readLiquidationParamsForPosition`, `readPositionLtvOverride`, `readLtvForPosition`, `readLiquidationBonusBps`, `readManyLiquidationBonusBps`, `readWalletPositionIds`, `previewBorrow`, `previewRepay`, `readBorrowLimits`, `readManyBorrowLimits`, `readHypotheticalBorrowCapacity`, `readLenderSnapshot`, `readMaxWithdraw`, `readMaxRedeem`, `readLiquidatorBasics`, `readCanLiquidate`, `readPreviewLiquidation`, `readCalculateLiquidationBonus`, `readBadDebtStatus`, `readMergeLiquidatorBasics`, `readConvertLiquidatorBasics`, `rankPositionsForLiquidation`, `readLiquidationCandidates`, `readOracleRegistry`, `readOracleRegistryPage`, `readOracleFinalizationStatus`, `readOracleConfig`, `readOracleCollateralStatus`, `readTryGetPrice`, `readOraclePriceData`, `readOracleBasics`, `readOracleTiming`, `readConfiguredPositionIds`, `readNegRiskMarketPositionIds`, `readRiskTier`, `readSpotPrice`, `readTwap`, `readPrice`, `readLiquidity`, `readPositionSnapshot`, `readManyPositionSnapshots`, `readOraclePositionMeta`, `readManyOraclePositionMeta`, `hydrateOraclePositionIds`, `readPoolSnapshot`, `readPoolCaps`, `readPoolAccounting`, `readPoolRates`, `readPoolSharePrice`, `readPoolHealthScore`, `readPoolDebtState`, `readPoolCoreAddress`, `readSystemSnapshot`
|
|
134
|
+
**Functions:** `readAccessManagerBasics`, `readRoleSummary`, `readTargetConfig`, `readHasRole`, `readManyHasRole`, `readManyTargetFunctionRoles`, `readManyTargetConfigs`, `readAdapterInfo`, `readInterestRateStrategyBasics`, `getInterestRateStrategyFromPool`, `readProxyAdminPaused`, `previewCoreDeposit`, `readRepayTiming`, `readPositionCount`, `readOracleGuardsStatus`, `readAccountSnapshot`, `readCoreAddresses`, `readMaxPositionsConfig`, `readAccountPositionsFull`, `readPositionBalances`, `readBorrowerState`, `readPortfolioValue`, `readBorrowers`, `readCoreGlobalDebt`, `readPositionLiquidationConfigOverride`, `readPositionBalance`, `readAccountPositions`, `readBorrowersPage`, `readManyAccountSnapshots`, `readHealthFactor`, `readLiquidationConfig`, `readDefaultLtvConfig`, `readTieredLtvConfig`, `readTierLiquidationConfig`, `readLiquidationParamsForPosition`, `readPositionLtvOverride`, `readLtvForPosition`, `readLiquidationBonusBps`, `readManyLiquidationBonusBps`, `readWalletPositionIds`, `previewBorrow`, `previewRepay`, `readBorrowLimits`, `readManyBorrowLimits`, `readHypotheticalBorrowCapacity`, `computeLiquidationPrice`, `readLiquidationPrice`, `readLenderSnapshot`, `readMaxWithdraw`, `readMaxRedeem`, `readLiquidatorBasics`, `readCanLiquidate`, `readPreviewLiquidation`, `readCalculateLiquidationBonus`, `readBadDebtStatus`, `readMergeLiquidatorBasics`, `readConvertLiquidatorBasics`, `rankPositionsForLiquidation`, `readLiquidationCandidates`, `readOracleRegistry`, `readOracleRegistryPage`, `readOracleFinalizationStatus`, `readOracleConfig`, `readOracleCollateralStatus`, `readTryGetPrice`, `readOraclePriceData`, `readOracleBasics`, `readOracleTiming`, `readConfiguredPositionIds`, `readNegRiskMarketPositionIds`, `readRiskTier`, `readSpotPrice`, `readTwap`, `readPrice`, `readLiquidity`, `readPositionSnapshot`, `readManyPositionSnapshots`, `readOraclePositionMeta`, `readManyOraclePositionMeta`, `hydrateOraclePositionIds`, `readPoolSnapshot`, `readPoolCaps`, `readPoolAccounting`, `readPoolRates`, `readPoolSharePrice`, `readPoolHealthScore`, `readPoolDebtState`, `readPoolCoreAddress`, `readSystemSnapshot`
|
|
135
135
|
|
|
136
|
-
**Types:** `ReadAccessManagerBasics`, `ReadManyHasRoleResult`, `ReadManyTargetFunctionRolesResult`, `ReadManyTargetConfigsResult`, `ReadAdapterInfo`, `InterestRateParams`, `ReadAccountSnapshot`, `ReadRepayTiming`, `ReadPositionCount`, `ReadOracleGuardsStatus`, `ReadCoreAddresses`, `ReadMaxPositionsConfig`, `ReadAccountPositionsFull`, `ReadPositionBalances`, `ReadBorrowerState`, `ReadPortfolioValue`, `ReadCoreGlobalDebt`, `ReadPositionLiquidationConfigOverride`, `ReadBorrowersPage`, `ReadHealthFactor`, `ReadLiquidationConfig`, `ReadDefaultLtvConfig`, `ReadTieredLtvConfig`, `ReadTierLiquidationConfig`, `ReadLiquidationParamsForPosition`, `ReadPositionLtvOverride`, `ReadManyLiquidationBonusBpsRow`, `ReadBorrowLimits`, `ReadWalletPositionIds`, `ReadHypotheticalBorrowCapacity`, `PreviewBorrow`, `PreviewRepay`, `ReadLenderSnapshot`, `ReadLiquidatorBasics`, `ReadCanLiquidate`, `ReadPreviewLiquidation`, `ReadBadDebtStatus`, `LiquidationCandidate`, `ReadLiquidationCandidates`, `ReadOracleRegistryParams`, `ReadOracleRegistryPage`, `ReadOracleConfig`, `ReadOracleFinalizationStatus`, `ReadOracleCollateralStatus`, `ReadTryGetPrice`, `ReadOraclePriceData`, `ReadOracleBasics`, `ReadOracleTiming`, `ReadPositionSnapshot`, `ReadOraclePositionMeta`, `ReadPoolSnapshot`, `ReadPoolDebtState`, `ReadPoolCaps`, `ReadPoolAccounting`, `ReadPoolRates`, `ReadPoolSharePrice`, `ReadPoolHealthScore`, `ReadSystemSnapshot`
|
|
136
|
+
**Types:** `ReadAccessManagerBasics`, `ReadManyHasRoleResult`, `ReadManyTargetFunctionRolesResult`, `ReadManyTargetConfigsResult`, `ReadAdapterInfo`, `InterestRateParams`, `DepositBlockReason`, `PreviewCoreDepositItem`, `PreviewCoreDeposit`, `ReadAccountSnapshot`, `ReadRepayTiming`, `ReadPositionCount`, `ReadOracleGuardsStatus`, `ReadCoreAddresses`, `ReadMaxPositionsConfig`, `ReadAccountPositionsFull`, `ReadPositionBalances`, `ReadBorrowerState`, `ReadPortfolioValue`, `ReadCoreGlobalDebt`, `ReadPositionLiquidationConfigOverride`, `ReadBorrowersPage`, `ReadHealthFactor`, `ReadLiquidationConfig`, `ReadDefaultLtvConfig`, `ReadTieredLtvConfig`, `ReadTierLiquidationConfig`, `ReadLiquidationParamsForPosition`, `ReadPositionLtvOverride`, `ReadManyLiquidationBonusBpsRow`, `ReadBorrowLimits`, `ReadWalletPositionIds`, `ReadHypotheticalBorrowCapacity`, `PreviewBorrow`, `PreviewRepay`, `ComputeLiquidationPriceResult`, `ReadLiquidationPrice`, `ReadLenderSnapshot`, `ReadLiquidatorBasics`, `ReadCanLiquidate`, `ReadPreviewLiquidation`, `ReadBadDebtStatus`, `LiquidationCandidate`, `ReadLiquidationCandidates`, `ReadOracleRegistryParams`, `ReadOracleRegistryPage`, `ReadOracleConfig`, `ReadOracleFinalizationStatus`, `ReadOracleCollateralStatus`, `ReadTryGetPrice`, `ReadOraclePriceData`, `ReadOracleBasics`, `ReadOracleTiming`, `ReadPositionSnapshot`, `ReadOraclePositionMeta`, `ReadPoolSnapshot`, `ReadPoolDebtState`, `ReadPoolCaps`, `ReadPoolAccounting`, `ReadPoolRates`, `ReadPoolSharePrice`, `ReadPoolHealthScore`, `ReadSystemSnapshot`
|
|
137
137
|
|
|
138
138
|
### `@varla/sdk/actions` (71 functions, 14 types, 4 constants)
|
|
139
139
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @varla-xyz/protocol
|
|
2
2
|
|
|
3
|
+
## 2.10.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 5eea9ac: Add previewCoreDeposit pre-flight validation and related types for deposit readiness checks.
|
|
8
|
+
|
|
9
|
+
- Introduce `previewCoreDeposit` to mirror core deposit validation with per-position reasons and max-position checks.,- Export new `DepositBlockReason`, `PreviewCoreDepositItem`, and `PreviewCoreDeposit` types for deposit preflight results.
|
|
10
|
+
|
|
11
|
+
## 2.9.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- 05786c6: Added liquidation price helpers to compute and read estimated liquidation thresholds for positions.
|
|
16
|
+
|
|
17
|
+
- Added computeLiquidationPrice pure-math helper with result type for estimating liquidation prices.,- Added readLiquidationPrice to fetch account and oracle data and return liquidation price details.
|
|
18
|
+
|
|
3
19
|
## 2.8.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
package/dist/views/core.d.ts
CHANGED
|
@@ -1,4 +1,94 @@
|
|
|
1
1
|
import { type Address } from "viem";
|
|
2
|
+
/**
|
|
3
|
+
* Reason a deposit would be rejected for a specific position.
|
|
4
|
+
*
|
|
5
|
+
* - `"zero-amount"` — caller passed `amount === 0n`.
|
|
6
|
+
* - `"not-configured"` — position has never been configured in the oracle.
|
|
7
|
+
* - `"deposit-not-allowed"` — position is in early-closure window or already resolved.
|
|
8
|
+
* - `"invalid-collateral"` — oracle reports the position as invalid collateral
|
|
9
|
+
* (stale price, low liquidity, manually invalidated, etc.).
|
|
10
|
+
*/
|
|
11
|
+
export type DepositBlockReason = "zero-amount" | "not-configured" | "deposit-not-allowed" | "invalid-collateral";
|
|
12
|
+
export type PreviewCoreDepositItem = {
|
|
13
|
+
positionId: bigint;
|
|
14
|
+
amount: bigint;
|
|
15
|
+
/** `true` when this individual position passes all pre-flight checks. */
|
|
16
|
+
ok: boolean;
|
|
17
|
+
/** Present only when `ok === false`. */
|
|
18
|
+
reason?: DepositBlockReason;
|
|
19
|
+
};
|
|
20
|
+
export type PreviewCoreDeposit = {
|
|
21
|
+
/** `true` only when every position passes AND account-level checks pass. */
|
|
22
|
+
canDeposit: boolean;
|
|
23
|
+
/** Per-position results aligned to input order. */
|
|
24
|
+
items: PreviewCoreDepositItem[];
|
|
25
|
+
/** Current deposited position count for the user. */
|
|
26
|
+
currentPositionCount: bigint;
|
|
27
|
+
/** Max positions allowed by Core. */
|
|
28
|
+
maxPositions: bigint;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the deposit would exceed the max-positions limit.
|
|
31
|
+
*
|
|
32
|
+
* Only `true` when depositing would push the count above `maxPositions`.
|
|
33
|
+
* New positions (not already deposited) are counted.
|
|
34
|
+
*/
|
|
35
|
+
wouldExceedMaxPositions: boolean;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Pre-flight check that mirrors VarlaCore.deposit() validation.
|
|
39
|
+
*
|
|
40
|
+
* Frontends should call this **before** `prepareCoreDeposit` to show clear,
|
|
41
|
+
* actionable error messages instead of raw revert data.
|
|
42
|
+
*
|
|
43
|
+
* Checks (per position):
|
|
44
|
+
* 1. `amount > 0`
|
|
45
|
+
* 2. `oracle.isDepositAllowed(positionId)` — blocks inside early-closure window / post-resolution
|
|
46
|
+
* 3. `oracle.isValidCollateral(positionId)` — stale, low-liquidity, or manually invalidated
|
|
47
|
+
*
|
|
48
|
+
* Also enriches with `oracle.isConfigured()` so the frontend can distinguish
|
|
49
|
+
* "not configured" (market not listed) from "early-closure" (market closing soon).
|
|
50
|
+
*
|
|
51
|
+
* Account-level check:
|
|
52
|
+
* - Would the deposit exceed `maxPositions`?
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* import { previewCoreDeposit } from "@varla/sdk/views";
|
|
57
|
+
*
|
|
58
|
+
* const preview = await previewCoreDeposit({
|
|
59
|
+
* oracle, core,
|
|
60
|
+
* user: "0x...",
|
|
61
|
+
* positionIds: [posId],
|
|
62
|
+
* amounts: [amount],
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* if (!preview.canDeposit) {
|
|
66
|
+
* for (const item of preview.items) {
|
|
67
|
+
* if (!item.ok) console.log(`Position ${item.positionId}: ${item.reason}`);
|
|
68
|
+
* }
|
|
69
|
+
* if (preview.wouldExceedMaxPositions) console.log("Too many positions");
|
|
70
|
+
* }
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function previewCoreDeposit(params: {
|
|
74
|
+
oracle: {
|
|
75
|
+
read: {
|
|
76
|
+
isConfigured: (args: readonly [bigint]) => Promise<boolean>;
|
|
77
|
+
isDepositAllowed: (args: readonly [bigint]) => Promise<boolean>;
|
|
78
|
+
isValidCollateral: (args: readonly [bigint]) => Promise<boolean>;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
core: {
|
|
82
|
+
read: {
|
|
83
|
+
getPositionCount: (args: readonly [Address]) => Promise<bigint>;
|
|
84
|
+
maxPositions: () => Promise<bigint>;
|
|
85
|
+
positionBalances: (args: readonly [Address, bigint]) => Promise<bigint>;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
user: Address;
|
|
89
|
+
positionIds: readonly bigint[];
|
|
90
|
+
amounts: readonly bigint[];
|
|
91
|
+
}): Promise<PreviewCoreDeposit>;
|
|
2
92
|
export type ReadAccountSnapshot = {
|
|
3
93
|
portfolioValue: bigint;
|
|
4
94
|
collateralValue: bigint;
|
|
@@ -636,4 +726,108 @@ export declare function readHypotheticalBorrowCapacity(params: {
|
|
|
636
726
|
walletPositionIds?: readonly bigint[];
|
|
637
727
|
chunkSize?: number;
|
|
638
728
|
}): Promise<ReadHypotheticalBorrowCapacity>;
|
|
729
|
+
export type ComputeLiquidationPriceResult = {
|
|
730
|
+
/**
|
|
731
|
+
* Price (8 decimals) at which the account's HF reaches 1.0 for this position.
|
|
732
|
+
*
|
|
733
|
+
* - `0n` when there is no debt, no balance, or when other collateral already
|
|
734
|
+
* covers the entire debt (this position cannot trigger liquidation alone).
|
|
735
|
+
*/
|
|
736
|
+
liquidationPriceE8: bigint;
|
|
737
|
+
};
|
|
738
|
+
/**
|
|
739
|
+
* Pure-math liquidation price estimator (zero RPC, zero side-effects).
|
|
740
|
+
*
|
|
741
|
+
* For a **single-collateral** account pass `otherCollateralValue: 0n` (default).
|
|
742
|
+
*
|
|
743
|
+
* For a **multi-collateral** (cross-margin) account, pass the collateral-value
|
|
744
|
+
* contributed by *all other* positions so the result answers: "at what price for
|
|
745
|
+
* *this* position (holding everything else constant) does HF hit 1.0?"
|
|
746
|
+
*
|
|
747
|
+
* Formula (single-collateral):
|
|
748
|
+
* ```
|
|
749
|
+
* HF = (balance × price × effectiveLTV) / debt = 1.0
|
|
750
|
+
* → liquidationPrice = debt / (balance × effectiveLTV) [scaled to E8]
|
|
751
|
+
* ```
|
|
752
|
+
*
|
|
753
|
+
* Formula (multi-collateral):
|
|
754
|
+
* ```
|
|
755
|
+
* HF = (thisCV + otherCV) / debt = 1.0
|
|
756
|
+
* → thisCV = debt - otherCV
|
|
757
|
+
* → price = (debt - otherCV) / (balance × effectiveLTV) [scaled to E8]
|
|
758
|
+
* ```
|
|
759
|
+
*
|
|
760
|
+
* Rounds **up** (conservative: liquidation may happen slightly sooner).
|
|
761
|
+
*/
|
|
762
|
+
export declare function computeLiquidationPrice(params: {
|
|
763
|
+
/** User's total debt (collateral base units). */
|
|
764
|
+
debt: bigint;
|
|
765
|
+
/** Token balance of the target position (ERC1155 base units). */
|
|
766
|
+
positionBalance: bigint;
|
|
767
|
+
/** Effective LTV for the position (WAD, 1e18 = 100%). */
|
|
768
|
+
ltvWad: bigint;
|
|
769
|
+
/**
|
|
770
|
+
* Risk-adjusted collateral value contributed by all *other* deposited positions.
|
|
771
|
+
*
|
|
772
|
+
* For single-collateral accounts this is `0n` (default).
|
|
773
|
+
* For cross-margin, compute as: `totalCollateralValue - thisPositionCollateralValue`.
|
|
774
|
+
*/
|
|
775
|
+
otherCollateralValue?: bigint;
|
|
776
|
+
}): ComputeLiquidationPriceResult;
|
|
777
|
+
export type ReadLiquidationPrice = {
|
|
778
|
+
/** The position whose liquidation price was computed. */
|
|
779
|
+
positionId: bigint;
|
|
780
|
+
/**
|
|
781
|
+
* Price (8 decimals) at which HF = 1.0 for this position.
|
|
782
|
+
*
|
|
783
|
+
* `0n` when there is no debt, no deposited balance for this position,
|
|
784
|
+
* or when the other collateral already covers the entire debt.
|
|
785
|
+
*/
|
|
786
|
+
liquidationPriceE8: bigint;
|
|
787
|
+
/** Current oracle price for this position (8 decimals). */
|
|
788
|
+
currentPriceE8: bigint;
|
|
789
|
+
/** User's total debt (collateral base units). */
|
|
790
|
+
debt: bigint;
|
|
791
|
+
/** User's deposited balance for this position. */
|
|
792
|
+
positionBalance: bigint;
|
|
793
|
+
/** Effective LTV (WAD) used in the computation. */
|
|
794
|
+
ltvWad: bigint;
|
|
795
|
+
/** Risk-adjusted collateral value from all *other* positions. */
|
|
796
|
+
otherCollateralValue: bigint;
|
|
797
|
+
};
|
|
798
|
+
/**
|
|
799
|
+
* Reads on-chain state and computes the estimated liquidation price for a
|
|
800
|
+
* specific collateral position within a borrower's account.
|
|
801
|
+
*
|
|
802
|
+
* This is the ergonomic "do-it-all" helper: it fetches the account snapshot,
|
|
803
|
+
* position balance, oracle price, and effective LTV in parallel, then delegates
|
|
804
|
+
* to the pure-math {@link computeLiquidationPrice}.
|
|
805
|
+
*
|
|
806
|
+
* For multi-collateral accounts, this answers: "at what price for *this specific*
|
|
807
|
+
* position (holding all other prices constant) would the account's HF hit 1.0?"
|
|
808
|
+
*
|
|
809
|
+
* @example
|
|
810
|
+
* ```ts
|
|
811
|
+
* import { readLiquidationPrice } from "@varla/sdk/views";
|
|
812
|
+
*
|
|
813
|
+
* const result = await readLiquidationPrice({ core, oracle, user, positionId });
|
|
814
|
+
* console.log(`Liquidation at $${Number(result.liquidationPriceE8) / 1e8}`);
|
|
815
|
+
* ```
|
|
816
|
+
*/
|
|
817
|
+
export declare function readLiquidationPrice(params: {
|
|
818
|
+
core: {
|
|
819
|
+
read: {
|
|
820
|
+
getAccountSummary: (args: readonly [Address]) => Promise<unknown>;
|
|
821
|
+
positionBalances: (args: readonly [Address, bigint]) => Promise<bigint>;
|
|
822
|
+
getLtvForPosition: (args: readonly [bigint]) => Promise<bigint>;
|
|
823
|
+
};
|
|
824
|
+
};
|
|
825
|
+
oracle: {
|
|
826
|
+
read: {
|
|
827
|
+
getPositionSnapshot: (args: readonly [bigint]) => Promise<unknown>;
|
|
828
|
+
};
|
|
829
|
+
};
|
|
830
|
+
user: Address;
|
|
831
|
+
positionId: bigint;
|
|
832
|
+
}): Promise<ReadLiquidationPrice>;
|
|
639
833
|
//# sourceMappingURL=core.d.ts.map
|
package/dist/views/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/views/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/views/core.ts"],"names":[],"mappings":"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"}
|
package/dist/views/core.js
CHANGED
|
@@ -2,6 +2,121 @@
|
|
|
2
2
|
import { erc1155Abi } from "viem";
|
|
3
3
|
import { multicallChunks } from "../batch.js";
|
|
4
4
|
import { abis } from "../generated.js";
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Constants (local, matching leverage/types.ts)
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
const _WAD = 1000000000000000000n;
|
|
9
|
+
const _E8 = 100000000n;
|
|
10
|
+
/**
|
|
11
|
+
* Pre-flight check that mirrors VarlaCore.deposit() validation.
|
|
12
|
+
*
|
|
13
|
+
* Frontends should call this **before** `prepareCoreDeposit` to show clear,
|
|
14
|
+
* actionable error messages instead of raw revert data.
|
|
15
|
+
*
|
|
16
|
+
* Checks (per position):
|
|
17
|
+
* 1. `amount > 0`
|
|
18
|
+
* 2. `oracle.isDepositAllowed(positionId)` — blocks inside early-closure window / post-resolution
|
|
19
|
+
* 3. `oracle.isValidCollateral(positionId)` — stale, low-liquidity, or manually invalidated
|
|
20
|
+
*
|
|
21
|
+
* Also enriches with `oracle.isConfigured()` so the frontend can distinguish
|
|
22
|
+
* "not configured" (market not listed) from "early-closure" (market closing soon).
|
|
23
|
+
*
|
|
24
|
+
* Account-level check:
|
|
25
|
+
* - Would the deposit exceed `maxPositions`?
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* import { previewCoreDeposit } from "@varla/sdk/views";
|
|
30
|
+
*
|
|
31
|
+
* const preview = await previewCoreDeposit({
|
|
32
|
+
* oracle, core,
|
|
33
|
+
* user: "0x...",
|
|
34
|
+
* positionIds: [posId],
|
|
35
|
+
* amounts: [amount],
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* if (!preview.canDeposit) {
|
|
39
|
+
* for (const item of preview.items) {
|
|
40
|
+
* if (!item.ok) console.log(`Position ${item.positionId}: ${item.reason}`);
|
|
41
|
+
* }
|
|
42
|
+
* if (preview.wouldExceedMaxPositions) console.log("Too many positions");
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
// wraps: VarlaOracle.isConfigured,VarlaOracle.isDepositAllowed,VarlaOracle.isValidCollateral,VarlaCore.getPositionCount,VarlaCore.maxPositions,VarlaCore.positionBalances
|
|
47
|
+
export async function previewCoreDeposit(params) {
|
|
48
|
+
const { oracle, core, user, positionIds, amounts } = params;
|
|
49
|
+
if (positionIds.length !== amounts.length) {
|
|
50
|
+
throw new Error("positionIds and amounts must have the same length");
|
|
51
|
+
}
|
|
52
|
+
// Parallel: oracle checks per-position + account-level reads.
|
|
53
|
+
const [oracleResults, positionCount, maxPositions, existingBalances] = await Promise.all([
|
|
54
|
+
// Per-position oracle checks (all in parallel).
|
|
55
|
+
Promise.all(positionIds.map(async (pid) => {
|
|
56
|
+
const [isConfigured, isDepositAllowed, isValidCollateral] = await Promise.all([
|
|
57
|
+
oracle.read.isConfigured([pid]),
|
|
58
|
+
oracle.read.isDepositAllowed([pid]),
|
|
59
|
+
oracle.read.isValidCollateral([pid]),
|
|
60
|
+
]);
|
|
61
|
+
return { isConfigured, isDepositAllowed, isValidCollateral };
|
|
62
|
+
})),
|
|
63
|
+
// Account-level.
|
|
64
|
+
core.read.getPositionCount([user]),
|
|
65
|
+
core.read.maxPositions(),
|
|
66
|
+
// Check which positions user already has deposited (for max-positions calc).
|
|
67
|
+
Promise.all(positionIds.map((pid) => core.read.positionBalances([user, pid]))),
|
|
68
|
+
]);
|
|
69
|
+
// Build per-position items.
|
|
70
|
+
const items = [];
|
|
71
|
+
let allItemsOk = true;
|
|
72
|
+
for (let i = 0; i < positionIds.length; i++) {
|
|
73
|
+
const pid = positionIds[i];
|
|
74
|
+
const amount = amounts[i];
|
|
75
|
+
const orc = oracleResults[i];
|
|
76
|
+
let ok = true;
|
|
77
|
+
let reason;
|
|
78
|
+
if (amount === 0n) {
|
|
79
|
+
ok = false;
|
|
80
|
+
reason = "zero-amount";
|
|
81
|
+
}
|
|
82
|
+
else if (!orc.isConfigured) {
|
|
83
|
+
ok = false;
|
|
84
|
+
reason = "not-configured";
|
|
85
|
+
}
|
|
86
|
+
else if (!orc.isDepositAllowed) {
|
|
87
|
+
ok = false;
|
|
88
|
+
reason = "deposit-not-allowed";
|
|
89
|
+
}
|
|
90
|
+
else if (!orc.isValidCollateral) {
|
|
91
|
+
ok = false;
|
|
92
|
+
reason = "invalid-collateral";
|
|
93
|
+
}
|
|
94
|
+
if (!ok)
|
|
95
|
+
allItemsOk = false;
|
|
96
|
+
items.push(reason !== undefined
|
|
97
|
+
? { positionId: pid, amount, ok, reason }
|
|
98
|
+
: { positionId: pid, amount, ok });
|
|
99
|
+
}
|
|
100
|
+
// Count how many NEW positions this deposit would add.
|
|
101
|
+
const uniqueNewPositionIds = new Set();
|
|
102
|
+
for (let i = 0; i < positionIds.length; i++) {
|
|
103
|
+
const pid = positionIds[i];
|
|
104
|
+
const existingBal = existingBalances[i];
|
|
105
|
+
if (existingBal === 0n) {
|
|
106
|
+
uniqueNewPositionIds.add(pid);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const newCount = positionCount + BigInt(uniqueNewPositionIds.size);
|
|
110
|
+
const wouldExceedMaxPositions = newCount > maxPositions;
|
|
111
|
+
const canDeposit = allItemsOk && !wouldExceedMaxPositions;
|
|
112
|
+
return {
|
|
113
|
+
canDeposit,
|
|
114
|
+
items,
|
|
115
|
+
currentPositionCount: positionCount,
|
|
116
|
+
maxPositions,
|
|
117
|
+
wouldExceedMaxPositions,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
5
120
|
/**
|
|
6
121
|
* Returns repay-timing info for UIs/backends.
|
|
7
122
|
*
|
|
@@ -840,4 +955,104 @@ export async function readHypotheticalBorrowCapacity(params) {
|
|
|
840
955
|
potential: { collateralValue: potentialCollateralValue, maxBorrow: potentialMaxBorrow },
|
|
841
956
|
};
|
|
842
957
|
}
|
|
958
|
+
/**
|
|
959
|
+
* Pure-math liquidation price estimator (zero RPC, zero side-effects).
|
|
960
|
+
*
|
|
961
|
+
* For a **single-collateral** account pass `otherCollateralValue: 0n` (default).
|
|
962
|
+
*
|
|
963
|
+
* For a **multi-collateral** (cross-margin) account, pass the collateral-value
|
|
964
|
+
* contributed by *all other* positions so the result answers: "at what price for
|
|
965
|
+
* *this* position (holding everything else constant) does HF hit 1.0?"
|
|
966
|
+
*
|
|
967
|
+
* Formula (single-collateral):
|
|
968
|
+
* ```
|
|
969
|
+
* HF = (balance × price × effectiveLTV) / debt = 1.0
|
|
970
|
+
* → liquidationPrice = debt / (balance × effectiveLTV) [scaled to E8]
|
|
971
|
+
* ```
|
|
972
|
+
*
|
|
973
|
+
* Formula (multi-collateral):
|
|
974
|
+
* ```
|
|
975
|
+
* HF = (thisCV + otherCV) / debt = 1.0
|
|
976
|
+
* → thisCV = debt - otherCV
|
|
977
|
+
* → price = (debt - otherCV) / (balance × effectiveLTV) [scaled to E8]
|
|
978
|
+
* ```
|
|
979
|
+
*
|
|
980
|
+
* Rounds **up** (conservative: liquidation may happen slightly sooner).
|
|
981
|
+
*/
|
|
982
|
+
export function computeLiquidationPrice(params) {
|
|
983
|
+
const { debt, positionBalance, ltvWad, otherCollateralValue = 0n } = params;
|
|
984
|
+
// No debt → no liquidation risk.
|
|
985
|
+
if (debt <= 0n)
|
|
986
|
+
return { liquidationPriceE8: 0n };
|
|
987
|
+
// No balance → cannot compute a meaningful price.
|
|
988
|
+
if (positionBalance <= 0n)
|
|
989
|
+
return { liquidationPriceE8: 0n };
|
|
990
|
+
// Zero LTV → position contributes nothing to collateral value; price is irrelevant.
|
|
991
|
+
if (ltvWad <= 0n)
|
|
992
|
+
return { liquidationPriceE8: 0n };
|
|
993
|
+
// How much collateral value must THIS position contribute to reach HF = 1.0?
|
|
994
|
+
const requiredCV = debt - otherCollateralValue;
|
|
995
|
+
// Other positions already cover the debt → this position alone can't trigger liquidation.
|
|
996
|
+
if (requiredCV <= 0n)
|
|
997
|
+
return { liquidationPriceE8: 0n };
|
|
998
|
+
// requiredCV = balance × price × effectiveLTV / (E8 × WAD)
|
|
999
|
+
// → price = requiredCV × E8 × WAD / (balance × effectiveLTV)
|
|
1000
|
+
// Round up for conservative estimate.
|
|
1001
|
+
const numerator = requiredCV * _E8 * _WAD;
|
|
1002
|
+
const denominator = positionBalance * ltvWad;
|
|
1003
|
+
if (denominator === 0n)
|
|
1004
|
+
return { liquidationPriceE8: 0n };
|
|
1005
|
+
const liquidationPriceE8 = (numerator + denominator - 1n) / denominator;
|
|
1006
|
+
return { liquidationPriceE8 };
|
|
1007
|
+
}
|
|
1008
|
+
/**
|
|
1009
|
+
* Reads on-chain state and computes the estimated liquidation price for a
|
|
1010
|
+
* specific collateral position within a borrower's account.
|
|
1011
|
+
*
|
|
1012
|
+
* This is the ergonomic "do-it-all" helper: it fetches the account snapshot,
|
|
1013
|
+
* position balance, oracle price, and effective LTV in parallel, then delegates
|
|
1014
|
+
* to the pure-math {@link computeLiquidationPrice}.
|
|
1015
|
+
*
|
|
1016
|
+
* For multi-collateral accounts, this answers: "at what price for *this specific*
|
|
1017
|
+
* position (holding all other prices constant) would the account's HF hit 1.0?"
|
|
1018
|
+
*
|
|
1019
|
+
* @example
|
|
1020
|
+
* ```ts
|
|
1021
|
+
* import { readLiquidationPrice } from "@varla/sdk/views";
|
|
1022
|
+
*
|
|
1023
|
+
* const result = await readLiquidationPrice({ core, oracle, user, positionId });
|
|
1024
|
+
* console.log(`Liquidation at $${Number(result.liquidationPriceE8) / 1e8}`);
|
|
1025
|
+
* ```
|
|
1026
|
+
*/
|
|
1027
|
+
// wraps: VarlaCore.getAccountSummary,VarlaCore.positionBalances,VarlaCore.getLtvForPosition,VarlaOracle.getPositionSnapshot
|
|
1028
|
+
export async function readLiquidationPrice(params) {
|
|
1029
|
+
// Parallel reads: account snapshot, position balance, effective LTV, oracle price.
|
|
1030
|
+
const [snap, balance, ltvWad, oracleSnapRaw] = await Promise.all([
|
|
1031
|
+
readAccountSnapshot({ core: params.core, user: params.user }),
|
|
1032
|
+
params.core.read.positionBalances([params.user, params.positionId]),
|
|
1033
|
+
params.core.read.getLtvForPosition([params.positionId]),
|
|
1034
|
+
params.oracle.read.getPositionSnapshot([params.positionId]),
|
|
1035
|
+
]);
|
|
1036
|
+
// Extract current price from oracle snapshot.
|
|
1037
|
+
const oSnap = _normalizeOraclePositionSnapshot(oracleSnapRaw, params.positionId);
|
|
1038
|
+
const currentPriceE8 = oSnap.priceE8;
|
|
1039
|
+
// Compute this position's risk-adjusted collateral value (mirrors Core accounting).
|
|
1040
|
+
const thisPositionCV = (balance * currentPriceE8 * ltvWad) / (_E8 * _WAD);
|
|
1041
|
+
const otherCollateralValue = snap.collateralValue > thisPositionCV ? snap.collateralValue - thisPositionCV : 0n;
|
|
1042
|
+
const { liquidationPriceE8 } = computeLiquidationPrice({
|
|
1043
|
+
debt: snap.debt,
|
|
1044
|
+
positionBalance: balance,
|
|
1045
|
+
ltvWad,
|
|
1046
|
+
otherCollateralValue,
|
|
1047
|
+
});
|
|
1048
|
+
return {
|
|
1049
|
+
positionId: params.positionId,
|
|
1050
|
+
liquidationPriceE8,
|
|
1051
|
+
currentPriceE8,
|
|
1052
|
+
debt: snap.debt,
|
|
1053
|
+
positionBalance: balance,
|
|
1054
|
+
ltvWad,
|
|
1055
|
+
otherCollateralValue,
|
|
1056
|
+
};
|
|
1057
|
+
}
|
|
843
1058
|
//# sourceMappingURL=core.js.map
|
package/dist/views/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/views/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/views/core.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/views/core.ts
CHANGED
|
@@ -4,6 +4,198 @@ import { type Address, erc1155Abi } from "viem";
|
|
|
4
4
|
import { multicallChunks } from "../batch.js";
|
|
5
5
|
import { abis } from "../generated.js";
|
|
6
6
|
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Constants (local, matching leverage/types.ts)
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
const _WAD = 1_000_000_000_000_000_000n;
|
|
12
|
+
const _E8 = 100_000_000n;
|
|
13
|
+
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// Deposit pre-flight (previewCoreDeposit)
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Reason a deposit would be rejected for a specific position.
|
|
20
|
+
*
|
|
21
|
+
* - `"zero-amount"` — caller passed `amount === 0n`.
|
|
22
|
+
* - `"not-configured"` — position has never been configured in the oracle.
|
|
23
|
+
* - `"deposit-not-allowed"` — position is in early-closure window or already resolved.
|
|
24
|
+
* - `"invalid-collateral"` — oracle reports the position as invalid collateral
|
|
25
|
+
* (stale price, low liquidity, manually invalidated, etc.).
|
|
26
|
+
*/
|
|
27
|
+
export type DepositBlockReason =
|
|
28
|
+
| "zero-amount"
|
|
29
|
+
| "not-configured"
|
|
30
|
+
| "deposit-not-allowed"
|
|
31
|
+
| "invalid-collateral";
|
|
32
|
+
|
|
33
|
+
export type PreviewCoreDepositItem = {
|
|
34
|
+
positionId: bigint;
|
|
35
|
+
amount: bigint;
|
|
36
|
+
/** `true` when this individual position passes all pre-flight checks. */
|
|
37
|
+
ok: boolean;
|
|
38
|
+
/** Present only when `ok === false`. */
|
|
39
|
+
reason?: DepositBlockReason;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export type PreviewCoreDeposit = {
|
|
43
|
+
/** `true` only when every position passes AND account-level checks pass. */
|
|
44
|
+
canDeposit: boolean;
|
|
45
|
+
/** Per-position results aligned to input order. */
|
|
46
|
+
items: PreviewCoreDepositItem[];
|
|
47
|
+
/** Current deposited position count for the user. */
|
|
48
|
+
currentPositionCount: bigint;
|
|
49
|
+
/** Max positions allowed by Core. */
|
|
50
|
+
maxPositions: bigint;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the deposit would exceed the max-positions limit.
|
|
53
|
+
*
|
|
54
|
+
* Only `true` when depositing would push the count above `maxPositions`.
|
|
55
|
+
* New positions (not already deposited) are counted.
|
|
56
|
+
*/
|
|
57
|
+
wouldExceedMaxPositions: boolean;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Pre-flight check that mirrors VarlaCore.deposit() validation.
|
|
62
|
+
*
|
|
63
|
+
* Frontends should call this **before** `prepareCoreDeposit` to show clear,
|
|
64
|
+
* actionable error messages instead of raw revert data.
|
|
65
|
+
*
|
|
66
|
+
* Checks (per position):
|
|
67
|
+
* 1. `amount > 0`
|
|
68
|
+
* 2. `oracle.isDepositAllowed(positionId)` — blocks inside early-closure window / post-resolution
|
|
69
|
+
* 3. `oracle.isValidCollateral(positionId)` — stale, low-liquidity, or manually invalidated
|
|
70
|
+
*
|
|
71
|
+
* Also enriches with `oracle.isConfigured()` so the frontend can distinguish
|
|
72
|
+
* "not configured" (market not listed) from "early-closure" (market closing soon).
|
|
73
|
+
*
|
|
74
|
+
* Account-level check:
|
|
75
|
+
* - Would the deposit exceed `maxPositions`?
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```ts
|
|
79
|
+
* import { previewCoreDeposit } from "@varla/sdk/views";
|
|
80
|
+
*
|
|
81
|
+
* const preview = await previewCoreDeposit({
|
|
82
|
+
* oracle, core,
|
|
83
|
+
* user: "0x...",
|
|
84
|
+
* positionIds: [posId],
|
|
85
|
+
* amounts: [amount],
|
|
86
|
+
* });
|
|
87
|
+
*
|
|
88
|
+
* if (!preview.canDeposit) {
|
|
89
|
+
* for (const item of preview.items) {
|
|
90
|
+
* if (!item.ok) console.log(`Position ${item.positionId}: ${item.reason}`);
|
|
91
|
+
* }
|
|
92
|
+
* if (preview.wouldExceedMaxPositions) console.log("Too many positions");
|
|
93
|
+
* }
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
// wraps: VarlaOracle.isConfigured,VarlaOracle.isDepositAllowed,VarlaOracle.isValidCollateral,VarlaCore.getPositionCount,VarlaCore.maxPositions,VarlaCore.positionBalances
|
|
97
|
+
export async function previewCoreDeposit(params: {
|
|
98
|
+
oracle: {
|
|
99
|
+
read: {
|
|
100
|
+
isConfigured: (args: readonly [bigint]) => Promise<boolean>;
|
|
101
|
+
isDepositAllowed: (args: readonly [bigint]) => Promise<boolean>;
|
|
102
|
+
isValidCollateral: (args: readonly [bigint]) => Promise<boolean>;
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
core: {
|
|
106
|
+
read: {
|
|
107
|
+
getPositionCount: (args: readonly [Address]) => Promise<bigint>;
|
|
108
|
+
maxPositions: () => Promise<bigint>;
|
|
109
|
+
positionBalances: (args: readonly [Address, bigint]) => Promise<bigint>;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
user: Address;
|
|
113
|
+
positionIds: readonly bigint[];
|
|
114
|
+
amounts: readonly bigint[];
|
|
115
|
+
}): Promise<PreviewCoreDeposit> {
|
|
116
|
+
const { oracle, core, user, positionIds, amounts } = params;
|
|
117
|
+
|
|
118
|
+
if (positionIds.length !== amounts.length) {
|
|
119
|
+
throw new Error("positionIds and amounts must have the same length");
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Parallel: oracle checks per-position + account-level reads.
|
|
123
|
+
const [oracleResults, positionCount, maxPositions, existingBalances] = await Promise.all([
|
|
124
|
+
// Per-position oracle checks (all in parallel).
|
|
125
|
+
Promise.all(
|
|
126
|
+
positionIds.map(async (pid) => {
|
|
127
|
+
const [isConfigured, isDepositAllowed, isValidCollateral] = await Promise.all([
|
|
128
|
+
oracle.read.isConfigured([pid]),
|
|
129
|
+
oracle.read.isDepositAllowed([pid]),
|
|
130
|
+
oracle.read.isValidCollateral([pid]),
|
|
131
|
+
]);
|
|
132
|
+
return { isConfigured, isDepositAllowed, isValidCollateral };
|
|
133
|
+
}),
|
|
134
|
+
),
|
|
135
|
+
// Account-level.
|
|
136
|
+
core.read.getPositionCount([user]),
|
|
137
|
+
core.read.maxPositions(),
|
|
138
|
+
// Check which positions user already has deposited (for max-positions calc).
|
|
139
|
+
Promise.all(positionIds.map((pid) => core.read.positionBalances([user, pid]))),
|
|
140
|
+
]);
|
|
141
|
+
|
|
142
|
+
// Build per-position items.
|
|
143
|
+
const items: PreviewCoreDepositItem[] = [];
|
|
144
|
+
let allItemsOk = true;
|
|
145
|
+
|
|
146
|
+
for (let i = 0; i < positionIds.length; i++) {
|
|
147
|
+
const pid = positionIds[i]!;
|
|
148
|
+
const amount = amounts[i]!;
|
|
149
|
+
const orc = oracleResults[i]!;
|
|
150
|
+
|
|
151
|
+
let ok = true;
|
|
152
|
+
let reason: DepositBlockReason | undefined;
|
|
153
|
+
|
|
154
|
+
if (amount === 0n) {
|
|
155
|
+
ok = false;
|
|
156
|
+
reason = "zero-amount";
|
|
157
|
+
} else if (!orc.isConfigured) {
|
|
158
|
+
ok = false;
|
|
159
|
+
reason = "not-configured";
|
|
160
|
+
} else if (!orc.isDepositAllowed) {
|
|
161
|
+
ok = false;
|
|
162
|
+
reason = "deposit-not-allowed";
|
|
163
|
+
} else if (!orc.isValidCollateral) {
|
|
164
|
+
ok = false;
|
|
165
|
+
reason = "invalid-collateral";
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
if (!ok) allItemsOk = false;
|
|
169
|
+
items.push(
|
|
170
|
+
reason !== undefined
|
|
171
|
+
? { positionId: pid, amount, ok, reason }
|
|
172
|
+
: { positionId: pid, amount, ok },
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Count how many NEW positions this deposit would add.
|
|
177
|
+
const uniqueNewPositionIds = new Set<bigint>();
|
|
178
|
+
for (let i = 0; i < positionIds.length; i++) {
|
|
179
|
+
const pid = positionIds[i]!;
|
|
180
|
+
const existingBal = existingBalances[i]!;
|
|
181
|
+
if (existingBal === 0n) {
|
|
182
|
+
uniqueNewPositionIds.add(pid);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
const newCount = positionCount + BigInt(uniqueNewPositionIds.size);
|
|
186
|
+
const wouldExceedMaxPositions = newCount > maxPositions;
|
|
187
|
+
|
|
188
|
+
const canDeposit = allItemsOk && !wouldExceedMaxPositions;
|
|
189
|
+
|
|
190
|
+
return {
|
|
191
|
+
canDeposit,
|
|
192
|
+
items,
|
|
193
|
+
currentPositionCount: positionCount,
|
|
194
|
+
maxPositions,
|
|
195
|
+
wouldExceedMaxPositions,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
7
199
|
export type ReadAccountSnapshot = {
|
|
8
200
|
portfolioValue: bigint;
|
|
9
201
|
collateralValue: bigint;
|
|
@@ -1471,3 +1663,175 @@ export async function readHypotheticalBorrowCapacity(params: {
|
|
|
1471
1663
|
potential: { collateralValue: potentialCollateralValue, maxBorrow: potentialMaxBorrow },
|
|
1472
1664
|
};
|
|
1473
1665
|
}
|
|
1666
|
+
|
|
1667
|
+
// ---------------------------------------------------------------------------
|
|
1668
|
+
// Liquidation price helpers
|
|
1669
|
+
// ---------------------------------------------------------------------------
|
|
1670
|
+
|
|
1671
|
+
export type ComputeLiquidationPriceResult = {
|
|
1672
|
+
/**
|
|
1673
|
+
* Price (8 decimals) at which the account's HF reaches 1.0 for this position.
|
|
1674
|
+
*
|
|
1675
|
+
* - `0n` when there is no debt, no balance, or when other collateral already
|
|
1676
|
+
* covers the entire debt (this position cannot trigger liquidation alone).
|
|
1677
|
+
*/
|
|
1678
|
+
liquidationPriceE8: bigint;
|
|
1679
|
+
};
|
|
1680
|
+
|
|
1681
|
+
/**
|
|
1682
|
+
* Pure-math liquidation price estimator (zero RPC, zero side-effects).
|
|
1683
|
+
*
|
|
1684
|
+
* For a **single-collateral** account pass `otherCollateralValue: 0n` (default).
|
|
1685
|
+
*
|
|
1686
|
+
* For a **multi-collateral** (cross-margin) account, pass the collateral-value
|
|
1687
|
+
* contributed by *all other* positions so the result answers: "at what price for
|
|
1688
|
+
* *this* position (holding everything else constant) does HF hit 1.0?"
|
|
1689
|
+
*
|
|
1690
|
+
* Formula (single-collateral):
|
|
1691
|
+
* ```
|
|
1692
|
+
* HF = (balance × price × effectiveLTV) / debt = 1.0
|
|
1693
|
+
* → liquidationPrice = debt / (balance × effectiveLTV) [scaled to E8]
|
|
1694
|
+
* ```
|
|
1695
|
+
*
|
|
1696
|
+
* Formula (multi-collateral):
|
|
1697
|
+
* ```
|
|
1698
|
+
* HF = (thisCV + otherCV) / debt = 1.0
|
|
1699
|
+
* → thisCV = debt - otherCV
|
|
1700
|
+
* → price = (debt - otherCV) / (balance × effectiveLTV) [scaled to E8]
|
|
1701
|
+
* ```
|
|
1702
|
+
*
|
|
1703
|
+
* Rounds **up** (conservative: liquidation may happen slightly sooner).
|
|
1704
|
+
*/
|
|
1705
|
+
export function computeLiquidationPrice(params: {
|
|
1706
|
+
/** User's total debt (collateral base units). */
|
|
1707
|
+
debt: bigint;
|
|
1708
|
+
/** Token balance of the target position (ERC1155 base units). */
|
|
1709
|
+
positionBalance: bigint;
|
|
1710
|
+
/** Effective LTV for the position (WAD, 1e18 = 100%). */
|
|
1711
|
+
ltvWad: bigint;
|
|
1712
|
+
/**
|
|
1713
|
+
* Risk-adjusted collateral value contributed by all *other* deposited positions.
|
|
1714
|
+
*
|
|
1715
|
+
* For single-collateral accounts this is `0n` (default).
|
|
1716
|
+
* For cross-margin, compute as: `totalCollateralValue - thisPositionCollateralValue`.
|
|
1717
|
+
*/
|
|
1718
|
+
otherCollateralValue?: bigint;
|
|
1719
|
+
}): ComputeLiquidationPriceResult {
|
|
1720
|
+
const { debt, positionBalance, ltvWad, otherCollateralValue = 0n } = params;
|
|
1721
|
+
|
|
1722
|
+
// No debt → no liquidation risk.
|
|
1723
|
+
if (debt <= 0n) return { liquidationPriceE8: 0n };
|
|
1724
|
+
// No balance → cannot compute a meaningful price.
|
|
1725
|
+
if (positionBalance <= 0n) return { liquidationPriceE8: 0n };
|
|
1726
|
+
// Zero LTV → position contributes nothing to collateral value; price is irrelevant.
|
|
1727
|
+
if (ltvWad <= 0n) return { liquidationPriceE8: 0n };
|
|
1728
|
+
|
|
1729
|
+
// How much collateral value must THIS position contribute to reach HF = 1.0?
|
|
1730
|
+
const requiredCV = debt - otherCollateralValue;
|
|
1731
|
+
|
|
1732
|
+
// Other positions already cover the debt → this position alone can't trigger liquidation.
|
|
1733
|
+
if (requiredCV <= 0n) return { liquidationPriceE8: 0n };
|
|
1734
|
+
|
|
1735
|
+
// requiredCV = balance × price × effectiveLTV / (E8 × WAD)
|
|
1736
|
+
// → price = requiredCV × E8 × WAD / (balance × effectiveLTV)
|
|
1737
|
+
// Round up for conservative estimate.
|
|
1738
|
+
const numerator = requiredCV * _E8 * _WAD;
|
|
1739
|
+
const denominator = positionBalance * ltvWad;
|
|
1740
|
+
if (denominator === 0n) return { liquidationPriceE8: 0n };
|
|
1741
|
+
|
|
1742
|
+
const liquidationPriceE8 = (numerator + denominator - 1n) / denominator;
|
|
1743
|
+
return { liquidationPriceE8 };
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1746
|
+
export type ReadLiquidationPrice = {
|
|
1747
|
+
/** The position whose liquidation price was computed. */
|
|
1748
|
+
positionId: bigint;
|
|
1749
|
+
/**
|
|
1750
|
+
* Price (8 decimals) at which HF = 1.0 for this position.
|
|
1751
|
+
*
|
|
1752
|
+
* `0n` when there is no debt, no deposited balance for this position,
|
|
1753
|
+
* or when the other collateral already covers the entire debt.
|
|
1754
|
+
*/
|
|
1755
|
+
liquidationPriceE8: bigint;
|
|
1756
|
+
/** Current oracle price for this position (8 decimals). */
|
|
1757
|
+
currentPriceE8: bigint;
|
|
1758
|
+
/** User's total debt (collateral base units). */
|
|
1759
|
+
debt: bigint;
|
|
1760
|
+
/** User's deposited balance for this position. */
|
|
1761
|
+
positionBalance: bigint;
|
|
1762
|
+
/** Effective LTV (WAD) used in the computation. */
|
|
1763
|
+
ltvWad: bigint;
|
|
1764
|
+
/** Risk-adjusted collateral value from all *other* positions. */
|
|
1765
|
+
otherCollateralValue: bigint;
|
|
1766
|
+
};
|
|
1767
|
+
|
|
1768
|
+
/**
|
|
1769
|
+
* Reads on-chain state and computes the estimated liquidation price for a
|
|
1770
|
+
* specific collateral position within a borrower's account.
|
|
1771
|
+
*
|
|
1772
|
+
* This is the ergonomic "do-it-all" helper: it fetches the account snapshot,
|
|
1773
|
+
* position balance, oracle price, and effective LTV in parallel, then delegates
|
|
1774
|
+
* to the pure-math {@link computeLiquidationPrice}.
|
|
1775
|
+
*
|
|
1776
|
+
* For multi-collateral accounts, this answers: "at what price for *this specific*
|
|
1777
|
+
* position (holding all other prices constant) would the account's HF hit 1.0?"
|
|
1778
|
+
*
|
|
1779
|
+
* @example
|
|
1780
|
+
* ```ts
|
|
1781
|
+
* import { readLiquidationPrice } from "@varla/sdk/views";
|
|
1782
|
+
*
|
|
1783
|
+
* const result = await readLiquidationPrice({ core, oracle, user, positionId });
|
|
1784
|
+
* console.log(`Liquidation at $${Number(result.liquidationPriceE8) / 1e8}`);
|
|
1785
|
+
* ```
|
|
1786
|
+
*/
|
|
1787
|
+
// wraps: VarlaCore.getAccountSummary,VarlaCore.positionBalances,VarlaCore.getLtvForPosition,VarlaOracle.getPositionSnapshot
|
|
1788
|
+
export async function readLiquidationPrice(params: {
|
|
1789
|
+
core: {
|
|
1790
|
+
read: {
|
|
1791
|
+
getAccountSummary: (args: readonly [Address]) => Promise<unknown>;
|
|
1792
|
+
positionBalances: (args: readonly [Address, bigint]) => Promise<bigint>;
|
|
1793
|
+
getLtvForPosition: (args: readonly [bigint]) => Promise<bigint>;
|
|
1794
|
+
};
|
|
1795
|
+
};
|
|
1796
|
+
oracle: {
|
|
1797
|
+
read: {
|
|
1798
|
+
getPositionSnapshot: (args: readonly [bigint]) => Promise<unknown>;
|
|
1799
|
+
};
|
|
1800
|
+
};
|
|
1801
|
+
user: Address;
|
|
1802
|
+
positionId: bigint;
|
|
1803
|
+
}): Promise<ReadLiquidationPrice> {
|
|
1804
|
+
// Parallel reads: account snapshot, position balance, effective LTV, oracle price.
|
|
1805
|
+
const [snap, balance, ltvWad, oracleSnapRaw] = await Promise.all([
|
|
1806
|
+
readAccountSnapshot({ core: params.core as any, user: params.user }),
|
|
1807
|
+
params.core.read.positionBalances([params.user, params.positionId]),
|
|
1808
|
+
params.core.read.getLtvForPosition([params.positionId]),
|
|
1809
|
+
params.oracle.read.getPositionSnapshot([params.positionId]),
|
|
1810
|
+
]);
|
|
1811
|
+
|
|
1812
|
+
// Extract current price from oracle snapshot.
|
|
1813
|
+
const oSnap = _normalizeOraclePositionSnapshot(oracleSnapRaw, params.positionId);
|
|
1814
|
+
const currentPriceE8 = oSnap.priceE8;
|
|
1815
|
+
|
|
1816
|
+
// Compute this position's risk-adjusted collateral value (mirrors Core accounting).
|
|
1817
|
+
const thisPositionCV = (balance * currentPriceE8 * ltvWad) / (_E8 * _WAD);
|
|
1818
|
+
const otherCollateralValue =
|
|
1819
|
+
snap.collateralValue > thisPositionCV ? snap.collateralValue - thisPositionCV : 0n;
|
|
1820
|
+
|
|
1821
|
+
const { liquidationPriceE8 } = computeLiquidationPrice({
|
|
1822
|
+
debt: snap.debt,
|
|
1823
|
+
positionBalance: balance,
|
|
1824
|
+
ltvWad,
|
|
1825
|
+
otherCollateralValue,
|
|
1826
|
+
});
|
|
1827
|
+
|
|
1828
|
+
return {
|
|
1829
|
+
positionId: params.positionId,
|
|
1830
|
+
liquidationPriceE8,
|
|
1831
|
+
currentPriceE8,
|
|
1832
|
+
debt: snap.debt,
|
|
1833
|
+
positionBalance: balance,
|
|
1834
|
+
ltvWad,
|
|
1835
|
+
otherCollateralValue,
|
|
1836
|
+
};
|
|
1837
|
+
}
|