From 37a0ae53e97bff78334fba01508559cd418fabfa Mon Sep 17 00:00:00 2001 From: Lan Phan Date: Tue, 26 Mar 2024 10:55:28 +0700 Subject: [PATCH] support Binance paper trading for sync sub-command --- pkg/bbgo/environment.go | 5 ----- pkg/exchange/binance/exchange.go | 16 ++++------------ pkg/service/sync.go | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/pkg/bbgo/environment.go b/pkg/bbgo/environment.go index a7873ef6bf..ab86153132 100644 --- a/pkg/bbgo/environment.go +++ b/pkg/bbgo/environment.go @@ -520,11 +520,6 @@ func (environ *Environment) Sync(ctx context.Context, userConfig ...*Config) err return nil } - // for paper trade mode, skip sync - if util.IsPaperTrade() { - return nil - } - environ.syncMutex.Lock() defer environ.syncMutex.Unlock() diff --git a/pkg/exchange/binance/exchange.go b/pkg/exchange/binance/exchange.go index b369506272..6d4594da4e 100644 --- a/pkg/exchange/binance/exchange.go +++ b/pkg/exchange/binance/exchange.go @@ -3,7 +3,6 @@ package binance import ( "context" "fmt" - "os" "strconv" "strings" "sync" @@ -67,12 +66,7 @@ func init() { } func isBinanceUs() bool { - v, err := strconv.ParseBool(os.Getenv("BINANCE_US")) - return err == nil && v -} - -func paperTrade() bool { - v, ok := util.GetEnvVarBool("PAPER_TRADE") + v, ok := util.GetEnvVarBool("BINANCE_US") return ok && v } @@ -97,6 +91,9 @@ type Exchange struct { var timeSetterOnce sync.Once func New(key, secret string) *Exchange { + if util.IsPaperTrade() { + binance.UseTestnet = true + } var client = binance.NewClient(key, secret) client.HTTPClient = binanceapi.DefaultHttpClient client.Debug = viper.GetBool("debug-binance-client") @@ -109,11 +106,6 @@ func New(key, secret string) *Exchange { client.BaseURL = BinanceUSBaseURL } - if paperTrade() { - client.BaseURL = BinanceTestBaseURL - futuresClient.BaseURL = FutureTestBaseURL - } - client2 := binanceapi.NewClient(client.BaseURL) futuresClient2 := binanceapi.NewFuturesRestClient(futuresClient.BaseURL) diff --git a/pkg/service/sync.go b/pkg/service/sync.go index ae9f6adb73..718c4dc8fa 100644 --- a/pkg/service/sync.go +++ b/pkg/service/sync.go @@ -6,6 +6,7 @@ import ( "time" "github.com/c9s/bbgo/pkg/cache" + "github.com/c9s/bbgo/pkg/util" log "github.com/sirupsen/logrus" @@ -88,6 +89,10 @@ func (s *SyncService) SyncRewardHistory(ctx context.Context, exchange types.Exch } log.Infof("syncing %s reward records...", exchange.Name()) + if util.IsPaperTrade() { + log.Info("reward is not supported in paper trading") + return nil + } if err := s.RewardService.Sync(ctx, exchange, startTime); err != nil { return err } @@ -97,6 +102,11 @@ func (s *SyncService) SyncRewardHistory(ctx context.Context, exchange types.Exch func (s *SyncService) SyncDepositHistory(ctx context.Context, exchange types.Exchange, startTime time.Time) error { log.Infof("syncing %s deposit records...", exchange.Name()) + if util.IsPaperTrade() { + log.Info("deposit is not supported in paper trading") + return nil + } + if err := s.DepositService.Sync(ctx, exchange, startTime); err != nil { if err != ErrNotImplemented { log.Warnf("%s deposit service is not supported", exchange.Name()) @@ -109,6 +119,11 @@ func (s *SyncService) SyncDepositHistory(ctx context.Context, exchange types.Exc func (s *SyncService) SyncWithdrawHistory(ctx context.Context, exchange types.Exchange, startTime time.Time) error { log.Infof("syncing %s withdraw records...", exchange.Name()) + if util.IsPaperTrade() { + log.Info("withdraw is not supported in paper trading") + return nil + } + if err := s.WithdrawService.Sync(ctx, exchange, startTime); err != nil { if err != ErrNotImplemented { log.Warnf("%s withdraw service is not supported", exchange.Name())