pub fn token_register(
    ctx: Context<'_, '_, '_, '_, TokenRegister<'_>>,
    token_index: TokenIndex,
    name: String,
    oracle_config: OracleConfigParams,
    interest_rate_params: InterestRateParams,
    loan_fee_rate: f32,
    loan_origination_fee_rate: f32,
    maint_asset_weight: f32,
    init_asset_weight: f32,
    maint_liab_weight: f32,
    init_liab_weight: f32,
    liquidation_fee: f32,
    stable_price_delay_interval_seconds: u32,
    stable_price_delay_growth_limit: f32,
    stable_price_growth_limit: f32,
    min_vault_to_deposits_ratio: f64,
    net_borrow_limit_window_size_ts: u64,
    net_borrow_limit_per_window_quote: i64,
    borrow_weight_scale_start_quote: f64,
    deposit_weight_scale_start_quote: f64,
    reduce_only: u8,
    token_conditional_swap_taker_fee_rate: f32,
    token_conditional_swap_maker_fee_rate: f32,
    flash_loan_swap_fee_rate: f32,
    interest_curve_scaling: f32,
    interest_target_utilization: f32,
    group_insurance_fund: bool,
    deposit_limit: u64,
    zero_util_rate: f32,
    platform_liquidation_fee: f32,
    disable_asset_liquidation: bool,
    collateral_fee_per_day: f32
) -> Result<()>