support Binance paper trading for sync sub-command

This commit is contained in:
Lan Phan 2024-03-26 10:55:28 +07:00
parent f246077c11
commit 37a0ae53e9
3 changed files with 19 additions and 17 deletions

View File

@ -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()

View File

@ -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)

View File

@ -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())