def closing_address(
            self,
            participant1: Address,
            participant2: Address,
            block_identifier: BlockSpecification,
            channel_identifier: ChannelID = None,
    ) -> Optional[Address]:
        """ Returns the address of the closer, if the channel is closed and not settled. None
        otherwise. """

        try:
            channel_data = self._detail_channel(
                participant1=participant1,
                participant2=participant2,
                block_identifier=block_identifier,
                channel_identifier=channel_identifier,
            )
        except RaidenRecoverableError:
            return None

        if channel_data.state >= ChannelState.SETTLED:
            return None

        participants_data = self.detail_participants(
            participant1=participant1,
            participant2=participant2,
            block_identifier=block_identifier,
            channel_identifier=channel_data.channel_identifier,
        )

        if participants_data.our_details.is_closer:
            return participants_data.our_details.address
        elif participants_data.partner_details.is_closer:
            return participants_data.partner_details.address

        return None
Returns the address of the closer, if the channel is closed and not settled. None
        otherwise.