mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-04 15:10:54 +00:00
exchanges: Refactor time handling and other minor improvements (#1948)
* exchanges: Refactor time handling and other minor improvements - Updated Kraken wrapper to utilise new time handling methods. - Simplified Kucoin types by removing unnecessary structures and using direct JSON unmarshalling. - Improved websocket handling in Kucoin to directly parse candlestick data. - Modified Lbank types to use the new time representation. - Adjusted Poloniex wrapper and types to utilise the new time handling. - Updated Yobit types and wrapper to reflect changes in time representation. - Introduced DateTime type for better handling of specific time formats. - Added tests for DateTime unmarshalling to ensure correctness. - Rid UTC().Unix and UTC().UnixMilli as it's not needed - Correct Huobi timestamp usage for some endpoints. - Rid RFC3339 time parsing since Go does that automatically. * exchanges: Refactor JSON unmarshalling for various types and improve test coverage * linter: Update error message in TestGetKlines * refactor: Simplify JSON unmarshalling in MovementHistory and improve test assertions in GetKlines * refactor: Improve JSON unmarshalling for channel name and clarify comment in wsProcessOpenOrders * refactor: Update time handling in Huobi types to use types.Time for createdAt fields and relax GetLiquidationOrders test * refactor: Move wsTicker, wsSpread, wsTrades, and wsCandle types to kraken_types.go for better organistion * refactor: Add validation for underlying parameter in GetExpirationTime and update tests
This commit is contained in:
@@ -14,7 +14,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/thrasher-corp/gocryptotrader/common"
|
||||
"github.com/thrasher-corp/gocryptotrader/common/crypto"
|
||||
"github.com/thrasher-corp/gocryptotrader/currency"
|
||||
"github.com/thrasher-corp/gocryptotrader/encoding/json"
|
||||
@@ -237,39 +236,21 @@ func (b *Bithumb) GetAccountBalance(ctx context.Context, c string) (FullBalance,
|
||||
}
|
||||
|
||||
c := splitTag[len(splitTag)-1]
|
||||
|
||||
var val float64
|
||||
switch v := datum.(type) {
|
||||
case float64:
|
||||
val = v
|
||||
case string:
|
||||
val, err = strconv.ParseFloat(v, 64)
|
||||
if err != nil {
|
||||
return fullBalance, err
|
||||
}
|
||||
default:
|
||||
return fullBalance, common.GetTypeAssertError("float64|string", datum)
|
||||
}
|
||||
val := datum.Float64()
|
||||
|
||||
switch splitTag[0] {
|
||||
case "available":
|
||||
fullBalance.Available[c] = val
|
||||
|
||||
case "in":
|
||||
fullBalance.InUse[c] = val
|
||||
|
||||
case "total":
|
||||
fullBalance.Total[c] = val
|
||||
|
||||
case "misu":
|
||||
fullBalance.Misu[c] = val
|
||||
|
||||
case "xcoin":
|
||||
fullBalance.Xcoin[c] = val
|
||||
|
||||
default:
|
||||
return fullBalance, fmt.Errorf("getaccountbalance error tag name %s unhandled",
|
||||
splitTag)
|
||||
return fullBalance, fmt.Errorf("getaccountbalance error tag name %s unhandled", splitTag)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -695,7 +676,7 @@ var errCode = map[string]string{
|
||||
}
|
||||
|
||||
// GetCandleStick returns candle stick data for requested pair
|
||||
func (b *Bithumb) GetCandleStick(ctx context.Context, symbol, interval string) (resp OHLCVResponse, err error) {
|
||||
func (b *Bithumb) GetCandleStick(ctx context.Context, symbol, interval string) (resp *OHLCVResponse, err error) {
|
||||
path := publicCandleStick + symbol + "/" + interval
|
||||
err = b.SendHTTPRequest(ctx, exchange.RestSpot, path, &resp)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user