code: func (s *GlobalStore) NodeKeys(addr common.Address, startKey []byte, limit int) (keys mock.Keys, err error) {
  	s.mu.RLock()
  	defer s.mu.RUnlock()
  
  	var i int
  	if startKey != nil {
  		i, _ = s.nodeKeyIndex(addr, startKey)
  	}
  	total := len(s.nodeKeys[addr])
  	max := maxIndex(i, limit, total)
  	keys.Keys = make([][]byte, 0, max-i)
  	for ; i < max; i++ {
  		keys.Keys = append(keys.Keys, append([]byte(nil), s.nodeKeys[addr][i]...))
  	}
  	if total > max {
  		keys.Next = s.nodeKeys[addr][max]
  	}
  	return keys, nil
  }
docs: // NodeKeys returns a paginated list of keys on a node with provided address.