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)
}
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)
}
func ( w * Worker ) ClientAfterUncooperativeCloseRequest ( job * data . Job ) error { logger := w . logger . Add ( " " , " " , " " , 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 ) }
// ClientAfterUncooperativeCloseRequest waits for the channel
// to uncooperative close, starts the service termination process.
ClientAfterUncooperativeCloseRequest waits for the channel to uncooperative close starts the service termination process .