diff --git a/CHANGELOG.md b/CHANGELOG.md index aac3bdbccb..b7e77127a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -113,6 +113,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ - [1018](https://github.com/umee-network/umee/pull/1018) Return nil if negative time elapsed from the last block happens. - [1156](https://github.com/umee-network/umee/pull/1156) Propagate context correctly. - [1288](https://github.com/umee-network/umee/pull/1288) Safeguards LastInterestTime against time reversals and unintended interest from hard forks. +- [1357](https://github.com/umee-network/umee/pull/1357) Interptex x/0 collateral liquidity as 100% ## [v2.0.2](https://github.com/umee-network/umee/releases/tag/v2.0.2) - 2022-05-13 diff --git a/x/leverage/keeper/collateral.go b/x/leverage/keeper/collateral.go index 784e802efc..c93527df81 100644 --- a/x/leverage/keeper/collateral.go +++ b/x/leverage/keeper/collateral.go @@ -144,9 +144,12 @@ func (k Keeper) CollateralLiquidity(ctx sdk.Context, denom string) sdk.Dec { exchangeRate := k.DeriveExchangeRate(ctx, denom) liquidity := k.AvailableLiquidity(ctx, denom) - // Zero collateral will be interpreted as having no liquidity + // Zero collateral will be interpreted as full collateral liquidity. This encompasses two cases: + // - liquidity / collateral = 0/0: Empty market, system is considered healthy by default + // - liquidity / collateral = x/0: No collateral but nonzero liquidity, also considered healthy + // In both cases, "all collateral is liquid" is technically true, given that there is no collateral. if totalCollateral.IsZero() { - return sdk.ZeroDec() + return sdk.OneDec() } collateralLiquidity := toDec(liquidity).Quo(exchangeRate.MulInt(totalCollateral.Amount))