code: func (r *GetUtxoRequest) Result(cancel <-chan struct{}) (*SpendReport, error) {
  	r.mu.Lock()
  	defer r.mu.Unlock()
  
  	select {
  	case result := <-r.resultChan:
  		// Cache the first result returned, in case we have multiple
  		// readers calling Result.
  		if r.result == nil {
  			r.result = result
  		}
  
  		return r.result.report, r.result.err
  
  	case <-cancel:
  		return nil, ErrGetUtxoCancelled
  
  	case <-r.quit:
  		return nil, ErrShuttingDown
  	}
  }
docs: // Result is callback returning either a spend report or an error.