pub fn delegate(
invoke_context: &InvokeContext<'_>,
transaction_context: &TransactionContext,
instruction_context: &InstructionContext,
stake_account_index: IndexOfAccount,
vote_account_index: IndexOfAccount,
clock: &Clock,
stake_history: &StakeHistory,
signers: &HashSet<Pubkey>,
feature_set: &FeatureSet,
) -> Result<(), InstructionError>