3.0.1
- New rest v2 functions
    - Pulse.AddComment
- Fixes
    - Pulse.PulseHistory: no longer requires isPublic Bool argument
    - tradeexecutionupdate.FromRaw: now aware of extra value in response payload

3.0.0
- split of legacy types.go into small, test covered modules:
    - bitfinex.OrderFlagHidden -> common.FundingPrefix
    - bitfinex.OrderFlagClose -> common.OrderFlagClose
    - bitfinex.OrderFlagPostOnly -> common.OrderFlagPostOnly
    - bitfinex.OrderFlagOCO -> common.OrderFlagOCO
    - bitfinex.Checksum -> common.Checksum
    - bitfinex.OrderTypeExchangeLimit -> common.OrderTypeExchangeLimit
    - bitfinex.PermissionRead -> common.PermissionRead
    - bitfinex.PermissionWrite -> common.PermissionWrite
    - bitfinex.FundingPrefix -> common.FundingPrefix
    - bitfinex.TradingPrefix -> common.TradingPrefix
    - bitfinex.FundingSizeKey -> common.FundingSizeKey
    - bitfinex.CreditSizeKey -> common.CreditSizeKey
    - bitfinex.CreditSizeSymKey -> common.CreditSizeSymKey
    - bitfinex.PositionSizeKey -> common.PositionSizeKey
    - bitfinex.Bid -> common.Bid
    - bitfinex.Ask -> common.Ask
    - bitfinex.Long -> common.Long
    - bitfinex.Short -> common.Short
    - bitfinex.OldestFirst -> common.OldestFirst
    - bitfinex.NewestFirst -> common.NewestFirst
    - bitfinex.OneMinute -> common.OneMinute
    - bitfinex.FiveMinutes -> common.FiveMinutes
    - bitfinex.FifteenMinutes -> common.FifteenMinutes
    - bitfinex.ThirtyMinutes -> common.ThirtyMinutes
    - bitfinex.OneHour -> common.OneHour
    - bitfinex.ThreeHours -> common.ThreeHours
    - bitfinex.SixHours -> common.SixHours
    - bitfinex.TwelveHours -> common.TwelveHours
    - bitfinex.OneDay -> common.OneDay
    - bitfinex.OneWeek -> common.OneWeek
    - bitfinex.TwoWeeks -> common.TwoWeeks
    - bitfinex.OneMonth -> common.OneMonth
    - bitfinex.Precision0 -> common.Precision0
    - bitfinex.Precision1 -> common.Precision1
    - bitfinex.Precision2 -> common.Precision2
    - bitfinex.Precision3 -> common.Precision3
    - bitfinex.PrecisionRawBook -> common.PrecisionRawBook
    - bitfinex.FrequencyRealtime -> common.FrequencyRealtime
    - bitfinex.FrequencyTwoPerSecond -> common.FrequencyTwoPerSecond
    - bitfinex.PriceLevelDefault -> common.PriceLevelDefault
    - bitfinex.ErrNotFound -> common.ErrNotFound
    - bitfinex.OrderSide -> common.OrderSide
    - bitfinex.CandleResolution -> common.CandleResolution
    - bitfinex.BookPrecision -> common.BookPrecision
    - bitfinex.BookFrequency -> common.BookFrequency
    - bitfinex.SortOrder -> common.SortOrder
    - bitfinex.QueryLimit -> common.QueryLimit
    - bitfinex.PermissionType -> common.PermissionType
    - bitfinex.Mts -> common.Mts
    - bitfinex.StatKey -> common.StatKey
    - bitfinex.StatusType -> common.StatusType
    - bitfinex.CandleResolutionFromString -> common.CandleResolutionFromString
    - bitfinex.OrderNewRequest -> order.NewRequest
    - bitfinex.OrderUpdateRequest -> order.UpdateRequest
    - bitfinex.OrderCancelRequest -> order.CancelRequest
    - bitfinex.Order -> order.Order
    - bitfinex.NewOrderFromRaw -> order.FromRaw
    - bitfinex.NewOrderSnapshotFromRaw -> order.SnapshotFromRaw
    - bitfinex.NewOrderSnapshotFromRaw -> order.SnapshotFromRaw
    - bitfinex.OrderSnapshot -> order.Snapshot
    - bitfinex.OrderUpdate -> order.Update
    - bitfinex.OrderNew -> order.New
    - bitfinex.OrderCancel -> order.Cancel
    - bitfinex.PositionStatus -> position.Status
    - bitfinex.Position -> position.Position
    - bitfinex.NewPositionFromRaw -> position.FromRaw
    - bitfinex.NewPositionSnapshotFromRaw -> position.SnapshotFromRaw
    - bitfinex.PositionSnapshot -> position.Snapshot
    - bitfinex.PositionNew -> position.New
    - bitfinex.PositionUpdate -> position.Update
    - bitfinex.PositionCancel -> position.Cancel
    - bitfinex.ClaimPositionRequest -> position.ClaimRequest
    - bitfinex.Trade -> trade.Trade
    - bitfinex.NewTradeFromRaw -> trade.FromRaw
    - bitfinex.TradeSnapshot -> trade.Snapshot
    - bitfinex.NewTradeSnapshotFromRaw -> trade.SnapshotFromRaw
    - bitfinex.TradeExecutionUpdate -> tradeexecutionupdate.TradeExecutionUpdate
    - bitfinex.NewTradeExecutionUpdateFromRaw -> tradeexecutionupdate.FromRaw
    - bitfinex.TradeExecutionUpdateSnapshot -> tradeexecutionupdate.Snapshot
    - bitfinex.HistoricalTradeSnapshot -> tradeexecutionupdate.HistoricalTradeSnapshot
    - bitfinex.NewTradeExecutionUpdateSnapshotFromRaw -> tradeexecutionupdate.SnapshotFromRaw
    - bitfinex.TradeExecution -> tradeexecution.TradeExecution
    - bitfinex.NewTradeExecutionFromRaw -> tradeexecution.FromRaw
    - bitfinex.NewTradeExecutionFromRaw -> tradeexecution.FromRaw
    - bitfinex.Wallet -> wallet.Wallet
    - bitfinex.WalletUpdate -> wallet.Update
    - bitfinex.WalletSnapshot -> wallet.Snapshot
    - bitfinex.NewWalletFromRaw -> wallet.FromRaw
    - bitfinex.NewWalletSnapshotFromRaw -> wallet.SnapshotFromRaw
    - bitfinex.NewWalletSnapshotFromRaw -> wallet.SnapshotFromRaw
    - bitfinex.BalanceInfo -> balanceinfo.BalanceInfo
    - bitfinex.BalanceUpdate -> balanceinfo.Update
    - bitfinex.NewBalanceInfoFromRaw -> balanceinfo.FromRaw
    - bitfinex.MarginInfoUpdate -> margin.InfoUpdate
    - bitfinex.MarginInfoBase -> margin.InfoBase
    - bitfinex.NewMarginInfoFromRaw -> margin.FromRaw
    - bitfinex.FundingInfo -> fundinginfo.FundingInfo
    - bitfinex.NewFundingInfoFromRaw -> fundinginfo.FromRaw
    - bitfinex.FundingOfferCancelRequest -> fundingoffer.CancelRequest
    - bitfinex.FundingOfferRequest -> fundingoffer.SubmitRequest
    - bitfinex.Offer -> fundingoffer.Offer
    - bitfinex.NewOfferFromRaw -> fundingoffer.FromRaw
    - bitfinex.FundingOfferNew -> fundingoffer.New
    - bitfinex.FundingOfferUpdate -> fundingoffer.Update
    - bitfinex.FundingOfferCancel -> fundingoffer.Cancel
    - bitfinex.FundingOfferSnapshot -> fundingoffer.Snapshot
    - bitfinex.FundingOfferSnapshot -> fundingoffer.Snapshot
    - bitfinex.NewFundingOfferSnapshotFromRaw -> fundingoffer.SnapshotFromRaw
    - bitfinex.Credit -> fundingcredit.Credit
    - bitfinex.FundingCreditNew -> fundingcredit.New
    - bitfinex.FundingCreditUpdate -> fundingcredit.Update
    - bitfinex.FundingCreditCancel -> fundingcredit.Cancel
    - bitfinex.FundingCreditSnapshot -> fundingcredit.Snapshot
    - bitfinex.NewCreditFromRaw -> fundingcredit.FromRaw
    - bitfinex.NewFundingCreditSnapshotFromRaw -> fundingcredit.SnapshotFromRaw
    - bitfinex.NewFundingCreditSnapshotFromRaw -> fundingcredit.SnapshotFromRaw
    - bitfinex.Loan -> fundingloan.Loan
    - bitfinex.FundingLoanNew -> fundingloan.New
    - bitfinex.FundingLoanUpdate -> fundingloan.Update
    - bitfinex.FundingLoanCancel -> fundingloan.Cancel
    - bitfinex.FundingLoanSnapshot -> fundingloan.Snapshot
    - bitfinex.NewLoanFromRaw -> fundingloan.FromRaw
    - bitfinex.NewFundingLoanSnapshotFromRaw -> fundingloan.SnapshotFromRaw
    - bitfinex.FundingTrade -> fundingtrade.FundingTrade
    - bitfinex.FundingTradeExecution -> fundingtrade.Execution
    - bitfinex.FundingTradeUpdate -> fundingtrade.Update
    - bitfinex.FundingTradeSnapshot -> fundingtrade.Snapshot
    - bitfinex.HistoricalFundingTradeSnapshot -> fundingtrade.HistoricalSnapshot
    - bitfinex.NewFundingTradeFromRaw -> fundingtrade.FromRaw
    - bitfinex.NewFundingTradeSnapshotFromRaw -> fundingtrade.SnapshotFromRaw
    - bitfinex.Notification -> notification.Notification
    - bitfinex.NewNotificationFromRaw -> notification.FromRaw
    - bitfinex.Ticker -> ticker.Ticker
    - bitfinex.TickerSnapshot -> ticker.Snapshot
    - bitfinex.NewTickerSnapshotFromRaw -> ticker.SnapshotFromRaw
    - bitfinex.NewTickerFromRaw -> ticker.FromRaw
    - bitfinex.NewTickerFromRestRaw -> ticker.FromRestRaw
    - bitfinex.BookUpdate -> book.Book
    - bitfinex.BookUpdateSnapshot -> book.Snapshot
    - bitfinex.NewBookUpdateSnapshotFromRaw -> book.SnapshotFromRaw
    - bitfinex.IsRawBook -> book.IsRawBook
    - bitfinex.NewBookUpdateFromRaw -> book.FromRaw
    - bitfinex.Candle -> candle.Candle
    - bitfinex.CandleSnapshot -> candle.Snapshot
    - bitfinex.NewCandleSnapshotFromRaw -> candle.SnapshotFromRaw
    - bitfinex.NewCandleFromRaw -> candle.FromRaw
    - bitfinex.ToFloat64Slice -> convert.F64Slice
    - bitfinex.ToInterface -> convert.ToInterface
    - bitfinex.ToInterface -> convert.ToInterface
    - bitfinex.Ledger -> ledger.Ledger
    - bitfinex.LedgerSnapshot -> ledger.Snapshot
    - bitfinex.NewLedgerFromRaw -> ledger.FromRaw
    - bitfinex.NewLedgerSnapshotFromRaw -> ledger.SnapshotFromRaw
    - bitfinex.CurrencyConf -> currency.Conf
    - bitfinex.ExplorerConf -> currency.ExplorerConf
    - bitfinex.RawCurrencyConf -> currency.RawConf
    - bitfinex.RawConf -> currency.FromRaw
    - bitfinex.Stat -> stats.Stat
    - bitfinex.DerivativeStatus -> derivatives.DerivativeStatus
    - bitfinex.DerivativeStatusSnapshot -> derivatives.Snapshot
    - bitfinex.NewDerivativeStatusFromWsRaw -> derivatives.FromWsRaw
    - bitfinex.NewDerivativeStatusFromRaw -> derivatives.FromRaw
    - bitfinex.NewDerivativeSnapshotFromRaw -> derivatives.SnapshotFromRaw
