From c5570e7bd2cccf3f1991bf59af84b89b3e1e2b8f Mon Sep 17 00:00:00 2001 From: Frederik Gartenmeister Date: Mon, 15 Apr 2024 12:03:19 +0200 Subject: [PATCH] fix: mostly non failable runtime-api --- pallets/pool-fees/src/lib.rs | 1 + runtime/common/src/lib.rs | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pallets/pool-fees/src/lib.rs b/pallets/pool-fees/src/lib.rs index 7ffe3f5f51..da1aae57ff 100644 --- a/pallets/pool-fees/src/lib.rs +++ b/pallets/pool-fees/src/lib.rs @@ -212,6 +212,7 @@ pub mod pallet { /// /// Lifetime of a storage entry: Forever, inherited from pool lifetime. #[pallet::storage] + #[pallet::getter(fn portfolio_valuation)] pub(crate) type PortfolioValuation = StorageMap< _, Blake2_128Concat, diff --git a/runtime/common/src/lib.rs b/runtime/common/src/lib.rs index 42fcad4e8d..e72a42f16d 100644 --- a/runtime/common/src/lib.rs +++ b/runtime/common/src/lib.rs @@ -139,12 +139,19 @@ where { let mut pool = pallet_pool_system::Pool::::get(pool_id) .ok_or(pallet_pool_system::Error::::NoSuchPool)?; - let (nav_loans, _) = - pallet_loans::Pallet::::update_portfolio_valuation_for_pool(pool_id, price_input)?; + + let nav_loans = + pallet_loans::Pallet::::update_portfolio_valuation_for_pool(pool_id, price_input) + .map(|(nav_loans, _)| nav_loans) + .unwrap_or_else(|| pallet_loans::Pallet::::portfolio_valuation(pool_id).value()); + let (nav_fees, _) = pallet_pool_fees::Pallet::::update_portfolio_valuation_for_pool( pool_id, &mut pool.reserve.total, - )?; + ) + .map(|(nav_fees, _)| nav_fees) + .unwrap_or_else(|| pallet_pool_fees::Pallet::::portfolio_valuation(pool_id).value()); + let nav = Nav::new(nav_loans, nav_fees); let total = nav .total(pool.reserve.total)