From c96a93b725d7105b8548776b91fcd7f98722007a Mon Sep 17 00:00:00 2001 From: piobab Date: Wed, 11 Oct 2023 17:54:41 +0200 Subject: [PATCH 1/3] Extract params msgs, types to red-bank-types package. --- Cargo.lock | 90 +++++++++---------- contracts/credit-manager/src/deposit.rs | 2 +- contracts/credit-manager/src/hls.rs | 2 +- .../credit-manager/tests/helpers/builders.rs | 2 +- .../tests/helpers/mock_entity_info.rs | 2 +- .../credit-manager/tests/helpers/mock_env.rs | 18 ++-- .../credit-manager/tests/helpers/types.rs | 2 +- .../tests/test_claim_rewards.rs | 2 +- .../credit-manager/tests/test_deposit_cap.rs | 2 +- contracts/credit-manager/tests/test_health.rs | 7 +- .../credit-manager/tests/test_hls_accounts.rs | 6 +- contracts/credit-manager/tests/test_repay.rs | 2 +- .../tests/test_repay_from_wallet.rs | 2 +- .../tests/test_utilization_query.rs | 2 +- .../credit-manager/tests/test_vault_exit.rs | 2 +- .../tests/test_vault_exit_unlocked.rs | 2 +- contracts/health/src/querier.rs | 2 +- contracts/health/tests/helpers/defaults.rs | 2 +- contracts/health/tests/helpers/mock_env.rs | 8 +- .../health/tests/helpers/mock_env_builder.rs | 9 +- contracts/health/tests/test_health_state.rs | 3 +- contracts/health/tests/test_health_values.rs | 9 +- contracts/health/tests/test_hls.rs | 3 +- .../health/tests/test_liquidation_pricing.rs | 8 +- contracts/params/examples/schema.rs | 2 +- contracts/params/src/contract.rs | 8 +- contracts/params/src/error.rs | 4 + contracts/params/src/execute.rs | 31 +------ contracts/params/src/lib.rs | 2 - contracts/params/src/query.rs | 7 +- contracts/params/src/state.rs | 3 +- contracts/params/src/types/mod.rs | 3 - .../params/tests/tests/helpers/generator.rs | 2 +- .../params/tests/tests/helpers/mock_env.rs | 9 +- .../tests/tests/test_asset_validation.rs | 74 +++++++-------- .../params/tests/tests/test_deposit_cap.rs | 6 +- .../tests/tests/test_emergency_powers.rs | 10 +-- .../tests/tests/test_update_asset_params.rs | 3 +- .../tests/tests/test_vault_validation.rs | 33 ++++--- contracts/params/tests/tests/test_vaults.rs | 5 +- contracts/red-bank/src/helpers.rs | 2 +- contracts/red-bank/tests/tests/helpers/mod.rs | 2 +- contracts/red-bank/tests/tests/test_borrow.rs | 6 +- .../red-bank/tests/tests/test_deposit.rs | 2 +- .../red-bank/tests/tests/test_liquidate.rs | 2 +- contracts/red-bank/tests/tests/test_misc.rs | 6 +- .../red-bank/tests/tests/test_withdraw.rs | 2 +- integration-tests/tests/helpers.rs | 8 +- integration-tests/tests/test_oracles.rs | 20 +++-- integration-tests/tests/test_user_flow.rs | 2 +- packages/health-computer/Cargo.toml | 1 + packages/health-computer/src/data_types.rs | 2 +- .../health-computer/src/health_computer.rs | 2 +- .../tests/helpers/mock_coin_info.rs | 2 +- .../tests/helpers/mock_vault_config.rs | 2 +- .../tests/helpers/prop_test_strategies.rs | 8 +- .../tests/test_health_scenarios.rs | 2 +- packages/health-computer/tests/test_hls.rs | 2 +- .../tests/test_input_validation.rs | 2 +- .../tests/test_max_borrow_validation.rs | 2 +- .../tests/test_max_swap_validation.rs | 2 +- .../tests/test_max_withdraw.rs | 2 +- packages/health/src/health.rs | 2 +- packages/health/src/query.rs | 8 +- .../tests/test_from_coins_to_positions.rs | 6 +- .../health/tests/test_health_from_coins.rs | 6 +- packages/liquidation/Cargo.toml | 8 +- packages/liquidation/src/liquidation.rs | 2 +- packages/rover/src/adapters/params.rs | 5 +- packages/testing/src/integration/mock_env.rs | 14 +-- packages/testing/src/mars_mock_querier.rs | 8 +- packages/testing/src/params_querier.rs | 2 +- packages/types/src/error.rs | 4 + packages/types/src/lib.rs | 1 + packages/types/src/params/mod.rs | 5 ++ .../src => packages/types/src/params}/msg.rs | 12 +-- .../types/src/params}/types/asset.rs | 9 +- .../types/src/params}/types/hls.rs | 6 +- packages/types/src/params/types/mod.rs | 35 ++++++++ .../types/src/params}/types/vault.rs | 9 +- 80 files changed, 314 insertions(+), 300 deletions(-) delete mode 100644 contracts/params/src/types/mod.rs create mode 100644 packages/types/src/params/mod.rs rename {contracts/params/src => packages/types/src/params}/msg.rs (87%) rename {contracts/params/src => packages/types/src/params}/types/asset.rs (96%) rename {contracts/params/src => packages/types/src/params}/types/hls.rs (93%) create mode 100644 packages/types/src/params/types/mod.rs rename {contracts/params/src => packages/types/src/params}/types/vault.rs (89%) diff --git a/Cargo.lock b/Cargo.lock index 686709e7f..e0ec223e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -715,9 +715,9 @@ dependencies = [ [[package]] name = "cosmwasm-crypto" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca101fbf2f76723711a30ea3771ef312ec3ec254ad021b237871ed802f9f175" +checksum = "a6fb22494cf7d23d0c348740e06e5c742070b2991fd41db77bba0bcfbae1a723" dependencies = [ "digest 0.10.7", "ed25519-zebra", @@ -728,18 +728,18 @@ dependencies = [ [[package]] name = "cosmwasm-derive" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c73d2dd292f60e42849d2b07c03d809cf31e128a4299a805abd6d24553bcaaf5" +checksum = "6e199424486ea97d6b211db6387fd72e26b4a439d40cc23140b2d8305728055b" dependencies = [ "syn 1.0.109", ] [[package]] name = "cosmwasm-schema" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce34a08020433989af5cc470104f6bd22134320fe0221bd8aeb919fd5ec92d5" +checksum = "fef683a9c1c4eabd6d31515719d0d2cc66952c4c87f7eb192bfc90384517dc34" dependencies = [ "cosmwasm-schema-derive", "schemars", @@ -750,9 +750,9 @@ dependencies = [ [[package]] name = "cosmwasm-schema-derive" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96694ec781a7dd6dea1f968a2529ade009c21ad999c88b5f53d6cc495b3b96f7" +checksum = "9567025acbb4c0c008178393eb53b3ac3c2e492c25949d3bf415b9cbe80772d8" dependencies = [ "proc-macro2", "quote", @@ -761,9 +761,9 @@ dependencies = [ [[package]] name = "cosmwasm-std" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a44d3f9c25b2f864737c6605a98f2e4675d53fd8bbc7cf4d7c02475661a793d" +checksum = "7d89d680fb60439b7c5947b15f9c84b961b88d1f8a3b20c4bd178a3f87db8bae" dependencies = [ "base64 0.21.4", "bnum", @@ -781,9 +781,9 @@ dependencies = [ [[package]] name = "cosmwasm-storage" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab544dfcad7c9e971933d522d99ec75cc8ddfa338854bb992b092e11bcd7e818" +checksum = "54a1c574d30feffe4b8121e61e839c231a5ce21901221d2fb4d5c945968a4f00" dependencies = [ "cosmwasm-std", "serde", @@ -1448,25 +1448,14 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ - "errno-dragonfly", "libc", "windows-sys", ] -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "eyre" version = "0.6.8" @@ -2075,9 +2064,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.4.8" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "log" @@ -2251,7 +2240,7 @@ version = "1.0.0" dependencies = [ "cosmwasm-std", "mars-health 2.0.0", - "mars-params", + "mars-red-bank-types 2.0.0", "thiserror", ] @@ -2629,6 +2618,7 @@ dependencies = [ "cosmwasm-std", "cw-vault-standard 0.3.3", "mars-params", + "mars-red-bank-types 2.0.0", "mars-rover 2.0.0", "mars-rover-health-types", "proptest", @@ -2896,9 +2886,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", "libm", @@ -3227,9 +3217,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1106fec09662ec6dd98ccac0f81cef56984d0b49f75c92d8cbad76e20c005c" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -3248,7 +3238,7 @@ dependencies = [ "rand", "rand_chacha", "rand_xorshift", - "regex-syntax", + "regex-syntax 0.7.5", "rusty-fork", "tempfile", "unarray", @@ -3458,25 +3448,25 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.6" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff" +checksum = "d119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87" dependencies = [ "aho-corasick", "memchr", "regex-automata", - "regex-syntax", + "regex-syntax 0.8.0", ] [[package]] name = "regex-automata" -version = "0.3.9" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9" +checksum = "465c6fc0621e4abc4187a2bda0937bfd4f722c2730b29562e19689ea796c9a4b" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.0", ] [[package]] @@ -3485,6 +3475,12 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" +[[package]] +name = "regex-syntax" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3cbb081b9784b07cceb8824c8583f86db4814d172ab043f3c23f7dc600bf83d" + [[package]] name = "rfc6979" version = "0.3.1" @@ -3576,9 +3572,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.38.17" +version = "0.38.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f25469e9ae0f3d0047ca8b93fc56843f38e6774f0914a107ff8b41be8be8e0b7" +checksum = "5a74ee2d7c2581cd139b42447d7d9389b889bdaad3a73f1ebb16f2a3237bb19c" dependencies = [ "bitflags 2.4.0", "errno", @@ -3741,9 +3737,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" @@ -4332,9 +4328,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.32.0" +version = "1.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" dependencies = [ "backtrace", "bytes", diff --git a/contracts/credit-manager/src/deposit.rs b/contracts/credit-manager/src/deposit.rs index 7ef3d0178..70e84bf0b 100644 --- a/contracts/credit-manager/src/deposit.rs +++ b/contracts/credit-manager/src/deposit.rs @@ -1,7 +1,7 @@ use std::collections::BTreeSet; use cosmwasm_std::{Coin, Deps, DepsMut, Response, Uint128}; -use mars_params::msg::TotalDepositResponse; +use mars_red_bank_types::params::TotalDepositResponse; use mars_rover::{ coins::Coins, error::{ContractError, ContractResult}, diff --git a/contracts/credit-manager/src/hls.rs b/contracts/credit-manager/src/hls.rs index a32444f13..c0dc55fca 100644 --- a/contracts/credit-manager/src/hls.rs +++ b/contracts/credit-manager/src/hls.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{Deps, Response}; -use mars_params::types::hls::HlsAssetType; +use mars_red_bank_types::params::hls::HlsAssetType; use mars_rover::error::{ContractError, ContractResult}; use mars_rover_health_types::AccountKind; diff --git a/contracts/credit-manager/tests/helpers/builders.rs b/contracts/credit-manager/tests/helpers/builders.rs index 2c5639aa2..97cd43b46 100644 --- a/contracts/credit-manager/tests/helpers/builders.rs +++ b/contracts/credit-manager/tests/helpers/builders.rs @@ -1,6 +1,6 @@ use cosmwasm_std::{coin, Decimal}; use cw_utils::Duration; -use mars_params::types::asset::LiquidationBonus; +use mars_red_bank_types::params::asset::LiquidationBonus; use crate::helpers::{lp_token_info, CoinInfo, VaultTestInfo}; diff --git a/contracts/credit-manager/tests/helpers/mock_entity_info.rs b/contracts/credit-manager/tests/helpers/mock_entity_info.rs index 2106c9105..3a16be921 100644 --- a/contracts/credit-manager/tests/helpers/mock_entity_info.rs +++ b/contracts/credit-manager/tests/helpers/mock_entity_info.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use cosmwasm_std::{coin, Decimal}; use cw_utils::Duration; -use mars_params::types::{ +use mars_red_bank_types::params::{ asset::LiquidationBonus, hls::{HlsAssetType, HlsParamsUnchecked}, }; diff --git a/contracts/credit-manager/tests/helpers/mock_env.rs b/contracts/credit-manager/tests/helpers/mock_env.rs index 71fd0b988..32d88a33d 100644 --- a/contracts/credit-manager/tests/helpers/mock_env.rs +++ b/contracts/credit-manager/tests/helpers/mock_env.rs @@ -22,22 +22,18 @@ use mars_mock_vault::{ contract::DEFAULT_VAULT_TOKEN_PREFUND, msg::InstantiateMsg as VaultInstantiateMsg, }; use mars_owner::OwnerUpdate; -use mars_params::{ - msg::{ +use mars_red_bank_types::{ + address_provider::{self, MarsAddressType}, + incentives::{ExecuteMsg::BalanceChange, QueryMsg::UserUnclaimedRewards}, + oracle::ActionKind, + params::{ + asset::AssetParams, + vault::{VaultConfig, VaultConfigUnchecked}, AssetParamsUpdate, AssetParamsUpdate::AddOrUpdate, ExecuteMsg::{UpdateAssetParams, UpdateVaultConfig}, InstantiateMsg as ParamsInstantiateMsg, QueryMsg as ParamsQueryMsg, VaultConfigUpdate, }, - types::{ - asset::AssetParams, - vault::{VaultConfig, VaultConfigUnchecked}, - }, -}; -use mars_red_bank_types::{ - address_provider::{self, MarsAddressType}, - incentives::{ExecuteMsg::BalanceChange, QueryMsg::UserUnclaimedRewards}, - oracle::ActionKind, red_bank::{ self, InitOrUpdateAssetParams, InterestRateModel, QueryMsg::{UserCollateral, UserDebt}, diff --git a/contracts/credit-manager/tests/helpers/types.rs b/contracts/credit-manager/tests/helpers/types.rs index 2e413b1be..4922e4b49 100644 --- a/contracts/credit-manager/tests/helpers/types.rs +++ b/contracts/credit-manager/tests/helpers/types.rs @@ -1,7 +1,7 @@ use cosmwasm_schema::cw_serde; use cosmwasm_std::{coin, Addr, Coin, Decimal, Uint128}; use cw_utils::Duration; -use mars_params::types::{ +use mars_red_bank_types::params::{ asset::{AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings}, hls::HlsParamsUnchecked, }; diff --git a/contracts/credit-manager/tests/test_claim_rewards.rs b/contracts/credit-manager/tests/test_claim_rewards.rs index f8132c04a..61ab6a28f 100644 --- a/contracts/credit-manager/tests/test_claim_rewards.rs +++ b/contracts/credit-manager/tests/test_claim_rewards.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{Addr, Uint128}; -use mars_params::{msg::AssetParamsUpdate::AddOrUpdate, types::hls::HlsAssetType}; +use mars_red_bank_types::params::{hls::HlsAssetType, AssetParamsUpdate::AddOrUpdate}; use mars_rover::{ error::ContractError, msg::execute::Action::{Borrow, ClaimRewards, Deposit}, diff --git a/contracts/credit-manager/tests/test_deposit_cap.rs b/contracts/credit-manager/tests/test_deposit_cap.rs index b2a53b3f1..f520ac509 100644 --- a/contracts/credit-manager/tests/test_deposit_cap.rs +++ b/contracts/credit-manager/tests/test_deposit_cap.rs @@ -4,7 +4,7 @@ pub mod helpers; use std::collections::HashMap; use cosmwasm_std::{Addr, Coin, Coins, Decimal, StdResult, Uint128}; -use mars_params::{msg::AssetParamsUpdate, types::asset::AssetParams}; +use mars_red_bank_types::params::{asset::AssetParams, AssetParamsUpdate}; use mars_rover::{ error::ContractError, msg::execute::{Action, ActionAmount, ActionCoin}, diff --git a/contracts/credit-manager/tests/test_health.rs b/contracts/credit-manager/tests/test_health.rs index e5232ce98..1eb84025d 100644 --- a/contracts/credit-manager/tests/test_health.rs +++ b/contracts/credit-manager/tests/test_health.rs @@ -3,11 +3,10 @@ use std::ops::{Add, Mul}; use cosmwasm_std::{coin, coins, Addr, Coin, Decimal, Uint128}; use mars_credit_manager::borrow::DEFAULT_DEBT_SHARES_PER_COIN_BORROWED; use mars_mock_oracle::msg::CoinPrice; -use mars_params::{ - msg::{AssetParamsUpdate::AddOrUpdate, VaultConfigUpdate}, - types::asset::LiquidationBonus, +use mars_red_bank_types::{ + oracle::ActionKind, + params::{asset::LiquidationBonus, AssetParamsUpdate::AddOrUpdate, VaultConfigUpdate}, }; -use mars_red_bank_types::oracle::ActionKind; use mars_rover::{ error::ContractError, msg::{ diff --git a/contracts/credit-manager/tests/test_hls_accounts.rs b/contracts/credit-manager/tests/test_hls_accounts.rs index ecfed772f..b4c02ba08 100644 --- a/contracts/credit-manager/tests/test_hls_accounts.rs +++ b/contracts/credit-manager/tests/test_hls_accounts.rs @@ -1,6 +1,8 @@ use cosmwasm_std::{coins, Addr, Decimal, Uint128}; -use mars_params::{msg::AssetParamsUpdate::AddOrUpdate, types::hls::HlsAssetType}; -use mars_red_bank_types::oracle::ActionKind; +use mars_red_bank_types::{ + oracle::ActionKind, + params::{hls::HlsAssetType, AssetParamsUpdate::AddOrUpdate}, +}; use mars_rover::{ error::ContractError, msg::execute::Action::{Borrow, Deposit, EnterVault, Lend}, diff --git a/contracts/credit-manager/tests/test_repay.rs b/contracts/credit-manager/tests/test_repay.rs index 4e4c410b1..31038865a 100644 --- a/contracts/credit-manager/tests/test_repay.rs +++ b/contracts/credit-manager/tests/test_repay.rs @@ -2,7 +2,7 @@ use std::ops::{Add, Mul, Sub}; use cosmwasm_std::{coin, coins, Addr, Decimal, OverflowError, OverflowOperation, Uint128}; use mars_credit_manager::borrow::DEFAULT_DEBT_SHARES_PER_COIN_BORROWED; -use mars_params::types::asset::LiquidationBonus; +use mars_red_bank_types::params::asset::LiquidationBonus; use mars_rover::{ error::ContractError, msg::execute::Action::{Borrow, Deposit, Repay, Withdraw}, diff --git a/contracts/credit-manager/tests/test_repay_from_wallet.rs b/contracts/credit-manager/tests/test_repay_from_wallet.rs index 89524310e..fe921c841 100644 --- a/contracts/credit-manager/tests/test_repay_from_wallet.rs +++ b/contracts/credit-manager/tests/test_repay_from_wallet.rs @@ -1,6 +1,6 @@ use cosmwasm_std::{coin, coins, Addr, Uint128}; use cw_utils::PaymentError; -use mars_params::msg::AssetParamsUpdate::AddOrUpdate; +use mars_red_bank_types::params::AssetParamsUpdate::AddOrUpdate; use mars_rover::{ error::ContractError, msg::execute::Action::{Borrow, Deposit}, diff --git a/contracts/credit-manager/tests/test_utilization_query.rs b/contracts/credit-manager/tests/test_utilization_query.rs index 628a7a50b..f38f58231 100644 --- a/contracts/credit-manager/tests/test_utilization_query.rs +++ b/contracts/credit-manager/tests/test_utilization_query.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use cosmwasm_std::{Addr, Decimal, Uint128}; -use mars_params::types::asset::LiquidationBonus; +use mars_red_bank_types::params::asset::LiquidationBonus; use mars_rover::{ adapters::vault::VaultUnchecked, msg::execute::{ diff --git a/contracts/credit-manager/tests/test_vault_exit.rs b/contracts/credit-manager/tests/test_vault_exit.rs index 847c62501..5f621dda1 100644 --- a/contracts/credit-manager/tests/test_vault_exit.rs +++ b/contracts/credit-manager/tests/test_vault_exit.rs @@ -1,6 +1,6 @@ use cosmwasm_std::{coin, Addr, Coin, OverflowError, OverflowOperation::Sub, Uint128}; use mars_mock_vault::contract::STARTING_VAULT_SHARES; -use mars_params::msg::VaultConfigUpdate; +use mars_red_bank_types::params::VaultConfigUpdate; use mars_rover::{ adapters::vault::VaultBase, error::{ContractError, ContractError::NotTokenOwner}, diff --git a/contracts/credit-manager/tests/test_vault_exit_unlocked.rs b/contracts/credit-manager/tests/test_vault_exit_unlocked.rs index a0160c461..bb7f2b988 100644 --- a/contracts/credit-manager/tests/test_vault_exit_unlocked.rs +++ b/contracts/credit-manager/tests/test_vault_exit_unlocked.rs @@ -1,7 +1,7 @@ use cosmwasm_std::{Addr, Uint128}; use cw_utils::Duration; use mars_mock_vault::contract::STARTING_VAULT_SHARES; -use mars_params::msg::VaultConfigUpdate; +use mars_red_bank_types::params::VaultConfigUpdate; use mars_rover::{ error::ContractError, msg::{ diff --git a/contracts/health/src/querier.rs b/contracts/health/src/querier.rs index 678859316..6c69d53d6 100644 --- a/contracts/health/src/querier.rs +++ b/contracts/health/src/querier.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{Addr, Deps, QuerierWrapper, StdError, StdResult}; -use mars_params::types::vault::VaultConfig; +use mars_red_bank_types::params::vault::VaultConfig; use mars_rover::{ adapters::{oracle::Oracle, params::Params, vault::Vault}, msg::query::{ConfigResponse, Positions, QueryMsg as CmQueryMsg}, diff --git a/contracts/health/tests/helpers/defaults.rs b/contracts/health/tests/helpers/defaults.rs index a7482fae9..e404ad32a 100644 --- a/contracts/health/tests/helpers/defaults.rs +++ b/contracts/health/tests/helpers/defaults.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use cosmwasm_std::Decimal; -use mars_params::types::{ +use mars_red_bank_types::params::{ asset::{AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings}, hls::HlsParamsUnchecked, }; diff --git a/contracts/health/tests/helpers/mock_env.rs b/contracts/health/tests/helpers/mock_env.rs index ef09e22b5..e90f9501e 100644 --- a/contracts/health/tests/helpers/mock_env.rs +++ b/contracts/health/tests/helpers/mock_env.rs @@ -7,15 +7,15 @@ use cw_vault_standard::{ use mars_mock_credit_manager::msg::ExecuteMsg::SetPositionsResponse; use mars_mock_oracle::msg::{CoinPrice, ExecuteMsg::ChangePrice}; use mars_mock_vault::contract::STARTING_VAULT_SHARES; -use mars_params::{ - msg::{ +use mars_red_bank_types::{ + oracle::ActionKind, + params::{ + vault::VaultConfig, AssetParamsUpdate, ExecuteMsg::{UpdateAssetParams, UpdateVaultConfig}, QueryMsg as ParamsQueryMsg, VaultConfigUpdate, }, - types::vault::VaultConfig, }; -use mars_red_bank_types::oracle::ActionKind; use mars_rover::{adapters::vault::VaultUnchecked, msg::query::Positions}; use mars_rover_health_types::{ AccountKind, ConfigResponse, ExecuteMsg::UpdateConfig, HealthState, HealthValuesResponse, diff --git a/contracts/health/tests/helpers/mock_env_builder.rs b/contracts/health/tests/helpers/mock_env_builder.rs index c253ccdfc..63cb31b42 100644 --- a/contracts/health/tests/helpers/mock_env_builder.rs +++ b/contracts/health/tests/helpers/mock_env_builder.rs @@ -8,12 +8,9 @@ use mars_mock_credit_manager::msg::InstantiateMsg as CmMockInstantiateMsg; use mars_mock_oracle::msg::InstantiateMsg as OracleInstantiateMsg; use mars_mock_vault::msg::InstantiateMsg as VaultInstantiateMsg; use mars_owner::OwnerResponse; -use mars_params::{ - msg::{ - ExecuteMsg::UpdateVaultConfig, InstantiateMsg as ParamsInstantiateMsg, - VaultConfigUpdate::AddOrUpdate, - }, - types::{hls::HlsParamsUnchecked, vault::VaultConfigUnchecked}, +use mars_red_bank_types::params::{ + hls::HlsParamsUnchecked, vault::VaultConfigUnchecked, ExecuteMsg::UpdateVaultConfig, + InstantiateMsg as ParamsInstantiateMsg, VaultConfigUpdate::AddOrUpdate, }; use mars_rover::{adapters::oracle::OracleUnchecked, msg::query::ConfigResponse}; use mars_rover_health_types::{ExecuteMsg::UpdateConfig, InstantiateMsg}; diff --git a/contracts/health/tests/test_health_state.rs b/contracts/health/tests/test_health_state.rs index 54e8cedf5..fe992cf55 100644 --- a/contracts/health/tests/test_health_state.rs +++ b/contracts/health/tests/test_health_state.rs @@ -1,6 +1,5 @@ use cosmwasm_std::{Coin, Decimal, Uint128}; -use mars_params::msg::AssetParamsUpdate::AddOrUpdate; -use mars_red_bank_types::oracle::ActionKind; +use mars_red_bank_types::{oracle::ActionKind, params::AssetParamsUpdate::AddOrUpdate}; use mars_rover::msg::query::{DebtAmount, Positions}; use mars_rover_health_types::{AccountKind, HealthState}; diff --git a/contracts/health/tests/test_health_values.rs b/contracts/health/tests/test_health_values.rs index 57556f3e4..2dfe27aaa 100644 --- a/contracts/health/tests/test_health_values.rs +++ b/contracts/health/tests/test_health_values.rs @@ -1,14 +1,15 @@ use std::str::FromStr; use cosmwasm_std::{Coin, Decimal, StdError, Uint128}; -use mars_params::{ - msg::{AssetParamsUpdate::AddOrUpdate, VaultConfigUpdate}, - types::{ +use mars_red_bank_types::{ + oracle::ActionKind, + params::{ asset::{AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings}, hls::HlsParamsUnchecked, + AssetParamsUpdate::AddOrUpdate, + VaultConfigUpdate, }, }; -use mars_red_bank_types::oracle::ActionKind; use mars_rover::{ adapters::vault::{ LockingVaultAmount, UnlockingPositions, Vault, VaultAmount, VaultPosition, diff --git a/contracts/health/tests/test_hls.rs b/contracts/health/tests/test_hls.rs index ba19eacf8..5a6b9fec4 100644 --- a/contracts/health/tests/test_hls.rs +++ b/contracts/health/tests/test_hls.rs @@ -1,8 +1,7 @@ use std::str::FromStr; use cosmwasm_std::{Decimal, Uint128}; -use mars_params::msg::AssetParamsUpdate::AddOrUpdate; -use mars_red_bank_types::oracle::ActionKind; +use mars_red_bank_types::{oracle::ActionKind, params::AssetParamsUpdate::AddOrUpdate}; use mars_rover::{ adapters::vault::{Vault, VaultAmount, VaultPosition, VaultPositionAmount}, msg::query::{DebtAmount, Positions}, diff --git a/contracts/health/tests/test_liquidation_pricing.rs b/contracts/health/tests/test_liquidation_pricing.rs index ab0a8fe9a..25bfc9e81 100644 --- a/contracts/health/tests/test_liquidation_pricing.rs +++ b/contracts/health/tests/test_liquidation_pricing.rs @@ -1,14 +1,14 @@ use std::str::FromStr; use cosmwasm_std::{Coin, Decimal, StdError, Uint128}; -use mars_params::{ - msg::AssetParamsUpdate::AddOrUpdate, - types::{ +use mars_red_bank_types::{ + oracle::ActionKind, + params::{ asset::{AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings}, hls::HlsParamsUnchecked, + AssetParamsUpdate::AddOrUpdate, }, }; -use mars_red_bank_types::oracle::ActionKind; use mars_rover::msg::query::{DebtAmount, Positions}; use mars_rover_health_types::AccountKind; diff --git a/contracts/params/examples/schema.rs b/contracts/params/examples/schema.rs index 29e8f6f7d..4f1a23384 100644 --- a/contracts/params/examples/schema.rs +++ b/contracts/params/examples/schema.rs @@ -1,5 +1,5 @@ use cosmwasm_schema::write_api; -use mars_params::msg::{ExecuteMsg, InstantiateMsg, QueryMsg}; +use mars_red_bank_types::params::{ExecuteMsg, InstantiateMsg, QueryMsg}; fn main() { write_api! { diff --git a/contracts/params/src/contract.rs b/contracts/params/src/contract.rs index 0181c0af4..28d53f554 100644 --- a/contracts/params/src/contract.rs +++ b/contracts/params/src/contract.rs @@ -3,6 +3,10 @@ use cosmwasm_std::entry_point; use cosmwasm_std::{to_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response}; use cw2::set_contract_version; use mars_owner::OwnerInit::SetInitialOwner; +use mars_red_bank_types::params::{ + CmEmergencyUpdate, EmergencyUpdate, ExecuteMsg, InstantiateMsg, QueryMsg, + RedBankEmergencyUpdate, +}; use crate::{ emergency_powers::{disable_borrowing, disallow_coin, set_zero_deposit_cap, set_zero_max_ltv}, @@ -11,10 +15,6 @@ use crate::{ assert_thf, update_asset_params, update_config, update_target_health_factor, update_vault_config, }, - msg::{ - CmEmergencyUpdate, EmergencyUpdate, ExecuteMsg, InstantiateMsg, QueryMsg, - RedBankEmergencyUpdate, - }, query::{ query_all_asset_params, query_all_vault_configs, query_config, query_total_deposit, query_vault_config, diff --git a/contracts/params/src/error.rs b/contracts/params/src/error.rs index 3d6497e70..495c631a9 100644 --- a/contracts/params/src/error.rs +++ b/contracts/params/src/error.rs @@ -1,5 +1,6 @@ use cosmwasm_std::{DecimalRangeExceeded, StdError}; use mars_owner::OwnerError; +use mars_red_bank_types::error::MarsError; pub use mars_utils::error::ValidationError; use thiserror::Error; @@ -18,4 +19,7 @@ pub enum ContractError { #[error("{0}")] Validation(#[from] ValidationError), + + #[error("{0}")] + Mars(#[from] MarsError), } diff --git a/contracts/params/src/execute.rs b/contracts/params/src/execute.rs index 46e0135ee..a70d5a773 100644 --- a/contracts/params/src/execute.rs +++ b/contracts/params/src/execute.rs @@ -1,9 +1,9 @@ use cosmwasm_std::{Decimal, DepsMut, MessageInfo, Response}; +use mars_red_bank_types::params::{AssetParamsUpdate, VaultConfigUpdate}; use mars_utils::{error::ValidationError, helpers::option_string_to_addr}; use crate::{ error::{ContractError, ContractResult}, - msg::{AssetParamsUpdate, VaultConfigUpdate}, state::{ADDRESS_PROVIDER, ASSET_PARAMS, OWNER, TARGET_HEALTH_FACTOR, VAULT_CONFIGS}, }; @@ -103,32 +103,3 @@ pub fn assert_thf(thf: Decimal) -> Result<(), ContractError> { } Ok(()) } - -/// liquidation_threshold should be greater than or equal to max_loan_to_value -pub fn assert_lqt_gt_max_ltv( - max_ltv: Decimal, - liq_threshold: Decimal, -) -> Result<(), ValidationError> { - if liq_threshold <= max_ltv { - return Err(ValidationError::InvalidParam { - param_name: "liquidation_threshold".to_string(), - invalid_value: liq_threshold.to_string(), - predicate: format!("> {} (max LTV)", max_ltv), - }); - } - Ok(()) -} - -pub fn assert_hls_lqt_gt_max_ltv( - max_ltv: Decimal, - liq_threshold: Decimal, -) -> Result<(), ValidationError> { - if liq_threshold <= max_ltv { - return Err(ValidationError::InvalidParam { - param_name: "hls_liquidation_threshold".to_string(), - invalid_value: liq_threshold.to_string(), - predicate: format!("> {} (hls max LTV)", max_ltv), - }); - } - Ok(()) -} diff --git a/contracts/params/src/lib.rs b/contracts/params/src/lib.rs index 2f486c2cc..7d346e7ee 100644 --- a/contracts/params/src/lib.rs +++ b/contracts/params/src/lib.rs @@ -2,7 +2,5 @@ pub mod contract; pub mod emergency_powers; pub mod error; pub mod execute; -pub mod msg; pub mod query; pub mod state; -pub mod types; diff --git a/contracts/params/src/query.rs b/contracts/params/src/query.rs index 38a9ac9a9..6ef7fc60c 100644 --- a/contracts/params/src/query.rs +++ b/contracts/params/src/query.rs @@ -3,14 +3,11 @@ use cw_storage_plus::Bound; use mars_interest_rate::get_underlying_liquidity_amount; use mars_red_bank_types::{ address_provider::{self, MarsAddressType}, + params::{asset::AssetParams, vault::VaultConfig, ConfigResponse, TotalDepositResponse}, red_bank::{self, Market, UserDebtResponse}, }; -use crate::{ - msg::{ConfigResponse, TotalDepositResponse}, - state::{ADDRESS_PROVIDER, ASSET_PARAMS, VAULT_CONFIGS}, - types::{asset::AssetParams, vault::VaultConfig}, -}; +use crate::state::{ADDRESS_PROVIDER, ASSET_PARAMS, VAULT_CONFIGS}; pub const DEFAULT_LIMIT: u32 = 10; pub const MAX_LIMIT: u32 = 30; diff --git a/contracts/params/src/state.rs b/contracts/params/src/state.rs index 0259a0377..a83d76cae 100644 --- a/contracts/params/src/state.rs +++ b/contracts/params/src/state.rs @@ -1,8 +1,7 @@ use cosmwasm_std::{Addr, Decimal}; use cw_storage_plus::{Item, Map}; use mars_owner::Owner; - -use crate::types::{asset::AssetParams, vault::VaultConfig}; +use mars_red_bank_types::params::{asset::AssetParams, vault::VaultConfig}; pub const OWNER: Owner = Owner::new("owner"); pub const ADDRESS_PROVIDER: Item = Item::new("address_provider"); diff --git a/contracts/params/src/types/mod.rs b/contracts/params/src/types/mod.rs deleted file mode 100644 index 76b6ca7a0..000000000 --- a/contracts/params/src/types/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod asset; -pub mod hls; -pub mod vault; diff --git a/contracts/params/tests/tests/helpers/generator.rs b/contracts/params/tests/tests/helpers/generator.rs index 267b0ab36..57422ec5c 100644 --- a/contracts/params/tests/tests/helpers/generator.rs +++ b/contracts/params/tests/tests/helpers/generator.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use cosmwasm_std::{coin, Decimal, Uint128}; -use mars_params::types::{ +use mars_red_bank_types::params::{ asset::{AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings}, vault::VaultConfigUnchecked, }; diff --git a/contracts/params/tests/tests/helpers/mock_env.rs b/contracts/params/tests/tests/helpers/mock_env.rs index a965032f8..0f5c12884 100644 --- a/contracts/params/tests/tests/helpers/mock_env.rs +++ b/contracts/params/tests/tests/helpers/mock_env.rs @@ -4,12 +4,9 @@ use anyhow::Result as AnyResult; use cosmwasm_std::{Addr, Decimal}; use cw_multi_test::{App, AppResponse, BasicApp, Executor}; use mars_owner::{OwnerResponse, OwnerUpdate}; -use mars_params::{ - msg::{ - AssetParamsUpdate, ConfigResponse, EmergencyUpdate, ExecuteMsg, InstantiateMsg, QueryMsg, - VaultConfigUpdate, - }, - types::{asset::AssetParams, vault::VaultConfig}, +use mars_red_bank_types::params::{ + asset::AssetParams, vault::VaultConfig, AssetParamsUpdate, ConfigResponse, EmergencyUpdate, + ExecuteMsg, InstantiateMsg, QueryMsg, VaultConfigUpdate, }; use super::contracts::mock_params_contract; diff --git a/contracts/params/tests/tests/test_asset_validation.rs b/contracts/params/tests/tests/test_asset_validation.rs index 5dd216883..bcc6203b6 100644 --- a/contracts/params/tests/tests/test_asset_validation.rs +++ b/contracts/params/tests/tests/test_asset_validation.rs @@ -1,10 +1,12 @@ use std::str::FromStr; use cosmwasm_std::Decimal; -use mars_params::{ - error::ContractError::Validation, - msg::AssetParamsUpdate, - types::hls::{HlsAssetType, HlsParamsUnchecked}, +use mars_red_bank_types::{ + error::MarsError::Validation, + params::{ + hls::{HlsAssetType, HlsParamsUnchecked}, + AssetParamsUpdate, + }, }; use mars_utils::error::ValidationError::{InvalidDenom, InvalidParam}; @@ -23,9 +25,9 @@ fn denom_must_be_native() { ); assert_err( res, - Validation(InvalidDenom { + mars_params::error::ContractError::Mars(Validation(InvalidDenom { reason: "Invalid denom length".to_string(), - }), + })), ); } @@ -43,11 +45,11 @@ fn max_ltv_less_than_one() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "max_loan_to_value".to_string(), invalid_value: "1.1235".to_string(), predicate: "< 1".to_string(), - }), + })), ); } @@ -65,11 +67,11 @@ fn liquidation_threshold_less_than_or_equal_to_one() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "liquidation_threshold".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), - }), + })), ); } @@ -88,11 +90,11 @@ fn liq_threshold_gt_max_ltv() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "liquidation_threshold".to_string(), invalid_value: "0.5".to_string(), predicate: "> 0.6 (max LTV)".to_string(), - }), + })), ); } @@ -114,11 +116,11 @@ fn hls_max_ltv_less_than_one() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "hls_max_loan_to_value".to_string(), invalid_value: "1.1235".to_string(), predicate: "< 1".to_string(), - }), + })), ); } @@ -140,11 +142,11 @@ fn hls_liquidation_threshold_less_than_or_equal_to_one() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "hls_liquidation_threshold".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), - }), + })), ); } @@ -166,11 +168,11 @@ fn hls_liq_threshold_gt_hls_max_ltv() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "hls_liquidation_threshold".to_string(), invalid_value: "0.5".to_string(), predicate: "> 0.6 (hls max LTV)".to_string(), - }), + })), ); } @@ -194,9 +196,9 @@ fn correlations_must_be_valid_denoms() { ); assert_err( res, - Validation(InvalidDenom { + mars_params::error::ContractError::Mars(Validation(InvalidDenom { reason: "Invalid denom length".to_string(), - }), + })), ); } @@ -214,11 +216,11 @@ fn protocol_liquidation_fee_less_than_one() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "protocol_liquidation_fee".to_string(), invalid_value: "1".to_string(), predicate: "< 1".to_string(), - }), + })), ); } @@ -236,11 +238,11 @@ fn liquidation_bonus_param_b_out_of_range() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "starting_lb".to_string(), invalid_value: "0.101".to_string(), predicate: "[0, 0.1]".to_string(), - }), + })), ); } @@ -258,11 +260,11 @@ fn liquidation_bonus_param_slope_out_of_range() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "slope".to_string(), invalid_value: "0.99".to_string(), predicate: "[1, 5]".to_string(), - }), + })), ); params.liquidation_bonus.slope = Decimal::from_str("5.01").unwrap(); @@ -274,11 +276,11 @@ fn liquidation_bonus_param_slope_out_of_range() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "slope".to_string(), invalid_value: "5.01".to_string(), predicate: "[1, 5]".to_string(), - }), + })), ); } @@ -296,11 +298,11 @@ fn liquidation_bonus_param_min_lb_out_of_range() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "min_lb".to_string(), invalid_value: "0.101".to_string(), predicate: "[0, 0.1]".to_string(), - }), + })), ); } @@ -318,11 +320,11 @@ fn liquidation_bonus_param_max_lb_out_of_range() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "max_lb".to_string(), invalid_value: "0.0499".to_string(), predicate: "[0.05, 0.3]".to_string(), - }), + })), ); params.liquidation_bonus.max_lb = Decimal::from_str("0.31").unwrap(); @@ -334,11 +336,11 @@ fn liquidation_bonus_param_max_lb_out_of_range() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "max_lb".to_string(), invalid_value: "0.31".to_string(), predicate: "[0.05, 0.3]".to_string(), - }), + })), ); } @@ -357,10 +359,10 @@ fn liquidation_bonus_param_max_lb_gt_min_lb() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "max_lb".to_string(), invalid_value: "0.07".to_string(), predicate: "> 0.08 (min LB)".to_string(), - }), + })), ); } diff --git a/contracts/params/tests/tests/test_deposit_cap.rs b/contracts/params/tests/tests/test_deposit_cap.rs index 63a51a60c..a8fbc0038 100644 --- a/contracts/params/tests/tests/test_deposit_cap.rs +++ b/contracts/params/tests/tests/test_deposit_cap.rs @@ -3,11 +3,13 @@ use std::str::FromStr; use cosmwasm_std::{coins, Addr, Decimal, Uint128}; use mars_interest_rate::get_underlying_liquidity_amount; use mars_params::{ - msg::TotalDepositResponse, query::query_total_deposit, state::{ADDRESS_PROVIDER, ASSET_PARAMS}, }; -use mars_red_bank_types::red_bank::{Market, UserDebtResponse}; +use mars_red_bank_types::{ + params::TotalDepositResponse, + red_bank::{Market, UserDebtResponse}, +}; use mars_testing::{mock_dependencies, mock_env_at_block_time}; use test_case::test_case; diff --git a/contracts/params/tests/tests/test_emergency_powers.rs b/contracts/params/tests/tests/test_emergency_powers.rs index 5e4c08ac8..6081b97c5 100644 --- a/contracts/params/tests/tests/test_emergency_powers.rs +++ b/contracts/params/tests/tests/test_emergency_powers.rs @@ -1,11 +1,9 @@ use cosmwasm_std::Addr; use mars_owner::OwnerError; -use mars_params::{ - error::ContractError::Owner, - msg::{ - AssetParamsUpdate, CmEmergencyUpdate, EmergencyUpdate, RedBankEmergencyUpdate, - VaultConfigUpdate, - }, +use mars_params::error::ContractError::Owner; +use mars_red_bank_types::params::{ + AssetParamsUpdate, CmEmergencyUpdate, EmergencyUpdate, RedBankEmergencyUpdate, + VaultConfigUpdate, }; use super::helpers::{assert_err, default_asset_params, default_vault_config, MockEnv}; diff --git a/contracts/params/tests/tests/test_update_asset_params.rs b/contracts/params/tests/tests/test_update_asset_params.rs index ee0601045..3c4a90344 100644 --- a/contracts/params/tests/tests/test_update_asset_params.rs +++ b/contracts/params/tests/tests/test_update_asset_params.rs @@ -1,6 +1,7 @@ use cosmwasm_std::Addr; use mars_owner::OwnerError; -use mars_params::{error::ContractError::Owner, msg::AssetParamsUpdate}; +use mars_params::error::ContractError::Owner; +use mars_red_bank_types::params::AssetParamsUpdate; use super::helpers::{assert_contents_equal, assert_err, default_asset_params, MockEnv}; diff --git a/contracts/params/tests/tests/test_vault_validation.rs b/contracts/params/tests/tests/test_vault_validation.rs index ecf4021bf..fd3c1e5a6 100644 --- a/contracts/params/tests/tests/test_vault_validation.rs +++ b/contracts/params/tests/tests/test_vault_validation.rs @@ -1,10 +1,9 @@ use std::str::FromStr; use cosmwasm_std::{Decimal, StdError::GenericErr}; -use mars_params::{ - error::ContractError::{Std, Validation}, - msg::VaultConfigUpdate, - types::hls::HlsParamsUnchecked, +use mars_red_bank_types::{ + error::MarsError::{Std, Validation}, + params::{hls::HlsParamsUnchecked, VaultConfigUpdate}, }; use mars_utils::error::ValidationError::InvalidParam; @@ -22,7 +21,7 @@ fn vault_addr_must_be_valid() { ); assert_err( res, - Std(GenericErr { msg: "Invalid input: human address too short for this mock implementation (must be >= 3).".to_string() }), + mars_params::error::ContractError::Mars(Std(GenericErr { msg: "Invalid input: human address too short for this mock implementation (must be >= 3).".to_string() })), ); } @@ -40,11 +39,11 @@ fn vault_max_ltv_less_than_or_equal_to_one() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "max_loan_to_value".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), - }), + })), ); } @@ -62,11 +61,11 @@ fn vault_liquidation_threshold_less_than_or_equal_to_one() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "liquidation_threshold".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), - }), + })), ); } @@ -85,11 +84,11 @@ fn vault_liq_threshold_gt_max_ltv() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "liquidation_threshold".to_string(), invalid_value: "0.5".to_string(), predicate: "> 0.6 (max LTV)".to_string(), - }), + })), ); } @@ -111,11 +110,11 @@ fn vault_hls_max_ltv_less_than_or_equal_to_one() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "hls_max_loan_to_value".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), - }), + })), ); } @@ -137,11 +136,11 @@ fn vault_hls_liquidation_threshold_less_than_or_equal_to_one() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "hls_liquidation_threshold".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), - }), + })), ); } @@ -163,10 +162,10 @@ fn vault_hls_liq_threshold_gt_max_ltv() { ); assert_err( res, - Validation(InvalidParam { + mars_params::error::ContractError::Mars(Validation(InvalidParam { param_name: "hls_liquidation_threshold".to_string(), invalid_value: "0.5".to_string(), predicate: "> 0.6 (hls max LTV)".to_string(), - }), + })), ); } diff --git a/contracts/params/tests/tests/test_vaults.rs b/contracts/params/tests/tests/test_vaults.rs index 2f87735ae..4afdd6e69 100644 --- a/contracts/params/tests/tests/test_vaults.rs +++ b/contracts/params/tests/tests/test_vaults.rs @@ -2,9 +2,8 @@ use std::str::FromStr; use cosmwasm_std::{Addr, Decimal}; use mars_owner::OwnerError; -use mars_params::{ - error::ContractError::Owner, msg::VaultConfigUpdate, types::vault::VaultConfigUnchecked, -}; +use mars_params::error::ContractError::Owner; +use mars_red_bank_types::params::{vault::VaultConfigUnchecked, VaultConfigUpdate}; use super::helpers::{assert_contents_equal, assert_err, default_vault_config, MockEnv}; diff --git a/contracts/red-bank/src/helpers.rs b/contracts/red-bank/src/helpers.rs index 79fa686ff..3760a1286 100644 --- a/contracts/red-bank/src/helpers.rs +++ b/contracts/red-bank/src/helpers.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{Coin, Decimal, QuerierWrapper, StdResult}; -use mars_params::{msg::QueryMsg, types::asset::AssetParams}; +use mars_red_bank_types::params::{asset::AssetParams, QueryMsg}; pub fn query_asset_params( querier: &QuerierWrapper, diff --git a/contracts/red-bank/tests/tests/helpers/mod.rs b/contracts/red-bank/tests/tests/helpers/mod.rs index ac90c0473..93063c69f 100644 --- a/contracts/red-bank/tests/tests/helpers/mod.rs +++ b/contracts/red-bank/tests/tests/helpers/mod.rs @@ -14,7 +14,6 @@ use mars_interest_rate::{ calculate_applied_linear_interest_rate, compute_scaled_amount, compute_underlying_amount, ScalingOperation, }; -use mars_params::types::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}; use mars_red_bank::{ contract::{instantiate, query}, error::ContractError, @@ -22,6 +21,7 @@ use mars_red_bank::{ }; use mars_red_bank_types::{ keys::{UserId, UserIdKey}, + params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, red_bank::{ Collateral, CreateOrUpdateConfig, Debt, InitOrUpdateAssetParams, InstantiateMsg, InterestRateModel, Market, QueryMsg, UserCollateralResponse, UserDebtResponse, diff --git a/contracts/red-bank/tests/tests/test_borrow.rs b/contracts/red-bank/tests/tests/test_borrow.rs index 6c56c2985..88a9f7c05 100644 --- a/contracts/red-bank/tests/tests/test_borrow.rs +++ b/contracts/red-bank/tests/tests/test_borrow.rs @@ -6,13 +6,15 @@ use mars_interest_rate::{ calculate_applied_linear_interest_rate, compute_scaled_amount, compute_underlying_amount, ScalingOperation, SCALING_FACTOR, }; -use mars_params::types::asset::{AssetParams, CmSettings, RedBankSettings}; use mars_red_bank::{ contract::execute, error::ContractError, state::{DEBTS, MARKETS, UNCOLLATERALIZED_LOAN_LIMITS}, }; -use mars_red_bank_types::red_bank::{ExecuteMsg, Market}; +use mars_red_bank_types::{ + params::asset::{AssetParams, CmSettings, RedBankSettings}, + red_bank::{ExecuteMsg, Market}, +}; use mars_testing::{mock_env, mock_env_at_block_time, MockEnvParams}; use super::helpers::{ diff --git a/contracts/red-bank/tests/tests/test_deposit.rs b/contracts/red-bank/tests/tests/test_deposit.rs index 009b9e3d1..4c399cf0c 100644 --- a/contracts/red-bank/tests/tests/test_deposit.rs +++ b/contracts/red-bank/tests/tests/test_deposit.rs @@ -9,7 +9,6 @@ use cw_utils::PaymentError; use mars_interest_rate::{ compute_scaled_amount, get_underlying_liquidity_amount, ScalingOperation, SCALING_FACTOR, }; -use mars_params::types::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}; use mars_red_bank::{ contract::execute, error::ContractError, @@ -20,6 +19,7 @@ use mars_red_bank_types::{ error::MarsError, incentives, keys::{UserId, UserIdKey}, + params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, red_bank::{Collateral, ExecuteMsg, Market}, }; use mars_testing::{mock_env_at_block_time, MarsMockQuerier}; diff --git a/contracts/red-bank/tests/tests/test_liquidate.rs b/contracts/red-bank/tests/tests/test_liquidate.rs index 3fdb852ce..7fdfefa7c 100644 --- a/contracts/red-bank/tests/tests/test_liquidate.rs +++ b/contracts/red-bank/tests/tests/test_liquidate.rs @@ -6,11 +6,11 @@ use cosmwasm_std::{ to_binary, Addr, Decimal, SubMsg, Uint128, WasmMsg, }; use cw_utils::PaymentError; -use mars_params::types::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}; use mars_red_bank::{contract::execute, error::ContractError}; use mars_red_bank_types::{ address_provider::MarsAddressType, incentives, + params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, red_bank::{ ExecuteMsg, InitOrUpdateAssetParams, InterestRateModel, Market, QueryMsg, UserCollateralResponse, UserDebtResponse, diff --git a/contracts/red-bank/tests/tests/test_misc.rs b/contracts/red-bank/tests/tests/test_misc.rs index a8b37f3e4..7f9d54820 100644 --- a/contracts/red-bank/tests/tests/test_misc.rs +++ b/contracts/red-bank/tests/tests/test_misc.rs @@ -6,14 +6,16 @@ use mars_interest_rate::{ get_updated_liquidity_index, ScalingOperation, SCALING_FACTOR, }; use mars_owner::OwnerError::NotOwner; -use mars_params::types::asset::AssetParams; use mars_red_bank::{ contract::execute, error::ContractError, health, state::{DEBTS, MARKETS, UNCOLLATERALIZED_LOAN_LIMITS}, }; -use mars_red_bank_types::red_bank::{Debt, ExecuteMsg, Market}; +use mars_red_bank_types::{ + params::asset::AssetParams, + red_bank::{Debt, ExecuteMsg, Market}, +}; use mars_testing::{mock_env, mock_env_at_block_time, MockEnvParams}; use super::helpers::{ diff --git a/contracts/red-bank/tests/tests/test_withdraw.rs b/contracts/red-bank/tests/tests/test_withdraw.rs index 5e7c23496..682074c11 100644 --- a/contracts/red-bank/tests/tests/test_withdraw.rs +++ b/contracts/red-bank/tests/tests/test_withdraw.rs @@ -9,7 +9,6 @@ use mars_interest_rate::{ compute_scaled_amount, compute_underlying_amount, get_scaled_liquidity_amount, get_updated_borrow_index, get_updated_liquidity_index, ScalingOperation, SCALING_FACTOR, }; -use mars_params::types::asset::AssetParams; use mars_red_bank::{ contract::execute, error::ContractError, @@ -20,6 +19,7 @@ use mars_red_bank_types::{ error::MarsError, incentives, keys::{UserId, UserIdKey}, + params::asset::AssetParams, red_bank::{Collateral, Debt, ExecuteMsg, Market}, }; use mars_testing::{ diff --git a/integration-tests/tests/helpers.rs b/integration-tests/tests/helpers.rs index ed44838a3..097246ee9 100644 --- a/integration-tests/tests/helpers.rs +++ b/integration-tests/tests/helpers.rs @@ -3,9 +3,11 @@ use anyhow::Result as AnyResult; use cosmwasm_std::{Coin, Decimal, Fraction, Uint128}; use cw_multi_test::AppResponse; -use mars_params::types::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}; -use mars_red_bank_types::red_bank::{ - InitOrUpdateAssetParams, InterestRateModel, UserHealthStatus, UserPositionResponse, +use mars_red_bank_types::{ + params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, + red_bank::{ + InitOrUpdateAssetParams, InterestRateModel, UserHealthStatus, UserPositionResponse, + }, }; use osmosis_std::types::osmosis::{ gamm::v1beta1::{MsgSwapExactAmountIn, MsgSwapExactAmountInResponse}, diff --git a/integration-tests/tests/test_oracles.rs b/integration-tests/tests/test_oracles.rs index 6ee485ae4..49e44ccdc 100644 --- a/integration-tests/tests/test_oracles.rs +++ b/integration-tests/tests/test_oracles.rs @@ -7,13 +7,13 @@ use mars_oracle_osmosis::{ msg::PriceSourceResponse, DowntimeDetector, GeometricTwap, OsmosisPriceSourceChecked, OsmosisPriceSourceUnchecked, RedemptionRate, }; -use mars_params::msg::AssetParamsUpdate; use mars_red_bank_types::{ address_provider::{ ExecuteMsg::SetAddress, InstantiateMsg as InstantiateAddr, MarsAddressType, }, incentives::InstantiateMsg as InstantiateIncentives, oracle::{ExecuteMsg, InstantiateMsg, PriceResponse, QueryMsg}, + params::AssetParamsUpdate, red_bank::{ CreateOrUpdateConfig, ExecuteMsg as ExecuteRedBank, ExecuteMsg::{Borrow, Deposit}, @@ -1292,7 +1292,7 @@ fn setup_redbank(wasm: &Wasm, signer: &SigningAccount) -> (Strin wasm, signer, OSMOSIS_PARAMS_CONTRACT_NAME, - &mars_params::msg::InstantiateMsg { + &mars_red_bank_types::params::InstantiateMsg { owner: (signer.address()), address_provider: addr_provider_addr.clone(), target_health_factor: Decimal::from_str("1.05").unwrap(), @@ -1380,9 +1380,11 @@ fn setup_redbank(wasm: &Wasm, signer: &SigningAccount) -> (Strin .unwrap(); wasm.execute( ¶ms_addr, - &mars_params::msg::ExecuteMsg::UpdateAssetParams(AssetParamsUpdate::AddOrUpdate { - params: asset_params.into(), - }), + &mars_red_bank_types::params::ExecuteMsg::UpdateAssetParams( + AssetParamsUpdate::AddOrUpdate { + params: asset_params.into(), + }, + ), &[], signer, ) @@ -1403,9 +1405,11 @@ fn setup_redbank(wasm: &Wasm, signer: &SigningAccount) -> (Strin wasm.execute( ¶ms_addr, - &mars_params::msg::ExecuteMsg::UpdateAssetParams(AssetParamsUpdate::AddOrUpdate { - params: asset_params.into(), - }), + &mars_red_bank_types::params::ExecuteMsg::UpdateAssetParams( + AssetParamsUpdate::AddOrUpdate { + params: asset_params.into(), + }, + ), &[], signer, ) diff --git a/integration-tests/tests/test_user_flow.rs b/integration-tests/tests/test_user_flow.rs index 8f3813b76..602ce5300 100644 --- a/integration-tests/tests/test_user_flow.rs +++ b/integration-tests/tests/test_user_flow.rs @@ -1,8 +1,8 @@ use std::str::FromStr; use cosmwasm_std::{coin, Addr, Decimal, Uint128}; -use mars_params::types::asset::LiquidationBonus; use mars_red_bank::error::ContractError; +use mars_red_bank_types::params::asset::LiquidationBonus; use mars_testing::integration::mock_env::{MockEnv, MockEnvBuilder, RedBank}; use crate::helpers::{assert_red_bank_err, default_asset_params, default_asset_params_with}; diff --git a/packages/health-computer/Cargo.toml b/packages/health-computer/Cargo.toml index de264713c..ebf7ede8e 100644 --- a/packages/health-computer/Cargo.toml +++ b/packages/health-computer/Cargo.toml @@ -20,6 +20,7 @@ cosmwasm-schema = { workspace = true } cosmwasm-std = { workspace = true } cw-vault-standard = { workspace = true } mars-params = { workspace = true } +mars-red-bank-types = { workspace = true } mars-rover = { workspace = true } mars-rover-health-types = { workspace = true } schemars = { workspace = true } diff --git a/packages/health-computer/src/data_types.rs b/packages/health-computer/src/data_types.rs index c2396fd57..ecd0ccb56 100644 --- a/packages/health-computer/src/data_types.rs +++ b/packages/health-computer/src/data_types.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use cosmwasm_schema::cw_serde; use cosmwasm_std::{Addr, Decimal, Uint128}; -use mars_params::types::{asset::AssetParams, vault::VaultConfig}; +use mars_red_bank_types::params::{asset::AssetParams, vault::VaultConfig}; use mars_rover::adapters::vault::VaultPositionValue; /// Used as storage when trying to compute Health diff --git a/packages/health-computer/src/health_computer.rs b/packages/health-computer/src/health_computer.rs index 1b4a67816..7a7ad7657 100644 --- a/packages/health-computer/src/health_computer.rs +++ b/packages/health-computer/src/health_computer.rs @@ -2,7 +2,7 @@ use std::cmp::min; use cosmwasm_schema::cw_serde; use cosmwasm_std::{Coin, Decimal, Uint128}; -use mars_params::types::{ +use mars_red_bank_types::params::{ asset::{AssetParams, CmSettings}, vault::VaultConfig, }; diff --git a/packages/health-computer/tests/helpers/mock_coin_info.rs b/packages/health-computer/tests/helpers/mock_coin_info.rs index d02e3a6c7..c77addfe8 100644 --- a/packages/health-computer/tests/helpers/mock_coin_info.rs +++ b/packages/health-computer/tests/helpers/mock_coin_info.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use cosmwasm_schema::cw_serde; use cosmwasm_std::Decimal; -use mars_params::types::{ +use mars_red_bank_types::params::{ asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, hls::{HlsAssetType, HlsParams}, }; diff --git a/packages/health-computer/tests/helpers/mock_vault_config.rs b/packages/health-computer/tests/helpers/mock_vault_config.rs index 4a6041ebf..0be409818 100644 --- a/packages/health-computer/tests/helpers/mock_vault_config.rs +++ b/packages/health-computer/tests/helpers/mock_vault_config.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{coin, Addr, Decimal}; -use mars_params::types::vault::VaultConfig; +use mars_red_bank_types::params::vault::VaultConfig; pub fn osmo_atom_1_config() -> VaultConfig { VaultConfig { diff --git a/packages/health-computer/tests/helpers/prop_test_strategies.rs b/packages/health-computer/tests/helpers/prop_test_strategies.rs index 2e382d0b7..48ce433c7 100644 --- a/packages/health-computer/tests/helpers/prop_test_strategies.rs +++ b/packages/health-computer/tests/helpers/prop_test_strategies.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use cosmwasm_std::{Addr, Coin, Decimal, Uint128}; -use mars_params::types::{ +use mars_red_bank_types::params::{ asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, hls::HlsParams, vault::VaultConfig, @@ -174,8 +174,10 @@ fn random_param_maps() -> impl Strategy { random_denoms_data().prop_flat_map(|denoms_data| { vec(random_vault(denoms_data.clone()), 0..=3).prop_map(move |vaults| { let mut vault_values = HashMap::new(); - let mut vault_configs: HashMap> = - HashMap::new(); + let mut vault_configs: HashMap< + Addr, + mars_red_bank_types::params::vault::VaultConfigBase, + > = HashMap::new(); for (addr, position_val, config) in vaults { let addr = Addr::unchecked(addr.clone()); diff --git a/packages/health-computer/tests/test_health_scenarios.rs b/packages/health-computer/tests/test_health_scenarios.rs index 241a4bf85..43c4ece36 100644 --- a/packages/health-computer/tests/test_health_scenarios.rs +++ b/packages/health-computer/tests/test_health_scenarios.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, ops::Add, str::FromStr}; use cosmwasm_std::{coin, Addr, Coin, Decimal, Uint128}; -use mars_params::types::vault::VaultConfig; +use mars_red_bank_types::params::vault::VaultConfig; use mars_rover::{ adapters::vault::{ CoinValue, LockingVaultAmount, UnlockingPositions, Vault, VaultAmount, VaultPosition, diff --git a/packages/health-computer/tests/test_hls.rs b/packages/health-computer/tests/test_hls.rs index 32ea3fa75..daa37b71e 100644 --- a/packages/health-computer/tests/test_hls.rs +++ b/packages/health-computer/tests/test_hls.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, str::FromStr}; use cosmwasm_std::{coin, Addr, Coin, Decimal, Uint128}; -use mars_params::types::{hls::HlsParams, vault::VaultConfig}; +use mars_red_bank_types::params::{hls::HlsParams, vault::VaultConfig}; use mars_rover::{ adapters::vault::{ CoinValue, Vault, VaultAmount, VaultPosition, VaultPositionAmount, VaultPositionValue, diff --git a/packages/health-computer/tests/test_input_validation.rs b/packages/health-computer/tests/test_input_validation.rs index 644d24b13..6de15ab5b 100644 --- a/packages/health-computer/tests/test_input_validation.rs +++ b/packages/health-computer/tests/test_input_validation.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use cosmwasm_std::{coin, Addr, Uint128}; -use mars_params::types::vault::VaultConfig; +use mars_red_bank_types::params::vault::VaultConfig; use mars_rover::{ adapters::vault::{ CoinValue, Vault, VaultAmount, VaultPosition, VaultPositionAmount, VaultPositionValue, diff --git a/packages/health-computer/tests/test_max_borrow_validation.rs b/packages/health-computer/tests/test_max_borrow_validation.rs index 9c5d8fe34..0ab65af85 100644 --- a/packages/health-computer/tests/test_max_borrow_validation.rs +++ b/packages/health-computer/tests/test_max_borrow_validation.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, str::FromStr}; use cosmwasm_std::{coin, Addr, Decimal, Uint128}; -use mars_params::types::{hls::HlsParams, vault::VaultConfig}; +use mars_red_bank_types::params::{hls::HlsParams, vault::VaultConfig}; use mars_rover::{ adapters::vault::{ CoinValue, Vault, VaultAmount, VaultPosition, VaultPositionAmount, VaultPositionValue, diff --git a/packages/health-computer/tests/test_max_swap_validation.rs b/packages/health-computer/tests/test_max_swap_validation.rs index 8fd963c0a..82bbf542c 100644 --- a/packages/health-computer/tests/test_max_swap_validation.rs +++ b/packages/health-computer/tests/test_max_swap_validation.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, str::FromStr}; use cosmwasm_std::{coin, Addr, Decimal, Uint128}; -use mars_params::types::{hls::HlsParams, vault::VaultConfig}; +use mars_red_bank_types::params::{hls::HlsParams, vault::VaultConfig}; use mars_rover::{ adapters::vault::{ CoinValue, Vault, VaultAmount, VaultPosition, VaultPositionAmount, VaultPositionValue, diff --git a/packages/health-computer/tests/test_max_withdraw.rs b/packages/health-computer/tests/test_max_withdraw.rs index 12ee04491..d83c9cebf 100644 --- a/packages/health-computer/tests/test_max_withdraw.rs +++ b/packages/health-computer/tests/test_max_withdraw.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, str::FromStr}; use cosmwasm_std::{coin, Addr, Decimal, Uint128}; -use mars_params::types::{hls::HlsParams, vault::VaultConfig}; +use mars_red_bank_types::params::{hls::HlsParams, vault::VaultConfig}; use mars_rover::{ adapters::vault::{ CoinValue, Vault, VaultAmount, VaultPosition, VaultPositionAmount, VaultPositionValue, diff --git a/packages/health/src/health.rs b/packages/health/src/health.rs index f48e1e508..f112fbed2 100644 --- a/packages/health/src/health.rs +++ b/packages/health/src/health.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, fmt}; use cosmwasm_std::{Addr, Coin, Decimal, Fraction, QuerierWrapper, StdResult, Uint128}; -use mars_params::types::asset::AssetParams; +use mars_red_bank_types::params::asset::AssetParams; use crate::{error::HealthError, query::MarsQuerier}; diff --git a/packages/health/src/query.rs b/packages/health/src/query.rs index 29bf5ae41..eb5da4138 100644 --- a/packages/health/src/query.rs +++ b/packages/health/src/query.rs @@ -1,6 +1,8 @@ use cosmwasm_std::{Addr, Decimal, QuerierWrapper, StdResult}; -use mars_params::types::asset::AssetParams; -use mars_red_bank_types::oracle::{self, ActionKind, PriceResponse}; +use mars_red_bank_types::{ + oracle::{self, ActionKind, PriceResponse}, + params::asset::AssetParams, +}; pub struct MarsQuerier<'a> { querier: &'a QuerierWrapper<'a>, @@ -20,7 +22,7 @@ impl<'a> MarsQuerier<'a> { pub fn query_asset_params(&self, denom: &str) -> StdResult { self.querier.query_wasm_smart( self.params_addr, - &mars_params::msg::QueryMsg::AssetParams { + &mars_red_bank_types::params::QueryMsg::AssetParams { denom: denom.to_string(), }, ) diff --git a/packages/health/tests/test_from_coins_to_positions.rs b/packages/health/tests/test_from_coins_to_positions.rs index 9aa85fe0a..c6883fe2d 100644 --- a/packages/health/tests/test_from_coins_to_positions.rs +++ b/packages/health/tests/test_from_coins_to_positions.rs @@ -7,8 +7,10 @@ use mars_health::{ health::{Health, Position}, query::MarsQuerier, }; -use mars_params::types::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}; -use mars_red_bank_types::red_bank::Market; +use mars_red_bank_types::{ + params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, + red_bank::Market, +}; use mars_testing::MarsMockQuerier; // Test converting a collection of coins (collateral and debts) to a map of `Position` diff --git a/packages/health/tests/test_health_from_coins.rs b/packages/health/tests/test_health_from_coins.rs index 234cedcea..a35f7d57d 100644 --- a/packages/health/tests/test_health_from_coins.rs +++ b/packages/health/tests/test_health_from_coins.rs @@ -5,8 +5,10 @@ use cosmwasm_std::{ Uint128, }; use mars_health::{error::HealthError, health::Health}; -use mars_params::types::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}; -use mars_red_bank_types::red_bank::Market; +use mars_red_bank_types::{ + params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, + red_bank::Market, +}; use mars_testing::MarsMockQuerier; #[test] diff --git a/packages/liquidation/Cargo.toml b/packages/liquidation/Cargo.toml index 472fe809f..58b7fc234 100644 --- a/packages/liquidation/Cargo.toml +++ b/packages/liquidation/Cargo.toml @@ -19,7 +19,7 @@ doctest = false backtraces = ["cosmwasm-std/backtraces"] [dependencies] -cosmwasm-std = { workspace = true } -mars-health = { workspace = true } -mars-params = { workspace = true } -thiserror = { workspace = true } +cosmwasm-std = { workspace = true } +mars-health = { workspace = true } +mars-red-bank-types = { workspace = true } +thiserror = { workspace = true } diff --git a/packages/liquidation/src/liquidation.rs b/packages/liquidation/src/liquidation.rs index 54a00d5c1..afdf65519 100644 --- a/packages/liquidation/src/liquidation.rs +++ b/packages/liquidation/src/liquidation.rs @@ -5,7 +5,7 @@ use std::{ use cosmwasm_std::{Decimal, StdError, Uint128}; use mars_health::health::Health; -use mars_params::types::asset::AssetParams; +use mars_red_bank_types::params::asset::AssetParams; use crate::error::LiquidationError; diff --git a/packages/rover/src/adapters/params.rs b/packages/rover/src/adapters/params.rs index 709af98ff..b40fd4076 100644 --- a/packages/rover/src/adapters/params.rs +++ b/packages/rover/src/adapters/params.rs @@ -1,8 +1,7 @@ use cosmwasm_schema::cw_serde; use cosmwasm_std::{Addr, Api, Decimal, QuerierWrapper, StdResult}; -use mars_params::{ - msg::{QueryMsg, TotalDepositResponse}, - types::{asset::AssetParams, vault::VaultConfig}, +use mars_red_bank_types::params::{ + asset::AssetParams, vault::VaultConfig, QueryMsg, TotalDepositResponse, }; #[cw_serde] diff --git a/packages/testing/src/integration/mock_env.rs b/packages/testing/src/integration/mock_env.rs index b40da20b3..d5cb429bf 100644 --- a/packages/testing/src/integration/mock_env.rs +++ b/packages/testing/src/integration/mock_env.rs @@ -6,7 +6,6 @@ use anyhow::Result as AnyResult; use cosmwasm_std::{coin, Addr, Coin, Decimal, Empty, StdResult, Uint128}; use cw_multi_test::{App, AppResponse, BankSudo, BasicApp, Executor, SudoMsg}; use mars_oracle_osmosis::OsmosisPriceSourceUnchecked; -use mars_params::{msg::AssetParamsUpdate, types::asset::AssetParams}; use mars_red_bank_types::{ address_provider::{self, MarsAddressType}, incentives, @@ -15,6 +14,7 @@ use mars_red_bank_types::{ ActionKind::{Default as ActionDefault, Liquidation}, PriceResponse, }, + params::{asset::AssetParams, AssetParamsUpdate}, red_bank::{ self, CreateOrUpdateConfig, InitOrUpdateAssetParams, Market, UncollateralizedLoanLimitResponse, UserCollateralResponse, UserDebtResponse, @@ -704,9 +704,11 @@ impl Params { .execute_contract( env.owner.clone(), self.contract_addr.clone(), - &mars_params::msg::ExecuteMsg::UpdateAssetParams(AssetParamsUpdate::AddOrUpdate { - params: params.into(), - }), + &mars_red_bank_types::params::ExecuteMsg::UpdateAssetParams( + AssetParamsUpdate::AddOrUpdate { + params: params.into(), + }, + ), &[], ) .unwrap(); @@ -717,7 +719,7 @@ impl Params { .wrap() .query_wasm_smart( self.contract_addr.clone(), - &mars_params::msg::QueryMsg::AssetParams { + &mars_red_bank_types::params::QueryMsg::AssetParams { denom: denom.to_string(), }, ) @@ -983,7 +985,7 @@ impl MockEnvBuilder { .instantiate_contract( code_id, self.owner.clone(), - &mars_params::msg::InstantiateMsg { + &mars_red_bank_types::params::InstantiateMsg { owner: self.owner.to_string(), address_provider: address_provider_addr.to_string(), target_health_factor: self.target_health_factor, diff --git a/packages/testing/src/mars_mock_querier.rs b/packages/testing/src/mars_mock_querier.rs index af54f93bf..6393aa583 100644 --- a/packages/testing/src/mars_mock_querier.rs +++ b/packages/testing/src/mars_mock_querier.rs @@ -6,8 +6,9 @@ use cosmwasm_std::{ }; use ica_oracle::msg::RedemptionRateResponse; use mars_oracle_osmosis::DowntimeDetector; -use mars_params::types::asset::AssetParams; -use mars_red_bank_types::{address_provider, incentives, oracle, red_bank}; +use mars_red_bank_types::{ + address_provider, incentives, oracle, params::asset::AssetParams, red_bank, +}; use osmosis_std::types::osmosis::{ downtimedetector::v1beta1::RecoveredSinceDowntimeOfLengthResponse, poolmanager::v1beta1::{PoolResponse, SpotPriceResponse}, @@ -256,7 +257,8 @@ impl MarsMockQuerier { } // Params Queries - if let Ok(params_query) = from_binary::(msg) { + if let Ok(params_query) = from_binary::(msg) + { return self.params_querier.handle_query(params_query); } diff --git a/packages/testing/src/params_querier.rs b/packages/testing/src/params_querier.rs index f3598e2ba..f5ab60f05 100644 --- a/packages/testing/src/params_querier.rs +++ b/packages/testing/src/params_querier.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use cosmwasm_std::{to_binary, Binary, Coin, ContractResult, Decimal, QuerierResult, Uint128}; -use mars_params::{msg::QueryMsg, types::asset::AssetParams}; +use mars_red_bank_types::params::{asset::AssetParams, QueryMsg}; #[derive(Default)] pub struct ParamsQuerier { diff --git a/packages/types/src/error.rs b/packages/types/src/error.rs index e9cb63111..46030e1df 100644 --- a/packages/types/src/error.rs +++ b/packages/types/src/error.rs @@ -1,6 +1,7 @@ use cosmwasm_std::{ CheckedFromRatioError, CheckedMultiplyFractionError, DivideByZeroError, OverflowError, StdError, }; +use mars_utils::error::ValidationError; use thiserror::Error; #[derive(Error, Debug, PartialEq)] @@ -36,6 +37,9 @@ pub enum MarsError { #[error("{0}")] CheckedMultiplyFraction(#[from] CheckedMultiplyFractionError), + + #[error("{0}")] + Validation(#[from] ValidationError), } impl From for StdError { diff --git a/packages/types/src/lib.rs b/packages/types/src/lib.rs index e31a493a6..c5c411a3a 100644 --- a/packages/types/src/lib.rs +++ b/packages/types/src/lib.rs @@ -3,6 +3,7 @@ pub mod error; pub mod incentives; pub mod keys; pub mod oracle; +pub mod params; pub mod red_bank; pub mod rewards_collector; pub mod swapper; diff --git a/packages/types/src/params/mod.rs b/packages/types/src/params/mod.rs new file mode 100644 index 000000000..5405265e4 --- /dev/null +++ b/packages/types/src/params/mod.rs @@ -0,0 +1,5 @@ +mod msg; +mod types; + +pub use msg::*; +pub use types::*; diff --git a/contracts/params/src/msg.rs b/packages/types/src/params/msg.rs similarity index 87% rename from contracts/params/src/msg.rs rename to packages/types/src/params/msg.rs index 679c724d9..b0c1e35eb 100644 --- a/contracts/params/src/msg.rs +++ b/packages/types/src/params/msg.rs @@ -2,7 +2,7 @@ use cosmwasm_schema::{cw_serde, QueryResponses}; use cosmwasm_std::{Decimal, Uint128}; use mars_owner::OwnerUpdate; -use crate::types::{asset::AssetParamsUnchecked, vault::VaultConfigUnchecked}; +use super::{asset::AssetParamsUnchecked, vault::VaultConfigUnchecked}; #[cw_serde] pub struct InstantiateMsg { @@ -32,27 +32,27 @@ pub enum QueryMsg { #[returns(mars_owner::OwnerResponse)] Owner {}, - #[returns(crate::msg::ConfigResponse)] + #[returns(super::msg::ConfigResponse)] Config {}, - #[returns(crate::types::asset::AssetParams)] + #[returns(super::types::asset::AssetParams)] AssetParams { denom: String, }, - #[returns(Vec)] + #[returns(Vec)] AllAssetParams { start_after: Option, limit: Option, }, - #[returns(crate::types::vault::VaultConfig)] + #[returns(super::types::vault::VaultConfig)] VaultConfig { /// Address of vault address: String, }, - #[returns(Vec)] + #[returns(Vec)] AllVaultConfigs { start_after: Option, limit: Option, diff --git a/contracts/params/src/types/asset.rs b/packages/types/src/params/types/asset.rs similarity index 96% rename from contracts/params/src/types/asset.rs rename to packages/types/src/params/types/asset.rs index 2021c317e..2e97cb420 100644 --- a/contracts/params/src/types/asset.rs +++ b/packages/types/src/params/types/asset.rs @@ -5,11 +5,8 @@ use mars_utils::{ helpers::{decimal_param_le_one, decimal_param_lt_one, validate_native_denom}, }; -use crate::{ - error::ContractResult, - execute::{assert_hls_lqt_gt_max_ltv, assert_lqt_gt_max_ltv}, - types::hls::HlsParamsBase, -}; +use super::{assert_hls_lqt_gt_max_ltv, assert_lqt_gt_max_ltv, hls::HlsParamsBase}; +use crate::error::MarsError; #[cw_serde] pub struct CmSettings { @@ -146,7 +143,7 @@ impl From for AssetParamsUnchecked { } impl AssetParamsUnchecked { - pub fn check(&self, api: &dyn Api) -> ContractResult { + pub fn check(&self, api: &dyn Api) -> Result { validate_native_denom(&self.denom)?; decimal_param_lt_one(self.max_loan_to_value, "max_loan_to_value")?; diff --git a/contracts/params/src/types/hls.rs b/packages/types/src/params/types/hls.rs similarity index 93% rename from contracts/params/src/types/hls.rs rename to packages/types/src/params/types/hls.rs index d6cd96536..77454371d 100644 --- a/contracts/params/src/types/hls.rs +++ b/packages/types/src/params/types/hls.rs @@ -2,7 +2,7 @@ use cosmwasm_schema::cw_serde; use cosmwasm_std::{Addr, Api, Decimal}; use mars_utils::helpers::validate_native_denom; -use crate::error::ContractResult; +use crate::error::MarsError; #[cw_serde] pub enum HlsAssetType { @@ -54,7 +54,7 @@ impl From for HlsParamsUnchecked { } impl HlsParamsUnchecked { - pub fn check(&self, api: &dyn Api) -> ContractResult { + pub fn check(&self, api: &dyn Api) -> Result { Ok(HlsParamsBase { max_loan_to_value: self.max_loan_to_value, liquidation_threshold: self.liquidation_threshold, @@ -76,7 +76,7 @@ impl HlsParamsUnchecked { addr: api.addr_validate(addr)?, }), }) - .collect::>>()?, + .collect::, MarsError>>()?, }) } } diff --git a/packages/types/src/params/types/mod.rs b/packages/types/src/params/types/mod.rs new file mode 100644 index 000000000..25509df28 --- /dev/null +++ b/packages/types/src/params/types/mod.rs @@ -0,0 +1,35 @@ +use cosmwasm_std::Decimal; +use mars_utils::error::ValidationError; + +pub mod asset; +pub mod hls; +pub mod vault; + +/// liquidation_threshold should be greater than or equal to max_loan_to_value +pub fn assert_lqt_gt_max_ltv( + max_ltv: Decimal, + liq_threshold: Decimal, +) -> Result<(), ValidationError> { + if liq_threshold <= max_ltv { + return Err(ValidationError::InvalidParam { + param_name: "liquidation_threshold".to_string(), + invalid_value: liq_threshold.to_string(), + predicate: format!("> {} (max LTV)", max_ltv), + }); + } + Ok(()) +} + +pub fn assert_hls_lqt_gt_max_ltv( + max_ltv: Decimal, + liq_threshold: Decimal, +) -> Result<(), ValidationError> { + if liq_threshold <= max_ltv { + return Err(ValidationError::InvalidParam { + param_name: "hls_liquidation_threshold".to_string(), + invalid_value: liq_threshold.to_string(), + predicate: format!("> {} (hls max LTV)", max_ltv), + }); + } + Ok(()) +} diff --git a/contracts/params/src/types/vault.rs b/packages/types/src/params/types/vault.rs similarity index 89% rename from contracts/params/src/types/vault.rs rename to packages/types/src/params/types/vault.rs index e7b8f6fcf..b284920ff 100644 --- a/contracts/params/src/types/vault.rs +++ b/packages/types/src/params/types/vault.rs @@ -2,11 +2,8 @@ use cosmwasm_schema::cw_serde; use cosmwasm_std::{Addr, Api, Coin, Decimal}; use mars_utils::helpers::decimal_param_le_one; -use crate::{ - error::ContractResult, - execute::{assert_hls_lqt_gt_max_ltv, assert_lqt_gt_max_ltv}, - types::hls::HlsParamsBase, -}; +use super::{assert_hls_lqt_gt_max_ltv, assert_lqt_gt_max_ltv, hls::HlsParamsBase}; +use crate::error::MarsError; #[cw_serde] pub struct VaultConfigBase { @@ -35,7 +32,7 @@ impl From for VaultConfigUnchecked { } impl VaultConfigUnchecked { - pub fn check(&self, api: &dyn Api) -> ContractResult { + pub fn check(&self, api: &dyn Api) -> Result { decimal_param_le_one(self.max_loan_to_value, "max_loan_to_value")?; decimal_param_le_one(self.liquidation_threshold, "liquidation_threshold")?; assert_lqt_gt_max_ltv(self.max_loan_to_value, self.liquidation_threshold)?; From a88a6a942021f8378139287dbea01930f6e3b471 Mon Sep 17 00:00:00 2001 From: piobab Date: Wed, 11 Oct 2023 18:18:03 +0200 Subject: [PATCH 2/3] Remove mars-params library feature. --- Cargo.toml | 6 +--- contracts/credit-manager/Cargo.toml | 2 +- contracts/health/Cargo.toml | 2 +- .../tests/tests/test_asset_validation.rs | 33 ++++++++++--------- .../tests/tests/test_vault_validation.rs | 15 +++++---- packages/types/src/incentives.rs | 4 +-- 6 files changed, 30 insertions(+), 32 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b074ce4d7..d3a5d2db9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -119,11 +119,7 @@ mars-mock-pyth = { path = "./contracts/mock-pyth" } mars-oracle-base = { path = "./contracts/oracle/base" } mars-oracle-osmosis = { path = "./contracts/oracle/osmosis" } mars-oracle-wasm = { path = "./contracts/oracle/wasm" } -# mars-params needs the `library` flag because mars-rover-health depends on it. -# We should remove the type definitions in a "mars-types" crate and have the -# health contract depend on it instead. This way, we can remove the library flag -# here. -mars-params = { path = "./contracts/params", features = ["library"] } +mars-params = { path = "./contracts/params" } mars-red-bank = { path = "./contracts/red-bank" } mars-rewards-collector-base = { path = "./contracts/rewards-collector/base" } mars-rewards-collector-neutron = { path = "./contracts/rewards-collector/neutron" } diff --git a/contracts/credit-manager/Cargo.toml b/contracts/credit-manager/Cargo.toml index 0da39be41..e468dd03c 100644 --- a/contracts/credit-manager/Cargo.toml +++ b/contracts/credit-manager/Cargo.toml @@ -30,7 +30,6 @@ cw-utils = { workspace = true } cw-vault-standard = { workspace = true } mars-account-nft-types = { workspace = true } mars-liquidation = { workspace = true } -mars-params = { workspace = true } mars-owner = { workspace = true } mars-red-bank-types = { workspace = true } mars-rover = { workspace = true } @@ -46,6 +45,7 @@ mars-mock-incentives = { workspace = true } mars-mock-oracle = { workspace = true } mars-mock-red-bank = { workspace = true } mars-mock-vault = { workspace = true } +mars-params = { workspace = true } mars-rover-health = { workspace = true } mars-swapper-mock = { workspace = true } mars-zapper-mock = { workspace = true } diff --git a/contracts/health/Cargo.toml b/contracts/health/Cargo.toml index 2cbfad5fb..493e3d787 100644 --- a/contracts/health/Cargo.toml +++ b/contracts/health/Cargo.toml @@ -24,7 +24,6 @@ cosmwasm-std = { workspace = true } cw2 = { workspace = true } cw-storage-plus = { workspace = true } mars-owner = { workspace = true } -mars-params = { workspace = true } mars-red-bank-types = { workspace = true } mars-rover-health-computer = { workspace = true } mars-rover-health-types = { workspace = true } @@ -38,4 +37,5 @@ cw-utils = { workspace = true } cw-vault-standard = { workspace = true } mars-mock-credit-manager = { workspace = true } mars-mock-oracle = { workspace = true } +mars-params = { workspace = true } mars-mock-vault = { workspace = true } diff --git a/contracts/params/tests/tests/test_asset_validation.rs b/contracts/params/tests/tests/test_asset_validation.rs index bcc6203b6..c9bc69e7f 100644 --- a/contracts/params/tests/tests/test_asset_validation.rs +++ b/contracts/params/tests/tests/test_asset_validation.rs @@ -1,6 +1,7 @@ use std::str::FromStr; use cosmwasm_std::Decimal; +use mars_params::error::ContractError; use mars_red_bank_types::{ error::MarsError::Validation, params::{ @@ -25,7 +26,7 @@ fn denom_must_be_native() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidDenom { + ContractError::Mars(Validation(InvalidDenom { reason: "Invalid denom length".to_string(), })), ); @@ -45,7 +46,7 @@ fn max_ltv_less_than_one() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "max_loan_to_value".to_string(), invalid_value: "1.1235".to_string(), predicate: "< 1".to_string(), @@ -67,7 +68,7 @@ fn liquidation_threshold_less_than_or_equal_to_one() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "liquidation_threshold".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), @@ -90,7 +91,7 @@ fn liq_threshold_gt_max_ltv() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "liquidation_threshold".to_string(), invalid_value: "0.5".to_string(), predicate: "> 0.6 (max LTV)".to_string(), @@ -116,7 +117,7 @@ fn hls_max_ltv_less_than_one() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "hls_max_loan_to_value".to_string(), invalid_value: "1.1235".to_string(), predicate: "< 1".to_string(), @@ -142,7 +143,7 @@ fn hls_liquidation_threshold_less_than_or_equal_to_one() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "hls_liquidation_threshold".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), @@ -168,7 +169,7 @@ fn hls_liq_threshold_gt_hls_max_ltv() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "hls_liquidation_threshold".to_string(), invalid_value: "0.5".to_string(), predicate: "> 0.6 (hls max LTV)".to_string(), @@ -196,7 +197,7 @@ fn correlations_must_be_valid_denoms() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidDenom { + ContractError::Mars(Validation(InvalidDenom { reason: "Invalid denom length".to_string(), })), ); @@ -216,7 +217,7 @@ fn protocol_liquidation_fee_less_than_one() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "protocol_liquidation_fee".to_string(), invalid_value: "1".to_string(), predicate: "< 1".to_string(), @@ -238,7 +239,7 @@ fn liquidation_bonus_param_b_out_of_range() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "starting_lb".to_string(), invalid_value: "0.101".to_string(), predicate: "[0, 0.1]".to_string(), @@ -260,7 +261,7 @@ fn liquidation_bonus_param_slope_out_of_range() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "slope".to_string(), invalid_value: "0.99".to_string(), predicate: "[1, 5]".to_string(), @@ -276,7 +277,7 @@ fn liquidation_bonus_param_slope_out_of_range() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "slope".to_string(), invalid_value: "5.01".to_string(), predicate: "[1, 5]".to_string(), @@ -298,7 +299,7 @@ fn liquidation_bonus_param_min_lb_out_of_range() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "min_lb".to_string(), invalid_value: "0.101".to_string(), predicate: "[0, 0.1]".to_string(), @@ -320,7 +321,7 @@ fn liquidation_bonus_param_max_lb_out_of_range() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "max_lb".to_string(), invalid_value: "0.0499".to_string(), predicate: "[0.05, 0.3]".to_string(), @@ -336,7 +337,7 @@ fn liquidation_bonus_param_max_lb_out_of_range() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "max_lb".to_string(), invalid_value: "0.31".to_string(), predicate: "[0.05, 0.3]".to_string(), @@ -359,7 +360,7 @@ fn liquidation_bonus_param_max_lb_gt_min_lb() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "max_lb".to_string(), invalid_value: "0.07".to_string(), predicate: "> 0.08 (min LB)".to_string(), diff --git a/contracts/params/tests/tests/test_vault_validation.rs b/contracts/params/tests/tests/test_vault_validation.rs index fd3c1e5a6..6ae7dd3a5 100644 --- a/contracts/params/tests/tests/test_vault_validation.rs +++ b/contracts/params/tests/tests/test_vault_validation.rs @@ -1,6 +1,7 @@ use std::str::FromStr; use cosmwasm_std::{Decimal, StdError::GenericErr}; +use mars_params::error::ContractError; use mars_red_bank_types::{ error::MarsError::{Std, Validation}, params::{hls::HlsParamsUnchecked, VaultConfigUpdate}, @@ -21,7 +22,7 @@ fn vault_addr_must_be_valid() { ); assert_err( res, - mars_params::error::ContractError::Mars(Std(GenericErr { msg: "Invalid input: human address too short for this mock implementation (must be >= 3).".to_string() })), + ContractError::Mars(Std(GenericErr { msg: "Invalid input: human address too short for this mock implementation (must be >= 3).".to_string() })), ); } @@ -39,7 +40,7 @@ fn vault_max_ltv_less_than_or_equal_to_one() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "max_loan_to_value".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), @@ -61,7 +62,7 @@ fn vault_liquidation_threshold_less_than_or_equal_to_one() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "liquidation_threshold".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), @@ -84,7 +85,7 @@ fn vault_liq_threshold_gt_max_ltv() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "liquidation_threshold".to_string(), invalid_value: "0.5".to_string(), predicate: "> 0.6 (max LTV)".to_string(), @@ -110,7 +111,7 @@ fn vault_hls_max_ltv_less_than_or_equal_to_one() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "hls_max_loan_to_value".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), @@ -136,7 +137,7 @@ fn vault_hls_liquidation_threshold_less_than_or_equal_to_one() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "hls_liquidation_threshold".to_string(), invalid_value: "1.1235".to_string(), predicate: "<= 1".to_string(), @@ -162,7 +163,7 @@ fn vault_hls_liq_threshold_gt_max_ltv() { ); assert_err( res, - mars_params::error::ContractError::Mars(Validation(InvalidParam { + ContractError::Mars(Validation(InvalidParam { param_name: "hls_liquidation_threshold".to_string(), invalid_value: "0.5".to_string(), predicate: "> 0.6 (hls max LTV)".to_string(), diff --git a/packages/types/src/incentives.rs b/packages/types/src/incentives.rs index 8440536a1..7e100594c 100644 --- a/packages/types/src/incentives.rs +++ b/packages/types/src/incentives.rs @@ -1,5 +1,5 @@ use cosmwasm_schema::{cw_serde, QueryResponses}; -use cosmwasm_std::{Addr, Coin, Decimal, Uint128}; +use cosmwasm_std::{Addr, Decimal, Uint128}; use mars_owner::OwnerUpdate; /// Global configuration @@ -247,7 +247,7 @@ pub enum QueryMsg { }, /// Query user current unclaimed rewards - #[returns(Vec)] + #[returns(Vec)] UserUnclaimedRewards { /// The user address for which to query unclaimed rewards user: String, From 70622b271785646856e4f16a186aa74c03d86015 Mon Sep 17 00:00:00 2001 From: larry <26318510+larry0x@users.noreply.github.com> Date: Wed, 11 Oct 2023 18:47:58 +0100 Subject: [PATCH 3/3] reorganize files a bit --- contracts/credit-manager/src/hls.rs | 2 +- .../credit-manager/tests/helpers/builders.rs | 2 +- .../tests/helpers/mock_entity_info.rs | 5 +- .../credit-manager/tests/helpers/mock_env.rs | 7 +- .../credit-manager/tests/helpers/types.rs | 3 +- .../tests/test_claim_rewards.rs | 2 +- .../credit-manager/tests/test_deposit_cap.rs | 2 +- contracts/credit-manager/tests/test_health.rs | 2 +- .../credit-manager/tests/test_hls_accounts.rs | 2 +- contracts/credit-manager/tests/test_repay.rs | 2 +- .../tests/test_utilization_query.rs | 2 +- contracts/health/src/querier.rs | 2 +- contracts/health/tests/helpers/defaults.rs | 3 +- contracts/health/tests/helpers/mock_env.rs | 3 +- .../health/tests/helpers/mock_env_builder.rs | 4 +- contracts/health/tests/test_health_values.rs | 6 +- .../health/tests/test_liquidation_pricing.rs | 5 +- contracts/params/src/query.rs | 2 +- contracts/params/src/state.rs | 2 +- .../params/tests/tests/helpers/generator.rs | 3 +- .../params/tests/tests/helpers/mock_env.rs | 4 +- .../tests/tests/test_asset_validation.rs | 5 +- .../tests/tests/test_vault_validation.rs | 2 +- contracts/params/tests/tests/test_vaults.rs | 2 +- contracts/red-bank/src/helpers.rs | 2 +- contracts/red-bank/tests/tests/helpers/mod.rs | 2 +- contracts/red-bank/tests/tests/test_borrow.rs | 2 +- .../red-bank/tests/tests/test_deposit.rs | 2 +- .../red-bank/tests/tests/test_liquidate.rs | 2 +- contracts/red-bank/tests/tests/test_misc.rs | 2 +- .../red-bank/tests/tests/test_withdraw.rs | 2 +- integration-tests/tests/helpers.rs | 2 +- integration-tests/tests/test_user_flow.rs | 2 +- packages/health-computer/src/data_types.rs | 2 +- .../health-computer/src/health_computer.rs | 5 +- .../tests/helpers/mock_coin_info.rs | 3 +- .../tests/helpers/mock_vault_config.rs | 2 +- .../tests/helpers/prop_test_strategies.rs | 6 +- .../tests/test_health_scenarios.rs | 2 +- packages/health-computer/tests/test_hls.rs | 2 +- .../tests/test_input_validation.rs | 2 +- .../tests/test_max_borrow_validation.rs | 2 +- .../tests/test_max_swap_validation.rs | 2 +- .../tests/test_max_withdraw.rs | 2 +- packages/health/src/health.rs | 2 +- packages/health/src/query.rs | 2 +- .../tests/test_from_coins_to_positions.rs | 2 +- .../health/tests/test_health_from_coins.rs | 2 +- packages/liquidation/src/liquidation.rs | 2 +- packages/rover/src/adapters/params.rs | 4 +- packages/testing/src/integration/mock_env.rs | 2 +- packages/testing/src/mars_mock_querier.rs | 4 +- packages/testing/src/params_querier.rs | 2 +- packages/types/src/params/assertions.rs | 88 +++++++++++++++++++ .../types/src/params/{types => }/asset.rs | 64 ++------------ packages/types/src/params/{types => }/hls.rs | 0 packages/types/src/params/mod.rs | 9 +- packages/types/src/params/msg.rs | 8 +- packages/types/src/params/types/mod.rs | 35 -------- .../types/src/params/{types => }/vault.rs | 5 +- 60 files changed, 171 insertions(+), 182 deletions(-) create mode 100644 packages/types/src/params/assertions.rs rename packages/types/src/params/{types => }/asset.rs (70%) rename packages/types/src/params/{types => }/hls.rs (100%) delete mode 100644 packages/types/src/params/types/mod.rs rename packages/types/src/params/{types => }/vault.rs (94%) diff --git a/contracts/credit-manager/src/hls.rs b/contracts/credit-manager/src/hls.rs index c0dc55fca..fcbae52a3 100644 --- a/contracts/credit-manager/src/hls.rs +++ b/contracts/credit-manager/src/hls.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{Deps, Response}; -use mars_red_bank_types::params::hls::HlsAssetType; +use mars_red_bank_types::params::HlsAssetType; use mars_rover::error::{ContractError, ContractResult}; use mars_rover_health_types::AccountKind; diff --git a/contracts/credit-manager/tests/helpers/builders.rs b/contracts/credit-manager/tests/helpers/builders.rs index 97cd43b46..476d2f926 100644 --- a/contracts/credit-manager/tests/helpers/builders.rs +++ b/contracts/credit-manager/tests/helpers/builders.rs @@ -1,6 +1,6 @@ use cosmwasm_std::{coin, Decimal}; use cw_utils::Duration; -use mars_red_bank_types::params::asset::LiquidationBonus; +use mars_red_bank_types::params::LiquidationBonus; use crate::helpers::{lp_token_info, CoinInfo, VaultTestInfo}; diff --git a/contracts/credit-manager/tests/helpers/mock_entity_info.rs b/contracts/credit-manager/tests/helpers/mock_entity_info.rs index 3a16be921..67953a2b2 100644 --- a/contracts/credit-manager/tests/helpers/mock_entity_info.rs +++ b/contracts/credit-manager/tests/helpers/mock_entity_info.rs @@ -2,10 +2,7 @@ use std::str::FromStr; use cosmwasm_std::{coin, Decimal}; use cw_utils::Duration; -use mars_red_bank_types::params::{ - asset::LiquidationBonus, - hls::{HlsAssetType, HlsParamsUnchecked}, -}; +use mars_red_bank_types::params::{HlsAssetType, HlsParamsUnchecked, LiquidationBonus}; use crate::helpers::{CoinInfo, VaultTestInfo}; diff --git a/contracts/credit-manager/tests/helpers/mock_env.rs b/contracts/credit-manager/tests/helpers/mock_env.rs index 32d88a33d..486e755ba 100644 --- a/contracts/credit-manager/tests/helpers/mock_env.rs +++ b/contracts/credit-manager/tests/helpers/mock_env.rs @@ -27,12 +27,11 @@ use mars_red_bank_types::{ incentives::{ExecuteMsg::BalanceChange, QueryMsg::UserUnclaimedRewards}, oracle::ActionKind, params::{ - asset::AssetParams, - vault::{VaultConfig, VaultConfigUnchecked}, - AssetParamsUpdate, + AssetParams, AssetParamsUpdate, AssetParamsUpdate::AddOrUpdate, ExecuteMsg::{UpdateAssetParams, UpdateVaultConfig}, - InstantiateMsg as ParamsInstantiateMsg, QueryMsg as ParamsQueryMsg, VaultConfigUpdate, + InstantiateMsg as ParamsInstantiateMsg, QueryMsg as ParamsQueryMsg, VaultConfig, + VaultConfigUnchecked, VaultConfigUpdate, }, red_bank::{ self, InitOrUpdateAssetParams, InterestRateModel, diff --git a/contracts/credit-manager/tests/helpers/types.rs b/contracts/credit-manager/tests/helpers/types.rs index 4922e4b49..de1725675 100644 --- a/contracts/credit-manager/tests/helpers/types.rs +++ b/contracts/credit-manager/tests/helpers/types.rs @@ -2,8 +2,7 @@ use cosmwasm_schema::cw_serde; use cosmwasm_std::{coin, Addr, Coin, Decimal, Uint128}; use cw_utils::Duration; use mars_red_bank_types::params::{ - asset::{AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings}, - hls::HlsParamsUnchecked, + AssetParamsUnchecked, CmSettings, HlsParamsUnchecked, LiquidationBonus, RedBankSettings, }; use mars_rover::msg::execute::{ActionAmount, ActionCoin}; diff --git a/contracts/credit-manager/tests/test_claim_rewards.rs b/contracts/credit-manager/tests/test_claim_rewards.rs index 61ab6a28f..a5506fe57 100644 --- a/contracts/credit-manager/tests/test_claim_rewards.rs +++ b/contracts/credit-manager/tests/test_claim_rewards.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{Addr, Uint128}; -use mars_red_bank_types::params::{hls::HlsAssetType, AssetParamsUpdate::AddOrUpdate}; +use mars_red_bank_types::params::{AssetParamsUpdate::AddOrUpdate, HlsAssetType}; use mars_rover::{ error::ContractError, msg::execute::Action::{Borrow, ClaimRewards, Deposit}, diff --git a/contracts/credit-manager/tests/test_deposit_cap.rs b/contracts/credit-manager/tests/test_deposit_cap.rs index f520ac509..858e07fb5 100644 --- a/contracts/credit-manager/tests/test_deposit_cap.rs +++ b/contracts/credit-manager/tests/test_deposit_cap.rs @@ -4,7 +4,7 @@ pub mod helpers; use std::collections::HashMap; use cosmwasm_std::{Addr, Coin, Coins, Decimal, StdResult, Uint128}; -use mars_red_bank_types::params::{asset::AssetParams, AssetParamsUpdate}; +use mars_red_bank_types::params::{AssetParams, AssetParamsUpdate}; use mars_rover::{ error::ContractError, msg::execute::{Action, ActionAmount, ActionCoin}, diff --git a/contracts/credit-manager/tests/test_health.rs b/contracts/credit-manager/tests/test_health.rs index 1eb84025d..dfd968e90 100644 --- a/contracts/credit-manager/tests/test_health.rs +++ b/contracts/credit-manager/tests/test_health.rs @@ -5,7 +5,7 @@ use mars_credit_manager::borrow::DEFAULT_DEBT_SHARES_PER_COIN_BORROWED; use mars_mock_oracle::msg::CoinPrice; use mars_red_bank_types::{ oracle::ActionKind, - params::{asset::LiquidationBonus, AssetParamsUpdate::AddOrUpdate, VaultConfigUpdate}, + params::{AssetParamsUpdate::AddOrUpdate, LiquidationBonus, VaultConfigUpdate}, }; use mars_rover::{ error::ContractError, diff --git a/contracts/credit-manager/tests/test_hls_accounts.rs b/contracts/credit-manager/tests/test_hls_accounts.rs index b4c02ba08..ef771cc82 100644 --- a/contracts/credit-manager/tests/test_hls_accounts.rs +++ b/contracts/credit-manager/tests/test_hls_accounts.rs @@ -1,7 +1,7 @@ use cosmwasm_std::{coins, Addr, Decimal, Uint128}; use mars_red_bank_types::{ oracle::ActionKind, - params::{hls::HlsAssetType, AssetParamsUpdate::AddOrUpdate}, + params::{AssetParamsUpdate::AddOrUpdate, HlsAssetType}, }; use mars_rover::{ error::ContractError, diff --git a/contracts/credit-manager/tests/test_repay.rs b/contracts/credit-manager/tests/test_repay.rs index 31038865a..12ccb54bc 100644 --- a/contracts/credit-manager/tests/test_repay.rs +++ b/contracts/credit-manager/tests/test_repay.rs @@ -2,7 +2,7 @@ use std::ops::{Add, Mul, Sub}; use cosmwasm_std::{coin, coins, Addr, Decimal, OverflowError, OverflowOperation, Uint128}; use mars_credit_manager::borrow::DEFAULT_DEBT_SHARES_PER_COIN_BORROWED; -use mars_red_bank_types::params::asset::LiquidationBonus; +use mars_red_bank_types::params::LiquidationBonus; use mars_rover::{ error::ContractError, msg::execute::Action::{Borrow, Deposit, Repay, Withdraw}, diff --git a/contracts/credit-manager/tests/test_utilization_query.rs b/contracts/credit-manager/tests/test_utilization_query.rs index f38f58231..05dad965f 100644 --- a/contracts/credit-manager/tests/test_utilization_query.rs +++ b/contracts/credit-manager/tests/test_utilization_query.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use cosmwasm_std::{Addr, Decimal, Uint128}; -use mars_red_bank_types::params::asset::LiquidationBonus; +use mars_red_bank_types::params::LiquidationBonus; use mars_rover::{ adapters::vault::VaultUnchecked, msg::execute::{ diff --git a/contracts/health/src/querier.rs b/contracts/health/src/querier.rs index 6c69d53d6..029e1296d 100644 --- a/contracts/health/src/querier.rs +++ b/contracts/health/src/querier.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{Addr, Deps, QuerierWrapper, StdError, StdResult}; -use mars_red_bank_types::params::vault::VaultConfig; +use mars_red_bank_types::params::VaultConfig; use mars_rover::{ adapters::{oracle::Oracle, params::Params, vault::Vault}, msg::query::{ConfigResponse, Positions, QueryMsg as CmQueryMsg}, diff --git a/contracts/health/tests/helpers/defaults.rs b/contracts/health/tests/helpers/defaults.rs index e404ad32a..dbb490f61 100644 --- a/contracts/health/tests/helpers/defaults.rs +++ b/contracts/health/tests/helpers/defaults.rs @@ -2,8 +2,7 @@ use std::str::FromStr; use cosmwasm_std::Decimal; use mars_red_bank_types::params::{ - asset::{AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings}, - hls::HlsParamsUnchecked, + AssetParamsUnchecked, CmSettings, HlsParamsUnchecked, LiquidationBonus, RedBankSettings, }; pub fn default_asset_params(denom: &str) -> AssetParamsUnchecked { diff --git a/contracts/health/tests/helpers/mock_env.rs b/contracts/health/tests/helpers/mock_env.rs index e90f9501e..79d04964c 100644 --- a/contracts/health/tests/helpers/mock_env.rs +++ b/contracts/health/tests/helpers/mock_env.rs @@ -10,10 +10,9 @@ use mars_mock_vault::contract::STARTING_VAULT_SHARES; use mars_red_bank_types::{ oracle::ActionKind, params::{ - vault::VaultConfig, AssetParamsUpdate, ExecuteMsg::{UpdateAssetParams, UpdateVaultConfig}, - QueryMsg as ParamsQueryMsg, VaultConfigUpdate, + QueryMsg as ParamsQueryMsg, VaultConfig, VaultConfigUpdate, }, }; use mars_rover::{adapters::vault::VaultUnchecked, msg::query::Positions}; diff --git a/contracts/health/tests/helpers/mock_env_builder.rs b/contracts/health/tests/helpers/mock_env_builder.rs index 63cb31b42..9ddb76a56 100644 --- a/contracts/health/tests/helpers/mock_env_builder.rs +++ b/contracts/health/tests/helpers/mock_env_builder.rs @@ -9,8 +9,8 @@ use mars_mock_oracle::msg::InstantiateMsg as OracleInstantiateMsg; use mars_mock_vault::msg::InstantiateMsg as VaultInstantiateMsg; use mars_owner::OwnerResponse; use mars_red_bank_types::params::{ - hls::HlsParamsUnchecked, vault::VaultConfigUnchecked, ExecuteMsg::UpdateVaultConfig, - InstantiateMsg as ParamsInstantiateMsg, VaultConfigUpdate::AddOrUpdate, + ExecuteMsg::UpdateVaultConfig, HlsParamsUnchecked, InstantiateMsg as ParamsInstantiateMsg, + VaultConfigUnchecked, VaultConfigUpdate::AddOrUpdate, }; use mars_rover::{adapters::oracle::OracleUnchecked, msg::query::ConfigResponse}; use mars_rover_health_types::{ExecuteMsg::UpdateConfig, InstantiateMsg}; diff --git a/contracts/health/tests/test_health_values.rs b/contracts/health/tests/test_health_values.rs index 2dfe27aaa..8bdcb121a 100644 --- a/contracts/health/tests/test_health_values.rs +++ b/contracts/health/tests/test_health_values.rs @@ -4,10 +4,8 @@ use cosmwasm_std::{Coin, Decimal, StdError, Uint128}; use mars_red_bank_types::{ oracle::ActionKind, params::{ - asset::{AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings}, - hls::HlsParamsUnchecked, - AssetParamsUpdate::AddOrUpdate, - VaultConfigUpdate, + AssetParamsUnchecked, AssetParamsUpdate::AddOrUpdate, CmSettings, HlsParamsUnchecked, + LiquidationBonus, RedBankSettings, VaultConfigUpdate, }, }; use mars_rover::{ diff --git a/contracts/health/tests/test_liquidation_pricing.rs b/contracts/health/tests/test_liquidation_pricing.rs index 25bfc9e81..697ab5caf 100644 --- a/contracts/health/tests/test_liquidation_pricing.rs +++ b/contracts/health/tests/test_liquidation_pricing.rs @@ -4,9 +4,8 @@ use cosmwasm_std::{Coin, Decimal, StdError, Uint128}; use mars_red_bank_types::{ oracle::ActionKind, params::{ - asset::{AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings}, - hls::HlsParamsUnchecked, - AssetParamsUpdate::AddOrUpdate, + AssetParamsUnchecked, AssetParamsUpdate::AddOrUpdate, CmSettings, HlsParamsUnchecked, + LiquidationBonus, RedBankSettings, }, }; use mars_rover::msg::query::{DebtAmount, Positions}; diff --git a/contracts/params/src/query.rs b/contracts/params/src/query.rs index 6ef7fc60c..32cf80a6b 100644 --- a/contracts/params/src/query.rs +++ b/contracts/params/src/query.rs @@ -3,7 +3,7 @@ use cw_storage_plus::Bound; use mars_interest_rate::get_underlying_liquidity_amount; use mars_red_bank_types::{ address_provider::{self, MarsAddressType}, - params::{asset::AssetParams, vault::VaultConfig, ConfigResponse, TotalDepositResponse}, + params::{AssetParams, ConfigResponse, TotalDepositResponse, VaultConfig}, red_bank::{self, Market, UserDebtResponse}, }; diff --git a/contracts/params/src/state.rs b/contracts/params/src/state.rs index a83d76cae..eb48d8879 100644 --- a/contracts/params/src/state.rs +++ b/contracts/params/src/state.rs @@ -1,7 +1,7 @@ use cosmwasm_std::{Addr, Decimal}; use cw_storage_plus::{Item, Map}; use mars_owner::Owner; -use mars_red_bank_types::params::{asset::AssetParams, vault::VaultConfig}; +use mars_red_bank_types::params::{AssetParams, VaultConfig}; pub const OWNER: Owner = Owner::new("owner"); pub const ADDRESS_PROVIDER: Item = Item::new("address_provider"); diff --git a/contracts/params/tests/tests/helpers/generator.rs b/contracts/params/tests/tests/helpers/generator.rs index 57422ec5c..590cb9e64 100644 --- a/contracts/params/tests/tests/helpers/generator.rs +++ b/contracts/params/tests/tests/helpers/generator.rs @@ -2,8 +2,7 @@ use std::str::FromStr; use cosmwasm_std::{coin, Decimal, Uint128}; use mars_red_bank_types::params::{ - asset::{AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings}, - vault::VaultConfigUnchecked, + AssetParamsUnchecked, CmSettings, LiquidationBonus, RedBankSettings, VaultConfigUnchecked, }; pub fn default_asset_params(denom: &str) -> AssetParamsUnchecked { diff --git a/contracts/params/tests/tests/helpers/mock_env.rs b/contracts/params/tests/tests/helpers/mock_env.rs index 0f5c12884..d74855f49 100644 --- a/contracts/params/tests/tests/helpers/mock_env.rs +++ b/contracts/params/tests/tests/helpers/mock_env.rs @@ -5,8 +5,8 @@ use cosmwasm_std::{Addr, Decimal}; use cw_multi_test::{App, AppResponse, BasicApp, Executor}; use mars_owner::{OwnerResponse, OwnerUpdate}; use mars_red_bank_types::params::{ - asset::AssetParams, vault::VaultConfig, AssetParamsUpdate, ConfigResponse, EmergencyUpdate, - ExecuteMsg, InstantiateMsg, QueryMsg, VaultConfigUpdate, + AssetParams, AssetParamsUpdate, ConfigResponse, EmergencyUpdate, ExecuteMsg, InstantiateMsg, + QueryMsg, VaultConfig, VaultConfigUpdate, }; use super::contracts::mock_params_contract; diff --git a/contracts/params/tests/tests/test_asset_validation.rs b/contracts/params/tests/tests/test_asset_validation.rs index c9bc69e7f..7613cfb9f 100644 --- a/contracts/params/tests/tests/test_asset_validation.rs +++ b/contracts/params/tests/tests/test_asset_validation.rs @@ -4,10 +4,7 @@ use cosmwasm_std::Decimal; use mars_params::error::ContractError; use mars_red_bank_types::{ error::MarsError::Validation, - params::{ - hls::{HlsAssetType, HlsParamsUnchecked}, - AssetParamsUpdate, - }, + params::{AssetParamsUpdate, HlsAssetType, HlsParamsUnchecked}, }; use mars_utils::error::ValidationError::{InvalidDenom, InvalidParam}; diff --git a/contracts/params/tests/tests/test_vault_validation.rs b/contracts/params/tests/tests/test_vault_validation.rs index 6ae7dd3a5..0ec498f6d 100644 --- a/contracts/params/tests/tests/test_vault_validation.rs +++ b/contracts/params/tests/tests/test_vault_validation.rs @@ -4,7 +4,7 @@ use cosmwasm_std::{Decimal, StdError::GenericErr}; use mars_params::error::ContractError; use mars_red_bank_types::{ error::MarsError::{Std, Validation}, - params::{hls::HlsParamsUnchecked, VaultConfigUpdate}, + params::{HlsParamsUnchecked, VaultConfigUpdate}, }; use mars_utils::error::ValidationError::InvalidParam; diff --git a/contracts/params/tests/tests/test_vaults.rs b/contracts/params/tests/tests/test_vaults.rs index 4afdd6e69..4d47c5aeb 100644 --- a/contracts/params/tests/tests/test_vaults.rs +++ b/contracts/params/tests/tests/test_vaults.rs @@ -3,7 +3,7 @@ use std::str::FromStr; use cosmwasm_std::{Addr, Decimal}; use mars_owner::OwnerError; use mars_params::error::ContractError::Owner; -use mars_red_bank_types::params::{vault::VaultConfigUnchecked, VaultConfigUpdate}; +use mars_red_bank_types::params::{VaultConfigUnchecked, VaultConfigUpdate}; use super::helpers::{assert_contents_equal, assert_err, default_vault_config, MockEnv}; diff --git a/contracts/red-bank/src/helpers.rs b/contracts/red-bank/src/helpers.rs index 3760a1286..f9bd0cc78 100644 --- a/contracts/red-bank/src/helpers.rs +++ b/contracts/red-bank/src/helpers.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{Coin, Decimal, QuerierWrapper, StdResult}; -use mars_red_bank_types::params::{asset::AssetParams, QueryMsg}; +use mars_red_bank_types::params::{AssetParams, QueryMsg}; pub fn query_asset_params( querier: &QuerierWrapper, diff --git a/contracts/red-bank/tests/tests/helpers/mod.rs b/contracts/red-bank/tests/tests/helpers/mod.rs index 93063c69f..23760fef2 100644 --- a/contracts/red-bank/tests/tests/helpers/mod.rs +++ b/contracts/red-bank/tests/tests/helpers/mod.rs @@ -21,7 +21,7 @@ use mars_red_bank::{ }; use mars_red_bank_types::{ keys::{UserId, UserIdKey}, - params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, + params::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, red_bank::{ Collateral, CreateOrUpdateConfig, Debt, InitOrUpdateAssetParams, InstantiateMsg, InterestRateModel, Market, QueryMsg, UserCollateralResponse, UserDebtResponse, diff --git a/contracts/red-bank/tests/tests/test_borrow.rs b/contracts/red-bank/tests/tests/test_borrow.rs index 88a9f7c05..4fd373b8a 100644 --- a/contracts/red-bank/tests/tests/test_borrow.rs +++ b/contracts/red-bank/tests/tests/test_borrow.rs @@ -12,7 +12,7 @@ use mars_red_bank::{ state::{DEBTS, MARKETS, UNCOLLATERALIZED_LOAN_LIMITS}, }; use mars_red_bank_types::{ - params::asset::{AssetParams, CmSettings, RedBankSettings}, + params::{AssetParams, CmSettings, RedBankSettings}, red_bank::{ExecuteMsg, Market}, }; use mars_testing::{mock_env, mock_env_at_block_time, MockEnvParams}; diff --git a/contracts/red-bank/tests/tests/test_deposit.rs b/contracts/red-bank/tests/tests/test_deposit.rs index 4c399cf0c..271ea392f 100644 --- a/contracts/red-bank/tests/tests/test_deposit.rs +++ b/contracts/red-bank/tests/tests/test_deposit.rs @@ -19,7 +19,7 @@ use mars_red_bank_types::{ error::MarsError, incentives, keys::{UserId, UserIdKey}, - params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, + params::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, red_bank::{Collateral, ExecuteMsg, Market}, }; use mars_testing::{mock_env_at_block_time, MarsMockQuerier}; diff --git a/contracts/red-bank/tests/tests/test_liquidate.rs b/contracts/red-bank/tests/tests/test_liquidate.rs index 7fdfefa7c..b2a1a92e3 100644 --- a/contracts/red-bank/tests/tests/test_liquidate.rs +++ b/contracts/red-bank/tests/tests/test_liquidate.rs @@ -10,7 +10,7 @@ use mars_red_bank::{contract::execute, error::ContractError}; use mars_red_bank_types::{ address_provider::MarsAddressType, incentives, - params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, + params::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, red_bank::{ ExecuteMsg, InitOrUpdateAssetParams, InterestRateModel, Market, QueryMsg, UserCollateralResponse, UserDebtResponse, diff --git a/contracts/red-bank/tests/tests/test_misc.rs b/contracts/red-bank/tests/tests/test_misc.rs index 7f9d54820..a6404532a 100644 --- a/contracts/red-bank/tests/tests/test_misc.rs +++ b/contracts/red-bank/tests/tests/test_misc.rs @@ -13,7 +13,7 @@ use mars_red_bank::{ state::{DEBTS, MARKETS, UNCOLLATERALIZED_LOAN_LIMITS}, }; use mars_red_bank_types::{ - params::asset::AssetParams, + params::AssetParams, red_bank::{Debt, ExecuteMsg, Market}, }; use mars_testing::{mock_env, mock_env_at_block_time, MockEnvParams}; diff --git a/contracts/red-bank/tests/tests/test_withdraw.rs b/contracts/red-bank/tests/tests/test_withdraw.rs index 682074c11..25c75aa6b 100644 --- a/contracts/red-bank/tests/tests/test_withdraw.rs +++ b/contracts/red-bank/tests/tests/test_withdraw.rs @@ -19,7 +19,7 @@ use mars_red_bank_types::{ error::MarsError, incentives, keys::{UserId, UserIdKey}, - params::asset::AssetParams, + params::AssetParams, red_bank::{Collateral, Debt, ExecuteMsg, Market}, }; use mars_testing::{ diff --git a/integration-tests/tests/helpers.rs b/integration-tests/tests/helpers.rs index 097246ee9..6603cbe44 100644 --- a/integration-tests/tests/helpers.rs +++ b/integration-tests/tests/helpers.rs @@ -4,7 +4,7 @@ use anyhow::Result as AnyResult; use cosmwasm_std::{Coin, Decimal, Fraction, Uint128}; use cw_multi_test::AppResponse; use mars_red_bank_types::{ - params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, + params::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, red_bank::{ InitOrUpdateAssetParams, InterestRateModel, UserHealthStatus, UserPositionResponse, }, diff --git a/integration-tests/tests/test_user_flow.rs b/integration-tests/tests/test_user_flow.rs index 602ce5300..9bf105429 100644 --- a/integration-tests/tests/test_user_flow.rs +++ b/integration-tests/tests/test_user_flow.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use cosmwasm_std::{coin, Addr, Decimal, Uint128}; use mars_red_bank::error::ContractError; -use mars_red_bank_types::params::asset::LiquidationBonus; +use mars_red_bank_types::params::LiquidationBonus; use mars_testing::integration::mock_env::{MockEnv, MockEnvBuilder, RedBank}; use crate::helpers::{assert_red_bank_err, default_asset_params, default_asset_params_with}; diff --git a/packages/health-computer/src/data_types.rs b/packages/health-computer/src/data_types.rs index ecd0ccb56..ac4658b4e 100644 --- a/packages/health-computer/src/data_types.rs +++ b/packages/health-computer/src/data_types.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use cosmwasm_schema::cw_serde; use cosmwasm_std::{Addr, Decimal, Uint128}; -use mars_red_bank_types::params::{asset::AssetParams, vault::VaultConfig}; +use mars_red_bank_types::params::{AssetParams, VaultConfig}; use mars_rover::adapters::vault::VaultPositionValue; /// Used as storage when trying to compute Health diff --git a/packages/health-computer/src/health_computer.rs b/packages/health-computer/src/health_computer.rs index 7a7ad7657..07c1c3e71 100644 --- a/packages/health-computer/src/health_computer.rs +++ b/packages/health-computer/src/health_computer.rs @@ -2,10 +2,7 @@ use std::cmp::min; use cosmwasm_schema::cw_serde; use cosmwasm_std::{Coin, Decimal, Uint128}; -use mars_red_bank_types::params::{ - asset::{AssetParams, CmSettings}, - vault::VaultConfig, -}; +use mars_red_bank_types::params::{AssetParams, CmSettings, VaultConfig}; use mars_rover::msg::query::Positions; use mars_rover_health_types::{ AccountKind, BorrowTarget, Health, diff --git a/packages/health-computer/tests/helpers/mock_coin_info.rs b/packages/health-computer/tests/helpers/mock_coin_info.rs index c77addfe8..a84229cd9 100644 --- a/packages/health-computer/tests/helpers/mock_coin_info.rs +++ b/packages/health-computer/tests/helpers/mock_coin_info.rs @@ -3,8 +3,7 @@ use std::str::FromStr; use cosmwasm_schema::cw_serde; use cosmwasm_std::Decimal; use mars_red_bank_types::params::{ - asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, - hls::{HlsAssetType, HlsParams}, + AssetParams, CmSettings, HlsAssetType, HlsParams, LiquidationBonus, RedBankSettings, }; #[cw_serde] diff --git a/packages/health-computer/tests/helpers/mock_vault_config.rs b/packages/health-computer/tests/helpers/mock_vault_config.rs index 0be409818..8a1b9850d 100644 --- a/packages/health-computer/tests/helpers/mock_vault_config.rs +++ b/packages/health-computer/tests/helpers/mock_vault_config.rs @@ -1,5 +1,5 @@ use cosmwasm_std::{coin, Addr, Decimal}; -use mars_red_bank_types::params::vault::VaultConfig; +use mars_red_bank_types::params::VaultConfig; pub fn osmo_atom_1_config() -> VaultConfig { VaultConfig { diff --git a/packages/health-computer/tests/helpers/prop_test_strategies.rs b/packages/health-computer/tests/helpers/prop_test_strategies.rs index 48ce433c7..e81451874 100644 --- a/packages/health-computer/tests/helpers/prop_test_strategies.rs +++ b/packages/health-computer/tests/helpers/prop_test_strategies.rs @@ -2,9 +2,7 @@ use std::collections::HashMap; use cosmwasm_std::{Addr, Coin, Decimal, Uint128}; use mars_red_bank_types::params::{ - asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, - hls::HlsParams, - vault::VaultConfig, + AssetParams, CmSettings, HlsParams, LiquidationBonus, RedBankSettings, VaultConfig, }; use mars_rover::{ adapters::vault::{ @@ -176,7 +174,7 @@ fn random_param_maps() -> impl Strategy { let mut vault_values = HashMap::new(); let mut vault_configs: HashMap< Addr, - mars_red_bank_types::params::vault::VaultConfigBase, + mars_red_bank_types::params::VaultConfigBase, > = HashMap::new(); for (addr, position_val, config) in vaults { diff --git a/packages/health-computer/tests/test_health_scenarios.rs b/packages/health-computer/tests/test_health_scenarios.rs index 43c4ece36..fa47223ac 100644 --- a/packages/health-computer/tests/test_health_scenarios.rs +++ b/packages/health-computer/tests/test_health_scenarios.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, ops::Add, str::FromStr}; use cosmwasm_std::{coin, Addr, Coin, Decimal, Uint128}; -use mars_red_bank_types::params::vault::VaultConfig; +use mars_red_bank_types::params::VaultConfig; use mars_rover::{ adapters::vault::{ CoinValue, LockingVaultAmount, UnlockingPositions, Vault, VaultAmount, VaultPosition, diff --git a/packages/health-computer/tests/test_hls.rs b/packages/health-computer/tests/test_hls.rs index daa37b71e..b0f7876f4 100644 --- a/packages/health-computer/tests/test_hls.rs +++ b/packages/health-computer/tests/test_hls.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, str::FromStr}; use cosmwasm_std::{coin, Addr, Coin, Decimal, Uint128}; -use mars_red_bank_types::params::{hls::HlsParams, vault::VaultConfig}; +use mars_red_bank_types::params::{HlsParams, VaultConfig}; use mars_rover::{ adapters::vault::{ CoinValue, Vault, VaultAmount, VaultPosition, VaultPositionAmount, VaultPositionValue, diff --git a/packages/health-computer/tests/test_input_validation.rs b/packages/health-computer/tests/test_input_validation.rs index 6de15ab5b..11c2d369c 100644 --- a/packages/health-computer/tests/test_input_validation.rs +++ b/packages/health-computer/tests/test_input_validation.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use cosmwasm_std::{coin, Addr, Uint128}; -use mars_red_bank_types::params::vault::VaultConfig; +use mars_red_bank_types::params::VaultConfig; use mars_rover::{ adapters::vault::{ CoinValue, Vault, VaultAmount, VaultPosition, VaultPositionAmount, VaultPositionValue, diff --git a/packages/health-computer/tests/test_max_borrow_validation.rs b/packages/health-computer/tests/test_max_borrow_validation.rs index 0ab65af85..2ebe557ac 100644 --- a/packages/health-computer/tests/test_max_borrow_validation.rs +++ b/packages/health-computer/tests/test_max_borrow_validation.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, str::FromStr}; use cosmwasm_std::{coin, Addr, Decimal, Uint128}; -use mars_red_bank_types::params::{hls::HlsParams, vault::VaultConfig}; +use mars_red_bank_types::params::{HlsParams, VaultConfig}; use mars_rover::{ adapters::vault::{ CoinValue, Vault, VaultAmount, VaultPosition, VaultPositionAmount, VaultPositionValue, diff --git a/packages/health-computer/tests/test_max_swap_validation.rs b/packages/health-computer/tests/test_max_swap_validation.rs index 82bbf542c..ccdd07ce4 100644 --- a/packages/health-computer/tests/test_max_swap_validation.rs +++ b/packages/health-computer/tests/test_max_swap_validation.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, str::FromStr}; use cosmwasm_std::{coin, Addr, Decimal, Uint128}; -use mars_red_bank_types::params::{hls::HlsParams, vault::VaultConfig}; +use mars_red_bank_types::params::{HlsParams, VaultConfig}; use mars_rover::{ adapters::vault::{ CoinValue, Vault, VaultAmount, VaultPosition, VaultPositionAmount, VaultPositionValue, diff --git a/packages/health-computer/tests/test_max_withdraw.rs b/packages/health-computer/tests/test_max_withdraw.rs index d83c9cebf..451e493e1 100644 --- a/packages/health-computer/tests/test_max_withdraw.rs +++ b/packages/health-computer/tests/test_max_withdraw.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, str::FromStr}; use cosmwasm_std::{coin, Addr, Decimal, Uint128}; -use mars_red_bank_types::params::{hls::HlsParams, vault::VaultConfig}; +use mars_red_bank_types::params::{HlsParams, VaultConfig}; use mars_rover::{ adapters::vault::{ CoinValue, Vault, VaultAmount, VaultPosition, VaultPositionAmount, VaultPositionValue, diff --git a/packages/health/src/health.rs b/packages/health/src/health.rs index f112fbed2..b0dcedac3 100644 --- a/packages/health/src/health.rs +++ b/packages/health/src/health.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, fmt}; use cosmwasm_std::{Addr, Coin, Decimal, Fraction, QuerierWrapper, StdResult, Uint128}; -use mars_red_bank_types::params::asset::AssetParams; +use mars_red_bank_types::params::AssetParams; use crate::{error::HealthError, query::MarsQuerier}; diff --git a/packages/health/src/query.rs b/packages/health/src/query.rs index eb5da4138..a1d90e028 100644 --- a/packages/health/src/query.rs +++ b/packages/health/src/query.rs @@ -1,7 +1,7 @@ use cosmwasm_std::{Addr, Decimal, QuerierWrapper, StdResult}; use mars_red_bank_types::{ oracle::{self, ActionKind, PriceResponse}, - params::asset::AssetParams, + params::AssetParams, }; pub struct MarsQuerier<'a> { diff --git a/packages/health/tests/test_from_coins_to_positions.rs b/packages/health/tests/test_from_coins_to_positions.rs index c6883fe2d..9613b7f19 100644 --- a/packages/health/tests/test_from_coins_to_positions.rs +++ b/packages/health/tests/test_from_coins_to_positions.rs @@ -8,7 +8,7 @@ use mars_health::{ query::MarsQuerier, }; use mars_red_bank_types::{ - params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, + params::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, red_bank::Market, }; use mars_testing::MarsMockQuerier; diff --git a/packages/health/tests/test_health_from_coins.rs b/packages/health/tests/test_health_from_coins.rs index a35f7d57d..215fbb2dd 100644 --- a/packages/health/tests/test_health_from_coins.rs +++ b/packages/health/tests/test_health_from_coins.rs @@ -6,7 +6,7 @@ use cosmwasm_std::{ }; use mars_health::{error::HealthError, health::Health}; use mars_red_bank_types::{ - params::asset::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, + params::{AssetParams, CmSettings, LiquidationBonus, RedBankSettings}, red_bank::Market, }; use mars_testing::MarsMockQuerier; diff --git a/packages/liquidation/src/liquidation.rs b/packages/liquidation/src/liquidation.rs index afdf65519..b2123bfd3 100644 --- a/packages/liquidation/src/liquidation.rs +++ b/packages/liquidation/src/liquidation.rs @@ -5,7 +5,7 @@ use std::{ use cosmwasm_std::{Decimal, StdError, Uint128}; use mars_health::health::Health; -use mars_red_bank_types::params::asset::AssetParams; +use mars_red_bank_types::params::AssetParams; use crate::error::LiquidationError; diff --git a/packages/rover/src/adapters/params.rs b/packages/rover/src/adapters/params.rs index b40fd4076..50746f948 100644 --- a/packages/rover/src/adapters/params.rs +++ b/packages/rover/src/adapters/params.rs @@ -1,8 +1,6 @@ use cosmwasm_schema::cw_serde; use cosmwasm_std::{Addr, Api, Decimal, QuerierWrapper, StdResult}; -use mars_red_bank_types::params::{ - asset::AssetParams, vault::VaultConfig, QueryMsg, TotalDepositResponse, -}; +use mars_red_bank_types::params::{AssetParams, QueryMsg, TotalDepositResponse, VaultConfig}; #[cw_serde] pub struct ParamsBase(T); diff --git a/packages/testing/src/integration/mock_env.rs b/packages/testing/src/integration/mock_env.rs index d5cb429bf..f67eb7dd2 100644 --- a/packages/testing/src/integration/mock_env.rs +++ b/packages/testing/src/integration/mock_env.rs @@ -14,7 +14,7 @@ use mars_red_bank_types::{ ActionKind::{Default as ActionDefault, Liquidation}, PriceResponse, }, - params::{asset::AssetParams, AssetParamsUpdate}, + params::{AssetParams, AssetParamsUpdate}, red_bank::{ self, CreateOrUpdateConfig, InitOrUpdateAssetParams, Market, UncollateralizedLoanLimitResponse, UserCollateralResponse, UserDebtResponse, diff --git a/packages/testing/src/mars_mock_querier.rs b/packages/testing/src/mars_mock_querier.rs index 6393aa583..97ec5564e 100644 --- a/packages/testing/src/mars_mock_querier.rs +++ b/packages/testing/src/mars_mock_querier.rs @@ -6,9 +6,7 @@ use cosmwasm_std::{ }; use ica_oracle::msg::RedemptionRateResponse; use mars_oracle_osmosis::DowntimeDetector; -use mars_red_bank_types::{ - address_provider, incentives, oracle, params::asset::AssetParams, red_bank, -}; +use mars_red_bank_types::{address_provider, incentives, oracle, params::AssetParams, red_bank}; use osmosis_std::types::osmosis::{ downtimedetector::v1beta1::RecoveredSinceDowntimeOfLengthResponse, poolmanager::v1beta1::{PoolResponse, SpotPriceResponse}, diff --git a/packages/testing/src/params_querier.rs b/packages/testing/src/params_querier.rs index f5ab60f05..032d33fa7 100644 --- a/packages/testing/src/params_querier.rs +++ b/packages/testing/src/params_querier.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use cosmwasm_std::{to_binary, Binary, Coin, ContractResult, Decimal, QuerierResult, Uint128}; -use mars_red_bank_types::params::{asset::AssetParams, QueryMsg}; +use mars_red_bank_types::params::{AssetParams, QueryMsg}; #[derive(Default)] pub struct ParamsQuerier { diff --git a/packages/types/src/params/assertions.rs b/packages/types/src/params/assertions.rs new file mode 100644 index 000000000..5af9a6380 --- /dev/null +++ b/packages/types/src/params/assertions.rs @@ -0,0 +1,88 @@ +use cosmwasm_std::Decimal; +use mars_utils::error::ValidationError; + +pub(super) fn assert_lqt_gt_max_ltv( + max_ltv: Decimal, + liq_threshold: Decimal, +) -> Result<(), ValidationError> { + if liq_threshold <= max_ltv { + return Err(ValidationError::InvalidParam { + param_name: "liquidation_threshold".to_string(), + invalid_value: liq_threshold.to_string(), + predicate: format!("> {} (max LTV)", max_ltv), + }); + } + Ok(()) +} + +pub(super) fn assert_hls_lqt_gt_max_ltv( + max_ltv: Decimal, + liq_threshold: Decimal, +) -> Result<(), ValidationError> { + if liq_threshold <= max_ltv { + return Err(ValidationError::InvalidParam { + param_name: "hls_liquidation_threshold".to_string(), + invalid_value: liq_threshold.to_string(), + predicate: format!("> {} (hls max LTV)", max_ltv), + }); + } + Ok(()) +} + +pub(super) fn assert_starting_lb_within_range(b: Decimal) -> Result<(), ValidationError> { + if b > Decimal::percent(10) { + return Err(ValidationError::InvalidParam { + param_name: "starting_lb".to_string(), + invalid_value: b.to_string(), + predicate: "[0, 0.1]".to_string(), + }); + } + Ok(()) +} + +pub(super) fn assert_lb_slope_within_range(slope: Decimal) -> Result<(), ValidationError> { + if slope < Decimal::one() || slope > Decimal::from_ratio(5u8, 1u8) { + return Err(ValidationError::InvalidParam { + param_name: "slope".to_string(), + invalid_value: slope.to_string(), + predicate: "[1, 5]".to_string(), + }); + } + Ok(()) +} + +pub(super) fn assert_min_lb_within_range(min_lb: Decimal) -> Result<(), ValidationError> { + if min_lb > Decimal::percent(10) { + return Err(ValidationError::InvalidParam { + param_name: "min_lb".to_string(), + invalid_value: min_lb.to_string(), + predicate: "[0, 0.1]".to_string(), + }); + } + Ok(()) +} + +pub(super) fn assert_max_lb_within_range(max_lb: Decimal) -> Result<(), ValidationError> { + if max_lb < Decimal::percent(5) || max_lb > Decimal::percent(30) { + return Err(ValidationError::InvalidParam { + param_name: "max_lb".to_string(), + invalid_value: max_lb.to_string(), + predicate: "[0.05, 0.3]".to_string(), + }); + } + Ok(()) +} + +pub(super) fn assert_max_lb_gt_min_lb( + min_lb: Decimal, + max_lb: Decimal, +) -> Result<(), ValidationError> { + if min_lb > max_lb { + return Err(ValidationError::InvalidParam { + param_name: "max_lb".to_string(), + invalid_value: max_lb.to_string(), + predicate: format!("> {} (min LB)", min_lb), + }); + } + Ok(()) +} diff --git a/packages/types/src/params/types/asset.rs b/packages/types/src/params/asset.rs similarity index 70% rename from packages/types/src/params/types/asset.rs rename to packages/types/src/params/asset.rs index 2e97cb420..0c89a63d8 100644 --- a/packages/types/src/params/types/asset.rs +++ b/packages/types/src/params/asset.rs @@ -5,7 +5,14 @@ use mars_utils::{ helpers::{decimal_param_le_one, decimal_param_lt_one, validate_native_denom}, }; -use super::{assert_hls_lqt_gt_max_ltv, assert_lqt_gt_max_ltv, hls::HlsParamsBase}; +use super::{ + assertions::{ + assert_hls_lqt_gt_max_ltv, assert_lb_slope_within_range, assert_lqt_gt_max_ltv, + assert_max_lb_gt_min_lb, assert_max_lb_within_range, assert_min_lb_within_range, + assert_starting_lb_within_range, + }, + hls::HlsParamsBase, +}; use crate::error::MarsError; #[cw_serde] @@ -54,61 +61,6 @@ impl LiquidationBonus { } } -fn assert_starting_lb_within_range(b: Decimal) -> Result<(), ValidationError> { - if b > Decimal::percent(10) { - return Err(ValidationError::InvalidParam { - param_name: "starting_lb".to_string(), - invalid_value: b.to_string(), - predicate: "[0, 0.1]".to_string(), - }); - } - Ok(()) -} - -fn assert_lb_slope_within_range(slope: Decimal) -> Result<(), ValidationError> { - if slope < Decimal::one() || slope > Decimal::from_ratio(5u8, 1u8) { - return Err(ValidationError::InvalidParam { - param_name: "slope".to_string(), - invalid_value: slope.to_string(), - predicate: "[1, 5]".to_string(), - }); - } - Ok(()) -} - -fn assert_min_lb_within_range(min_lb: Decimal) -> Result<(), ValidationError> { - if min_lb > Decimal::percent(10) { - return Err(ValidationError::InvalidParam { - param_name: "min_lb".to_string(), - invalid_value: min_lb.to_string(), - predicate: "[0, 0.1]".to_string(), - }); - } - Ok(()) -} - -fn assert_max_lb_within_range(max_lb: Decimal) -> Result<(), ValidationError> { - if max_lb < Decimal::percent(5) || max_lb > Decimal::percent(30) { - return Err(ValidationError::InvalidParam { - param_name: "max_lb".to_string(), - invalid_value: max_lb.to_string(), - predicate: "[0.05, 0.3]".to_string(), - }); - } - Ok(()) -} - -fn assert_max_lb_gt_min_lb(min_lb: Decimal, max_lb: Decimal) -> Result<(), ValidationError> { - if min_lb > max_lb { - return Err(ValidationError::InvalidParam { - param_name: "max_lb".to_string(), - invalid_value: max_lb.to_string(), - predicate: format!("> {} (min LB)", min_lb), - }); - } - Ok(()) -} - #[cw_serde] pub struct AssetParamsBase { pub denom: String, diff --git a/packages/types/src/params/types/hls.rs b/packages/types/src/params/hls.rs similarity index 100% rename from packages/types/src/params/types/hls.rs rename to packages/types/src/params/hls.rs diff --git a/packages/types/src/params/mod.rs b/packages/types/src/params/mod.rs index 5405265e4..97d2536f2 100644 --- a/packages/types/src/params/mod.rs +++ b/packages/types/src/params/mod.rs @@ -1,5 +1,10 @@ +mod assertions; +mod asset; +mod hls; mod msg; -mod types; +mod vault; +pub use asset::*; +pub use hls::*; pub use msg::*; -pub use types::*; +pub use vault::*; diff --git a/packages/types/src/params/msg.rs b/packages/types/src/params/msg.rs index b0c1e35eb..b0b35d3da 100644 --- a/packages/types/src/params/msg.rs +++ b/packages/types/src/params/msg.rs @@ -35,24 +35,24 @@ pub enum QueryMsg { #[returns(super::msg::ConfigResponse)] Config {}, - #[returns(super::types::asset::AssetParams)] + #[returns(super::asset::AssetParams)] AssetParams { denom: String, }, - #[returns(Vec)] + #[returns(Vec)] AllAssetParams { start_after: Option, limit: Option, }, - #[returns(super::types::vault::VaultConfig)] + #[returns(super::vault::VaultConfig)] VaultConfig { /// Address of vault address: String, }, - #[returns(Vec)] + #[returns(Vec)] AllVaultConfigs { start_after: Option, limit: Option, diff --git a/packages/types/src/params/types/mod.rs b/packages/types/src/params/types/mod.rs deleted file mode 100644 index 25509df28..000000000 --- a/packages/types/src/params/types/mod.rs +++ /dev/null @@ -1,35 +0,0 @@ -use cosmwasm_std::Decimal; -use mars_utils::error::ValidationError; - -pub mod asset; -pub mod hls; -pub mod vault; - -/// liquidation_threshold should be greater than or equal to max_loan_to_value -pub fn assert_lqt_gt_max_ltv( - max_ltv: Decimal, - liq_threshold: Decimal, -) -> Result<(), ValidationError> { - if liq_threshold <= max_ltv { - return Err(ValidationError::InvalidParam { - param_name: "liquidation_threshold".to_string(), - invalid_value: liq_threshold.to_string(), - predicate: format!("> {} (max LTV)", max_ltv), - }); - } - Ok(()) -} - -pub fn assert_hls_lqt_gt_max_ltv( - max_ltv: Decimal, - liq_threshold: Decimal, -) -> Result<(), ValidationError> { - if liq_threshold <= max_ltv { - return Err(ValidationError::InvalidParam { - param_name: "hls_liquidation_threshold".to_string(), - invalid_value: liq_threshold.to_string(), - predicate: format!("> {} (hls max LTV)", max_ltv), - }); - } - Ok(()) -} diff --git a/packages/types/src/params/types/vault.rs b/packages/types/src/params/vault.rs similarity index 94% rename from packages/types/src/params/types/vault.rs rename to packages/types/src/params/vault.rs index b284920ff..d4b86021a 100644 --- a/packages/types/src/params/types/vault.rs +++ b/packages/types/src/params/vault.rs @@ -2,7 +2,10 @@ use cosmwasm_schema::cw_serde; use cosmwasm_std::{Addr, Api, Coin, Decimal}; use mars_utils::helpers::decimal_param_le_one; -use super::{assert_hls_lqt_gt_max_ltv, assert_lqt_gt_max_ltv, hls::HlsParamsBase}; +use super::{ + assertions::{assert_hls_lqt_gt_max_ltv, assert_lqt_gt_max_ltv}, + hls::HlsParamsBase, +}; use crate::error::MarsError; #[cw_serde]