From a5413ea942852809cba8ad056a124568a2767451 Mon Sep 17 00:00:00 2001 From: jordy25519 Date: Fri, 27 Sep 2024 14:39:18 +0800 Subject: [PATCH] Pass through OracleGuardRails for margin calc --- src/exports.rs | 2 +- src/types.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/exports.rs b/src/exports.rs index 79eea68..c1beb27 100644 --- a/src/exports.rs +++ b/src/exports.rs @@ -87,7 +87,7 @@ pub extern "C" fn math_calculate_margin_requirement_and_total_collateral_and_lia let mut oracle_map = OracleMap::load( &mut oracle_accounts.iter().peekable(), accounts.latest_slot, - None, + accounts.oracle_guard_rails, ) .unwrap(); diff --git a/src/types.rs b/src/types.rs index 178fbca..328157e 100644 --- a/src/types.rs +++ b/src/types.rs @@ -1,7 +1,8 @@ //! cross-boundary FFI types use abi_stable::std_types::RResult; use drift_program::{ - math::margin::MarginRequirementType, state::margin_calculation::MarginContext, + math::margin::MarginRequirementType, + state::{margin_calculation::MarginContext, state::OracleGuardRails}, }; use solana_sdk::{ account::Account, @@ -44,11 +45,11 @@ impl<'a> IntoAccountInfo<'a> for &'a mut AccountWithKey { /// FFI equivalent of an `AccountMap` #[repr(C)] -#[derive(Debug)] pub struct AccountsList<'a> { pub perp_markets: &'a mut [AccountWithKey], pub spot_markets: &'a mut [AccountWithKey], pub oracles: &'a mut [AccountWithKey], + pub oracle_guard_rails: Option, pub latest_slot: Slot, }