def get_receiving_address(self) -> str:
        """Get a receiving address. Guaranteed to always return an address."""
        unused_addr = self.get_unused_address()
        if unused_addr:
            return unused_addr
        domain = self.get_receiving_addresses()
        if not domain:
            raise Exception("no receiving addresses in wallet?!")
        choice = domain[0]
        for addr in domain:
            if not self.adb.is_used(addr):
                if self.get_request_by_addr(addr) is None:
                    return addr
                else:
                    choice = addr
        return choice
Get a receiving address. Guaranteed to always return an address.
electrum/wallet.py