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:
Adrian Gallagher
2025-07-01 09:11:55 +10:00
committed by GitHub
parent 48a66c9faa
commit 3cc9a2b9e0
92 changed files with 2488 additions and 3276 deletions

View File

@@ -26,7 +26,7 @@ func createUSDTotalsChart(items []statistics.ValueAtTime, stats []statistics.Fun
for i := range items {
usdTotalChartPlot[i] = LinePlot{
Value: items[i].Value.InexactFloat64(),
UnixMilli: items[i].Time.UTC().UnixMilli(),
UnixMilli: items[i].Time.UnixMilli(),
}
}
response.Data = append(response.Data, ChartLine{
@@ -45,7 +45,7 @@ func createUSDTotalsChart(items []statistics.ValueAtTime, stats []statistics.Fun
}
plots = append(plots, LinePlot{
Value: stats[i].ReportItem.Snapshots[j].USDValue.InexactFloat64(),
UnixMilli: stats[i].ReportItem.Snapshots[j].Time.UTC().UnixMilli(),
UnixMilli: stats[i].ReportItem.Snapshots[j].Time.UnixMilli(),
})
}
response.Data = append(response.Data, ChartLine{
@@ -76,7 +76,7 @@ func createHoldingsOverTimeChart(stats []statistics.FundingItemStatistics) (*Cha
response.ShowZeroDisclaimer = true
}
plots = append(plots, LinePlot{
UnixMilli: stats[i].ReportItem.Snapshots[j].Time.UTC().UnixMilli(),
UnixMilli: stats[i].ReportItem.Snapshots[j].Time.UnixMilli(),
Value: stats[i].ReportItem.Snapshots[j].Available.InexactFloat64(),
})
}

View File

@@ -167,7 +167,7 @@ func (d *Data) enhanceCandles() error {
_, offset := time.Now().Zone()
tt := d.OriginalCandles[intVal].Candles[j].Time.Add(time.Duration(offset) * time.Second)
enhancedCandle := DetailedCandle{
UnixMilli: tt.UTC().UnixMilli(),
UnixMilli: tt.UnixMilli(),
Open: d.OriginalCandles[intVal].Candles[j].Open,
High: d.OriginalCandles[intVal].Candles[j].High,
Low: d.OriginalCandles[intVal].Candles[j].Low,