mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-05 23:16:53 +00:00
Currency package update (#247)
* Initial currency overhaul before service system implementation * Remove redundant currency string in orderbook.Base Unexport lastupdated field in orderbook.Base as it was being instantiated multiple times Add error handling for process orderbook * Remove redundant currency string in ticker.Price Unexport lastupdated field in ticker.Price Add error handling for process ticker function and fix tests * Phase Two Update * Update translations to use map type - thankyou to kempeng for spotting this * Change pair method name from Display -> Format for better readability * Fixes misspelling and tests * Implement requested changes from GloriousCode * Remove reduntant function and streamlined return in currency_translation.go * Revert pair method naming conventions * Change currency naming conventions * Changed code type to exported Item type with underlying string to reduce complexity * Added interim orderbook process method to orderbook.Base type * Changed feebuilder struct field to currency.Pair * Adds fall over system for backup fx providers * deprecate function and children and fix linter issue with btcmarkets * Fixed requested changes * Fix bug and move mtx for rates * Fixed after rebase oopsies * Fix linter issues * Fixes race conditions in testing functions * Final phase coinmarketcap update * fix linter issues * Implement requested changes * Adds configuration variables to increase/decrease time durations between updating currency file and fetching new currency rates * Add a collection of tests to improve codecov * After rebase oopsy fixes for btse * Fix requested changes * fix after rebase oopsies and add more efficient comparison checks within currency pair * Fix linter issues
This commit is contained in:
committed by
Adrian Gallagher
parent
ed760e184e
commit
0990f9d118
@@ -8,7 +8,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/thrasher-/gocryptotrader/common"
|
||||
"github.com/thrasher-/gocryptotrader/currency/pair"
|
||||
"github.com/thrasher-/gocryptotrader/currency"
|
||||
exchange "github.com/thrasher-/gocryptotrader/exchanges"
|
||||
"github.com/thrasher-/gocryptotrader/exchanges/orderbook"
|
||||
log "github.com/thrasher-/gocryptotrader/logger"
|
||||
@@ -60,7 +60,7 @@ func (b *Bitstamp) findPairFromChannel(channelName string) (string, error) {
|
||||
tradingPair := strings.ToUpper(split[len(split)-1])
|
||||
|
||||
for _, enabledPair := range b.EnabledPairs {
|
||||
if enabledPair == tradingPair {
|
||||
if enabledPair.String() == tradingPair {
|
||||
return tradingPair, nil
|
||||
}
|
||||
}
|
||||
@@ -102,7 +102,7 @@ func (b *Bitstamp) WsConnect() error {
|
||||
go b.WsReadData()
|
||||
|
||||
for _, p := range b.GetEnabledCurrencies() {
|
||||
orderbookSeed, err := b.GetOrderbook(p.Pair().String())
|
||||
orderbookSeed, err := b.GetOrderbook(p.String())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -127,9 +127,7 @@ func (b *Bitstamp) WsConnect() error {
|
||||
|
||||
newOrderbook.Asks = asks
|
||||
newOrderbook.Bids = bids
|
||||
newOrderbook.CurrencyPair = p.Pair().String()
|
||||
newOrderbook.Pair = p
|
||||
newOrderbook.LastUpdated = time.Unix(0, orderbookSeed.Timestamp)
|
||||
newOrderbook.AssetType = "SPOT"
|
||||
|
||||
err = b.Websocket.Orderbook.LoadSnapshot(newOrderbook, b.GetName(), false)
|
||||
@@ -144,7 +142,7 @@ func (b *Bitstamp) WsConnect() error {
|
||||
}
|
||||
|
||||
err = b.WebsocketConn.Client.Subscribe(fmt.Sprintf("live_trades_%s",
|
||||
strings.ToLower(p.Pair().String())))
|
||||
p.Lower().String()))
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("%s Websocket Trade subscription error: %s",
|
||||
@@ -153,7 +151,7 @@ func (b *Bitstamp) WsConnect() error {
|
||||
}
|
||||
|
||||
err = b.WebsocketConn.Client.Subscribe(fmt.Sprintf("diff_order_book_%s",
|
||||
strings.ToLower(p.Pair().String())))
|
||||
p.Lower().String()))
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("%s Websocket Trade subscription error: %s",
|
||||
@@ -194,7 +192,7 @@ func (b *Bitstamp) WsReadData() {
|
||||
}
|
||||
|
||||
currencyPair := common.SplitStrings(data.Channel, "_")
|
||||
p := pair.NewCurrencyPairFromString(common.StringToUpper(currencyPair[3]))
|
||||
p := currency.NewPairFromString(common.StringToUpper(currencyPair[3]))
|
||||
|
||||
err = b.WsUpdateOrderbook(result, p, "SPOT")
|
||||
if err != nil {
|
||||
@@ -217,7 +215,7 @@ func (b *Bitstamp) WsReadData() {
|
||||
b.Websocket.DataHandler <- exchange.TradeData{
|
||||
Price: result.Price,
|
||||
Amount: result.Amount,
|
||||
CurrencyPair: pair.NewCurrencyPairFromString(currencyPair[2]),
|
||||
CurrencyPair: currency.NewPairFromString(currencyPair[2]),
|
||||
Exchange: b.GetName(),
|
||||
AssetType: "SPOT",
|
||||
}
|
||||
@@ -226,7 +224,7 @@ func (b *Bitstamp) WsReadData() {
|
||||
}
|
||||
|
||||
// WsUpdateOrderbook updates local cache of orderbook information
|
||||
func (b *Bitstamp) WsUpdateOrderbook(ob PusherOrderbook, p pair.CurrencyPair, assetType string) error {
|
||||
func (b *Bitstamp) WsUpdateOrderbook(ob PusherOrderbook, p currency.Pair, assetType string) error {
|
||||
if len(ob.Asks) == 0 && len(ob.Bids) == 0 {
|
||||
return errors.New("bitstamp_websocket.go error - no orderbook data")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user