pub fn token_edit(
ctx: Context<'_, '_, '_, '_, TokenEdit<'_>>,
oracle_opt: Option<Pubkey>,
oracle_config_opt: Option<OracleConfigParams>,
group_insurance_fund_opt: Option<bool>,
interest_rate_params_opt: Option<InterestRateParams>,
loan_fee_rate_opt: Option<f32>,
loan_origination_fee_rate_opt: Option<f32>,
maint_asset_weight_opt: Option<f32>,
init_asset_weight_opt: Option<f32>,
maint_liab_weight_opt: Option<f32>,
init_liab_weight_opt: Option<f32>,
liquidation_fee_opt: Option<f32>,
stable_price_delay_interval_seconds_opt: Option<u32>,
stable_price_delay_growth_limit_opt: Option<f32>,
stable_price_growth_limit_opt: Option<f32>,
min_vault_to_deposits_ratio_opt: Option<f64>,
net_borrow_limit_per_window_quote_opt: Option<i64>,
net_borrow_limit_window_size_ts_opt: Option<u64>,
borrow_weight_scale_start_quote_opt: Option<f64>,
deposit_weight_scale_start_quote_opt: Option<f64>,
reset_stable_price: bool,
reset_net_borrow_limit: bool,
reduce_only_opt: Option<u8>,
name_opt: Option<String>,
force_close_opt: Option<bool>,
token_conditional_swap_taker_fee_rate_opt: Option<f32>,
token_conditional_swap_maker_fee_rate_opt: Option<f32>,
flash_loan_swap_fee_rate_opt: Option<f32>,
interest_curve_scaling_opt: Option<f32>,
interest_target_utilization_opt: Option<f32>,
maint_weight_shift_start_opt: Option<u64>,
maint_weight_shift_end_opt: Option<u64>,
maint_weight_shift_asset_target_opt: Option<f32>,
maint_weight_shift_liab_target_opt: Option<f32>,
maint_weight_shift_abort: bool,
set_fallback_oracle: bool,
deposit_limit_opt: Option<u64>,
zero_util_rate_opt: Option<f32>,
platform_liquidation_fee_opt: Option<f32>,
disable_asset_liquidation_opt: Option<bool>,
collateral_fee_per_day_opt: Option<f32>,
force_withdraw_opt: Option<bool>
) -> Result<()>