code: func NewState(db dbm.DB) *State {
  	forest, err := storage.NewMutableForest(storage.NewPrefixDB(db, forestPrefix), defaultCacheCapacity)
  	if err != nil {
  		// This should only happen if we have negative cache capacity, which for us is a positive compile-time constant
  		panic(fmt.Errorf("could not create new state because error creating MutableForest"))
  	}
  	ring := validator.NewRing(nil, DefaultValidatorsWindowSize)
  	rs := ReadState{Forest: forest, History: ring}
  	ws := writeState{forest: forest, ring: ring}
  	return &State{
  		db:         db,
  		ReadState:  rs,
  		writeState: ws,
  		logger:     logging.NewNoopLogger(),
  	}
  }
docs: // Create a new State object