/// Processes a [ConfigureOmnibusAccount] instruction.
Processes a [ConfigureOmnibusAccount] instruction.
Processes a [ ConfigureOmnibusAccount ] instruction .
fn process_configure_omnibus_account(accounts: &[AccountInfo]) -> ProgramResult {
    let account_info_iter = &mut accounts.iter();
    let funder_info = next_account_info(account_info_iter)?;
    let mint_info = next_account_info(account_info_iter)?;
    let omnibus_info = next_account_info(account_info_iter)?;
    let system_program_info = next_account_info(account_info_iter)?;
    check_program_account(mint_info.owner)?;
    let _mint = StateWithExtensions::<Mint>::unpack(&mint_info.data.borrow())?;
    let (omnibus_token_address, omnibus_token_bump_seed) =
        get_omnibus_token_address_with_seed(mint_info.key);
    if omnibus_token_address != *omnibus_info.key {
        msg!("Error: Omnibus token address does not match derivation");
        return Err(ProgramError::InvalidArgument);
    }
    let omnibus_token_account_signer_seeds: &[&[_]] = &[
        &mint_info.key.to_bytes(),
        br"confidential_transfer_omnibus",
        &[omnibus_token_bump_seed],
    ];
    create_pda_account(
        funder_info,
        &Rent::get()?,
        Account::get_packed_len(),
        &id(),
        system_program_info,
        omnibus_info,
        omnibus_token_account_signer_seeds,
    )?;
    Processor::process(
        &id(),
        &[omnibus_info.clone(), mint_info.clone()],
        &crate::instruction::initialize_account3(
            &id(),
            omnibus_info.key,
            mint_info.key,
            omnibus_info.key,
        )?
        .data,
    )
}
fn process_configure_omnibus_account ( accounts : & [ AccountInfo ] ) -> ProgramResult { let account_info_iter = & mut accounts . iter ( ) ; let funder_info = next_account_info ( account_info_iter ) ? ; let mint_info = next_account_info ( account_info_iter ) ? ; let omnibus_info = next_account_info ( account_info_iter ) ? ; let system_program_info = next_account_info ( account_info_iter ) ? ; check_program_account ( mint_info . owner ) ? ; let _mint = StateWithExtensions :: < Mint > :: unpack ( & mint_info . data . borrow ( ) ) ? ; let ( omnibus_token_address , omnibus_token_bump_seed ) = get_omnibus_token_address_with_seed ( mint_info . key ) ; if omnibus_token_address != * omnibus_info . key { msg ! ( " " ) ; return Err ( ProgramError :: InvalidArgument ) ; } let omnibus_token_account_signer_seeds : & [ & [ _ ] ] = & [ & mint_info . key . to_bytes ( ) , br"confidential_transfer_omnibus" , & [ omnibus_token_bump_seed ] , ] ; create_pda_account ( funder_info , & Rent :: get ( ) ? , Account :: get_packed_len ( ) , & id ( ) , system_program_info , omnibus_info , omnibus_token_account_signer_seeds , ) ? ; Processor :: process ( & id ( ) , & [ omnibus_info . clone ( ) , mint_info . clone ( ) ] , & crate :: instruction :: initialize_account3 ( & id ( ) , omnibus_info . key , mint_info . key , omnibus_info . key , ) ? . data , ) }
Processes a [ConfigureOmnibusAccount] instruction.
Processes a [ ConfigureOmnibusAccount ] instruction .
accounts
&[AccountInfo]