mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 23:16:45 +00:00
exchanges: Initial context propagation (#744)
* gct: phase one context awareness pass * exchanges: context propagation pass * common/requester: force context requirement * gctcli/exchanges: linter fix * rpcserver: fix test using dummy rpc server * backtester: fix comments * grpc: add correct cancel and timeout for commands * rpcserver_test: add comment on dummy server * common: deprecated SendHTTPGetRequest * linter: fix * linter: turn on no context check * apichecker: fix context linter issue * binance: use param context * common: remove checks as this gets executed before main * common: change mutex to RW as clients can be used by multiple go routines. * common: remove init and JIT default client. Unexport global variables and add protection. * common: Add comments * bithumb: after dinner mints fix
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package exchange
|
||||
|
||||
import (
|
||||
"context"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@@ -26,44 +27,44 @@ type IBotExchange interface {
|
||||
GetName() string
|
||||
IsEnabled() bool
|
||||
SetEnabled(bool)
|
||||
ValidateCredentials(a asset.Item) error
|
||||
FetchTicker(p currency.Pair, a asset.Item) (*ticker.Price, error)
|
||||
UpdateTicker(p currency.Pair, a asset.Item) (*ticker.Price, error)
|
||||
UpdateTickers(a asset.Item) error
|
||||
FetchOrderbook(p currency.Pair, a asset.Item) (*orderbook.Base, error)
|
||||
UpdateOrderbook(p currency.Pair, a asset.Item) (*orderbook.Base, error)
|
||||
FetchTradablePairs(a asset.Item) ([]string, error)
|
||||
UpdateTradablePairs(forceUpdate bool) error
|
||||
ValidateCredentials(ctx context.Context, a asset.Item) error
|
||||
FetchTicker(ctx context.Context, p currency.Pair, a asset.Item) (*ticker.Price, error)
|
||||
UpdateTicker(ctx context.Context, p currency.Pair, a asset.Item) (*ticker.Price, error)
|
||||
UpdateTickers(ctx context.Context, a asset.Item) error
|
||||
FetchOrderbook(ctx context.Context, p currency.Pair, a asset.Item) (*orderbook.Base, error)
|
||||
UpdateOrderbook(ctx context.Context, p currency.Pair, a asset.Item) (*orderbook.Base, error)
|
||||
FetchTradablePairs(ctx context.Context, a asset.Item) ([]string, error)
|
||||
UpdateTradablePairs(ctx context.Context, forceUpdate bool) error
|
||||
GetEnabledPairs(a asset.Item) (currency.Pairs, error)
|
||||
GetAvailablePairs(a asset.Item) (currency.Pairs, error)
|
||||
FetchAccountInfo(a asset.Item) (account.Holdings, error)
|
||||
UpdateAccountInfo(a asset.Item) (account.Holdings, error)
|
||||
FetchAccountInfo(ctx context.Context, a asset.Item) (account.Holdings, error)
|
||||
UpdateAccountInfo(ctx context.Context, a asset.Item) (account.Holdings, error)
|
||||
GetAuthenticatedAPISupport(endpoint uint8) bool
|
||||
SetPairs(pairs currency.Pairs, a asset.Item, enabled bool) error
|
||||
GetAssetTypes(enabled bool) asset.Items
|
||||
GetRecentTrades(p currency.Pair, a asset.Item) ([]trade.Data, error)
|
||||
GetHistoricTrades(p currency.Pair, a asset.Item, startTime, endTime time.Time) ([]trade.Data, error)
|
||||
GetRecentTrades(ctx context.Context, p currency.Pair, a asset.Item) ([]trade.Data, error)
|
||||
GetHistoricTrades(ctx context.Context, p currency.Pair, a asset.Item, startTime, endTime time.Time) ([]trade.Data, error)
|
||||
SupportsAutoPairUpdates() bool
|
||||
SupportsRESTTickerBatchUpdates() bool
|
||||
GetFeeByType(f *FeeBuilder) (float64, error)
|
||||
GetFeeByType(ctx context.Context, f *FeeBuilder) (float64, error)
|
||||
GetLastPairsUpdateTime() int64
|
||||
GetWithdrawPermissions() uint32
|
||||
FormatWithdrawPermissions() string
|
||||
SupportsWithdrawPermissions(permissions uint32) bool
|
||||
GetFundingHistory() ([]FundHistory, error)
|
||||
SubmitOrder(s *order.Submit) (order.SubmitResponse, error)
|
||||
ModifyOrder(action *order.Modify) (order.Modify, error)
|
||||
CancelOrder(o *order.Cancel) error
|
||||
CancelBatchOrders(o []order.Cancel) (order.CancelBatchResponse, error)
|
||||
CancelAllOrders(orders *order.Cancel) (order.CancelAllResponse, error)
|
||||
GetOrderInfo(orderID string, pair currency.Pair, assetType asset.Item) (order.Detail, error)
|
||||
GetDepositAddress(cryptocurrency currency.Code, accountID string) (string, error)
|
||||
GetOrderHistory(getOrdersRequest *order.GetOrdersRequest) ([]order.Detail, error)
|
||||
GetWithdrawalsHistory(code currency.Code) ([]WithdrawalHistory, error)
|
||||
GetActiveOrders(getOrdersRequest *order.GetOrdersRequest) ([]order.Detail, error)
|
||||
WithdrawCryptocurrencyFunds(withdrawRequest *withdraw.Request) (*withdraw.ExchangeResponse, error)
|
||||
WithdrawFiatFunds(withdrawRequest *withdraw.Request) (*withdraw.ExchangeResponse, error)
|
||||
WithdrawFiatFundsToInternationalBank(withdrawRequest *withdraw.Request) (*withdraw.ExchangeResponse, error)
|
||||
GetFundingHistory(ctx context.Context) ([]FundHistory, error)
|
||||
SubmitOrder(ctx context.Context, s *order.Submit) (order.SubmitResponse, error)
|
||||
ModifyOrder(ctx context.Context, action *order.Modify) (order.Modify, error)
|
||||
CancelOrder(ctx context.Context, o *order.Cancel) error
|
||||
CancelBatchOrders(ctx context.Context, o []order.Cancel) (order.CancelBatchResponse, error)
|
||||
CancelAllOrders(ctx context.Context, orders *order.Cancel) (order.CancelAllResponse, error)
|
||||
GetOrderInfo(ctx context.Context, orderID string, pair currency.Pair, assetType asset.Item) (order.Detail, error)
|
||||
GetDepositAddress(ctx context.Context, cryptocurrency currency.Code, accountID string) (string, error)
|
||||
GetOrderHistory(ctx context.Context, getOrdersRequest *order.GetOrdersRequest) ([]order.Detail, error)
|
||||
GetWithdrawalsHistory(ctx context.Context, code currency.Code) ([]WithdrawalHistory, error)
|
||||
GetActiveOrders(ctx context.Context, getOrdersRequest *order.GetOrdersRequest) ([]order.Detail, error)
|
||||
WithdrawCryptocurrencyFunds(ctx context.Context, withdrawRequest *withdraw.Request) (*withdraw.ExchangeResponse, error)
|
||||
WithdrawFiatFunds(ctx context.Context, withdrawRequest *withdraw.Request) (*withdraw.ExchangeResponse, error)
|
||||
WithdrawFiatFundsToInternationalBank(ctx context.Context, withdrawRequest *withdraw.Request) (*withdraw.ExchangeResponse, error)
|
||||
SetHTTPClientUserAgent(ua string)
|
||||
GetHTTPClientUserAgent() string
|
||||
SetClientProxyAddress(addr string) error
|
||||
@@ -72,8 +73,8 @@ type IBotExchange interface {
|
||||
GetDefaultConfig() (*config.ExchangeConfig, error)
|
||||
GetBase() *Base
|
||||
SupportsAsset(assetType asset.Item) bool
|
||||
GetHistoricCandles(p currency.Pair, a asset.Item, timeStart, timeEnd time.Time, interval kline.Interval) (kline.Item, error)
|
||||
GetHistoricCandlesExtended(p currency.Pair, a asset.Item, timeStart, timeEnd time.Time, interval kline.Interval) (kline.Item, error)
|
||||
GetHistoricCandles(ctx context.Context, p currency.Pair, a asset.Item, timeStart, timeEnd time.Time, interval kline.Interval) (kline.Item, error)
|
||||
GetHistoricCandlesExtended(ctx context.Context, p currency.Pair, a asset.Item, timeStart, timeEnd time.Time, interval kline.Interval) (kline.Item, error)
|
||||
DisableRateLimiter() error
|
||||
EnableRateLimiter() error
|
||||
|
||||
@@ -84,9 +85,9 @@ type IBotExchange interface {
|
||||
UnsubscribeToWebsocketChannels(channels []stream.ChannelSubscription) error
|
||||
IsAssetWebsocketSupported(aType asset.Item) bool
|
||||
FlushWebsocketChannels() error
|
||||
AuthenticateWebsocket() error
|
||||
AuthenticateWebsocket(ctx context.Context) error
|
||||
|
||||
GetOrderExecutionLimits(a asset.Item, cp currency.Pair) (*order.Limits, error)
|
||||
CheckOrderExecutionLimits(a asset.Item, cp currency.Pair, price, amount float64, orderType order.Type) error
|
||||
UpdateOrderExecutionLimits(a asset.Item) error
|
||||
UpdateOrderExecutionLimits(ctx context.Context, a asset.Item) error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user