code: func (w *worker) pending() (*types.Block, *state.StateDB) {
  	// return a snapshot to avoid contention on currentMu mutex
  	w.snapshotMu.RLock()
  	defer w.snapshotMu.RUnlock()
  	if w.snapshotState == nil {
  		return nil, nil
  	}
  	return w.snapshotBlock, w.snapshotState.Copy()
  }
docs: // pending returns the pending state and corresponding block.