pub async fn create_and_send_transaction_with_event<T>(
context: &mut ProgramTestContext,
instruction: &[Instruction],
payer: &Pubkey,
signers: &[&Keypair],
transaction_params: Option<TransactionParams>
) -> Result<Option<T>, BanksClientError>where
T: AnchorDeserialize,