func (ps *PulseService) PublicPulseHistory(limit int, end common.Mts) ([]*pulse.Pulse, error) {
	req := NewRequestWithMethod(path.Join("pulse", "hist"), "GET")
	req.Params = make(url.Values)
	req.Params.Add("limit", strconv.Itoa(limit))
	req.Params.Add("end", strconv.FormatInt(int64(end), 10))
	raw, err := ps.Request(req)
	if err != nil {
		return nil, err
	}
	pph, err := pulse.SnapshotFromRaw(raw)
	if err != nil {
		return nil, err
	}
	return pph, nil
}
PublicPulseHistory returns latest pulse messages. You can specify
an end timestamp to view older messages.
see https://docs.bitfinex.com/reference#rest-public-pulse-hist
package rest
import (
	"encoding/json"
	"fmt"
	"net/url"
	"path"
	"strconv"
	"github.com/bitfinexcom/bitfinex-api-go/pkg/convert"
	"github.com/bitfinexcom/bitfinex-api-go/pkg/models/common"
	"github.com/bitfinexcom/bitfinex-api-go/pkg/models/pulse"
	"github.com/bitfinexcom/bitfinex-api-go/pkg/models/pulseprofile"
)
type PulseService struct {
	requestFactory
	Synchronous
}
type Nickname string
func (ps *PulseService) PublicPulseProfile(nickname Nickname) (*pulseprofile.PulseProfile, error) {
	if (len(nickname)) == 0 {
		return nil, fmt.Errorf("nickname is required argument")
	}
	req := NewRequestWithMethod(path.Join("pulse", "profile", string(nickname)), "GET")
	raw, err := ps.Request(req)
	if err != nil {
		return nil, err
	}
	pp, err := pulseprofile.NewFromRaw(raw)
	if err != nil {
		return nil, err
	}
	return pp, nil
}