Skip to content

Commit 2cef19a

Browse files
authored
Merge pull request #26 from isther/main
Features
2 parents c60aac2 + 02aaf3d commit 2cef19a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+2752
-1014
lines changed

account.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package bybit_connector
22

33
import (
44
"context"
5-
"encoding/json"
65
"github.com/wuhewuhe/bybit.go.api/handlers"
76
"net/http"
87
)

asset.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package bybit_connector
22

33
import (
44
"context"
5-
"encoding/json"
65
"net/http"
76
)
87

broker.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package bybit_connector
22

33
import (
44
"context"
5-
"encoding/json"
65
"github.com/wuhewuhe/bybit.go.api/handlers"
76
"net/http"
87
)

bybit_api_client.go

Lines changed: 84 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,21 @@ import (
66
"crypto/hmac"
77
"crypto/sha256"
88
"encoding/hex"
9-
"encoding/json"
109
"fmt"
11-
"github.com/wuhewuhe/bybit.go.api/handlers"
1210
"io"
1311
"log"
1412
"net/http"
1513
"os"
1614
"strconv"
1715
"time"
16+
17+
"github.com/bitly/go-simplejson"
18+
jsoniter "github.com/json-iterator/go"
19+
"github.com/wuhewuhe/bybit.go.api/handlers"
1820
)
1921

