pub fn withdraw(
transaction_context: &TransactionContext,
instruction_context: &InstructionContext,
stake_account_index: IndexOfAccount,
lamports: u64,
to_index: IndexOfAccount,
clock: &Clock,
stake_history: &StakeHistory,
withdraw_authority_index: IndexOfAccount,
custodian_index: Option<IndexOfAccount>,
new_rate_activation_epoch: Option<Epoch>,
) -> Result<(), InstructionError>