pub fn create_transfer_instruction(
    fee_payer: &Pubkey,
    authority: &Pubkey,
    input_merkle_context: &[MerkleContext],
    output_compressed_account_merkle_tree_pubkeys: &[Pubkey],
    output_compressed_accounts: &[TokenTransferOutputData],
    root_indices: &[u16],
    proof: &Option<CompressedProof>,
    input_token_data: &[TokenData],
    mint: Pubkey,
    owner_if_delegate_is_signer: Option<Pubkey>,
    is_compress: bool,
    compression_amount: Option<u64>,
    token_pool_pda: Option<Pubkey>,
    decompress_token_account: Option<Pubkey>
) -> Result<Instruction, TransferSdkError>