- Adds new WS v2 functions
    - ws.CloseFundingLoan
    - ws.CloseFundingCredit
- Fixes
    - derivatives.DerivativeStatus fixed payload quality check
    - convert.F64ValOrZero now returning float64 for non float interface representations instead of 0
    - convert.BValOrFalse now correctly maps 0, 1, "0" and "1" to boolean values
    - trades resource is now aware of trading and funding pairs and maps data correctly
    - book resource is now aware of trading and funding pairs and maps data correctly


2.2.9

- Adds new rest v2 functions
    - Orders.CancelOrderMulti
    - Orders.CancelOrdersMultiOp
    - Orders.CancelOrderMultiOp
    - Orders.OrderNewMultiOp
    - Orders.OrderUpdateMultiOp
    - Orders.OrderMultiOp
    - Invoice.GenerateInvoice
    - Funding.KeepFunding
    - Market.AveragePrice
    - Market.ForeignExchangeRate

2.2.8

- Adds new rest v2 functions
    - Pulse.PublicPulseProfile
    - Pulse.PublicPulseHistory
    - Pulse.AddPulse
    - Pulse.PulseHistory
    - Pulse.DeletePulse

2.2.7

- Separates subscriptions by socketID to prevent clashing

2.2.6

- Adds AffiliateCode field to order submission
- Extracts and exposes Meta field from order object

