def METHOD_NAME(self, event_name: str) -> str:
    try:
        e = getattr(self.contract.events, event_name)
    except MismatchedABI:
        raise ValueError(
            f"Event {event_name} not found in {self.CONTRACT_NAME} contract."
        )
    abi = e().abi
    types = [param["type"] for param in abi["inputs"]]
    sig_str = f'{event_name}({",".join(types)})'
    return Web3.keccak(text=sig_str).hex()