code: func (w *Worker) ClientAfterUncooperativeCloseRequest(job *data.Job) error {
  	logger := w.logger.Add("method", "ClientAfterUncooperativeCloseRequest",
  		"job", job)
  
  	ch, err := w.relatedChannel(logger, job,
  		data.JobClientAfterUncooperativeCloseRequest)
  	if err != nil {
  		return err
  	}
  
  	ch.ChannelStatus = data.ChannelInChallenge
  	if err = w.db.Update(ch); err != nil {
  		logger.Error(err.Error())
  		return ErrInternal
  	}
  
  	challengePeriod, err := data.ReadUintSetting(w.db.Querier,
  		data.SettingsPeriodChallange)
  	if err != nil {
  		return err
  	}
  
  	return w.addJobWithDelay(logger, nil,
  		data.JobClientPreUncooperativeClose, data.JobChannel,
  		ch.ID, time.Duration(challengePeriod)*eth.BlockDuration)
  }
docs: // ClientAfterUncooperativeCloseRequest waits for the channel
  // to uncooperative close, starts the service termination process.