2.2.5

- hotfix: parse notify info even if type not recognised

2.2.4

- Adds new rest v2 functions
    - Funding.Offers
    - Funding.OfferHistory
    - Funding.Loans
    - Funding.LoanHistory
    - Funding.Credits
    - Funding.CreditHistory
    - Funding.Trades
    - Funding.SubmitOffer
    - Funding.CancelOffer
    - Orders.SubmitOrder
    - Orders.CancelOrder
    - Orders.SubmitUpdateOrder
    - Orders.SubmitCancelOrder
    - Positions.Claim
    - Wallet.Transfer
    - Wallet.DepositAddress
    - Wallet.CreateDepositAddress
    - Wallet.Withdraw
- Adds new ws v2 functions
    - Ws/SubmitFundingOffer
    - Ws/SubmitFundingCancel

2.2.3

- Add transport keep alive pinger to keep tls connection open
- Fix multiple small race conditions

2.2.2

- Uses channel/write combo for websocket send requests to avoid race conditions
- Use mutex for building snapshot to avoid race conditions
- Use TradeExecution as type for authenticated trade data

2.2.1

- Adds v2/rest Derivatives service with new functions
    - SetCollateral
- Adds v2/rest Status service with new functions
    - DerivativeStatus
    - DerivativeStatusMulti
    - DerivativeStatusAll
- Adds support for auth ws feed 'status'
- Adds ws subscription function SubscribeStatus

2.2.0

- Adds v2/ws connection multiplexer
- Adds v2/ws api functions ConnectionCount and StartNewConnection

2.1.1

- Removes usage of string(int) conversion in v2/rest and uses strconv.FormatInt instead
- Adds version file
- Adds changelog file
- Fix v2/rest response error message to be passed down correctly
- Rework v2/rest/orders api, change function names and add additionals