22+
var json = jsoniter.ConfigCompatibleWithStandardLibrary
23+
2024
type ServerResponse struct {
2125
RetCode int `json:"retCode"`
2226
RetMsg string `json:"retMsg"`
@@ -77,6 +81,14 @@ func GetCurrentTime() int64 {
7781
return timeStamp
7882
}
7983

84+
func newJSON(data []byte) (j *simplejson.Json, err error) {
85+
j, err = simplejson.NewJson(data)
86+
if err != nil {
87+
return nil, err
88+
}
89+
return j, nil
90+
}
91+
8092
// NewBybitHttpClient NewClient Create client function for initialising new Bybit client
8193
func NewBybitHttpClient(apiKey string, APISecret string, options ...ClientOption) *Client {
8294
c := &Client{
@@ -152,6 +164,9 @@ func (c *Client) parseRequest(r *request, opts ...RequestOption) (err error) {
152164

153165
func (c *Client) callAPI(ctx context.Context, r *request, opts ...RequestOption) (data []byte, err error) {
154166
err = c.parseRequest(r, opts...)
167+
if err != nil {
168+
return nil, err
169+
}
155170
req, err := http.NewRequest(r.method, r.fullURL, r.body)
156171
if err != nil {
157172
return []byte{}, err
@@ -196,36 +211,79 @@ func (c *Client) callAPI(ctx context.Context, r *request, opts ...RequestOption)
196211
return data, nil
197212
}
198213

199-
// NewMarketKlineService Market Endpoints
200-
func (c *Client) NewMarketKlineService(klineType, category, symbol, interval string) *Klines {
201-
return &Klines{
202-
c: c,
203-
category: category,
204-
symbol: symbol,
205-
interval: interval,
206-
klineType: klineType,
207-
}
214+
func (c *Client) NewInstrumentsInfoService() *InstrumentsInfoService {
215+
return &InstrumentsInfoService{c: c}
208216
}
209217

210-
func (c *Client) NewMarketKLinesService(klineType string, params map[string]interface{}) *MarketClient {
211-
return &MarketClient{
212-
c: c,
213-
klineType: klineType,
214-
params: params,
215-
}
218+
// NewMarketKlineService Market Kline Endpoints
219+
func (c *Client) NewMarketKlineService() *MarketKlinesService {
220+
return &MarketKlinesService{c: c}
216221
}
217222

218-
func (c *Client) NewMarketInfoServiceNoParams() *MarketClient {
219-
return &MarketClient{
220-
c: c,
221-
}
223+
// NewMarketMarkPriceKlineService Market Mark Price Kline Endpoints
224+
func (c *Client) NewMarketMarkPriceKlineService() *MarketMarkPriceKlineService {
225+
return &MarketMarkPriceKlineService{c: c}
222226
}
223227

224-
func (c *Client) NewMarketInfoService(params map[string]interface{}) *MarketClient {
225-
return &MarketClient{
226-
c: c,
227-
params: params,
228-
}
228+
// NewMarketIndexPriceKlineService Market Index Price Kline Endpoints
229+
func (c *Client) NewMarketIndexPriceKlineService() *MarketIndexPriceKlineService {
230+
return &MarketIndexPriceKlineService{c: c}
231+
}
232+
233+
// NewMarketPremiumIndexPriceKlineService Market Premium Index Price Kline Endpoints
234+
func (c *Client) NewMarketPremiumIndexPriceKlineService() *MarketPremiumIndexPriceKlineService {
235+
return &MarketPremiumIndexPriceKlineService{c: c}
236+
}
237+
238+
func (c *Client) NewOrderBookService() *MarketOrderBookService {
239+
return &MarketOrderBookService{c: c}
240+
}
241+
242+
func (c *Client) NewTickersService() *MarketTickersService {
243+
return &MarketTickersService{c: c}
244+
}
245+
246+
func (c *Client) NewFundingTatesService() *MarketFundingRatesService {
247+
return &MarketFundingRatesService{c: c}
248+
}
249+
250+
func (c *Client) NewGetPublicRecentTradesService() *GetPublicRecentTradesService {
251+
return &GetPublicRecentTradesService{c: c}
252+
}
253+
254+
// GetOpenInterestsServicdde
255+
func (c *Client) NewGetOpenInterestsService() *GetOpenInterestsService {
256+
return &GetOpenInterestsService{c: c}
257+
}
258+
259+
// GetHistoricalVolatilityService
260+
func (c *Client) NewGetHistoricalVolatilityService() *GetHistoricalVolatilityService {
261+
return &GetHistoricalVolatilityService{c: c}
262+
}
263+
264+
// GetInsuranceInfoService
265+
func (c *Client) NewGetInsuranceInfoService() *GetInsuranceInfoService {
266+
return &GetInsuranceInfoService{c: c}
267+
}
268+
269+
// GetRiskLimitService
270+
func (c *Client) NewGetRiskLimitService() *GetRiskLimitService {
271+
return &GetRiskLimitService{c: c}
272+
}
273+
274+
// GetDeliveryPriceService
275+
func (c *Client) NewGetDeliveryPriceService() *GetDeliveryPriceService {
276+
return &GetDeliveryPriceService{c: c}
277+
}
278+
279+
// GetMarketLSRatioService
280+
func (c *Client) NewGetMarketLSRatioService() *GetMarketLSRatioService {
281+
return &GetMarketLSRatioService{c: c}
282+
}
283+
284+
// GetServerTimeService
285+
func (c *Client) NewGetServerTimeService() *GetServerTimeService {
286+
return &GetServerTimeService{c: c}
229287
}
230288

231289
// NewPlaceOrderService Trade Endpoints

bybit_websocket.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package bybit_connector
22

33
import (
4+
"context"
45
"crypto/hmac"
56
"crypto/sha256"
67
"encoding/hex"
7-
"encoding/json"
88
"fmt"
9+
"time"
10+
911
"github.com/google/uuid"
1012
"github.com/gorilla/websocket"
11-
"time"
1213
)
1314

1415
type MessageHandler func(message string) error
@@ -43,6 +44,8 @@ type WebSocket struct {
4344
maxAliveTime string
4445
pingInterval int
4546
onMessage MessageHandler
47+
ctx context.Context
48+
cancel context.CancelFunc
4649
}
4750

4851
type WebsocketOption func(*WebSocket)
@@ -111,6 +114,7 @@ func (b *WebSocket) Connect(args []string) error {
111114

112115
go b.handleIncomingMessages()
113116

117+
b.ctx, b.cancel = context.WithCancel(context.Background())
114118
Ping(b)
115119

116120
return b.sendSubscription(args)
@@ -126,12 +130,16 @@ func Ping(b *WebSocket) {
126130
if err := b.conn.WriteMessage(websocket.PingMessage, nil); err != nil {
127131
fmt.Println("Failed to send ping:", err)
128132
}
133+
case <-b.ctx.Done():
134+
fmt.Println("Exit ping")
135+
return
129136
}
130137
}
131138
}()
132139
}
133140

134141
func (b *WebSocket) Disconnect() error {
142+
b.cancel()
135143
return b.conn.Close()
136144
}
137145

examples/Trade/place_batch_trade.go

Lines changed: 0 additions & 51 deletions
This file was deleted.

examples/Trade/place_order.go

Lines changed: 0 additions & 21 deletions
This file was deleted.

examples/Trade/place_trade.go

Lines changed: 0 additions & 31 deletions
This file was deleted.

examples/account/transaction_log.go

Lines changed: 0 additions & 22 deletions
This file was deleted.

examples/asset/asset_exchange_records.go

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)