public BinanceKeyAndSecret(PathsConfig apiKeyConfig)
        {
            if (!File.Exists(apiKeyConfig.ApiKeyConfigPath))
            {
                throw new ArgumentException($"no api key file existing at {apiKeyConfig.ApiKeyConfigPath}.");
            }

            var readLines = File.ReadLines(apiKeyConfig.ApiKeyConfigPath).ToArray();

            if (readLines.Length != 3)
            {
                throw new Exception("Binance api Key file not valid, expecting 3 lines: key, secret, tag. Maybe you are targeting a KuCoin Api Key?");
            }

            Key    = readLines[0];
            Secret = readLines[1];
            Tag    = readLines[2];
        }
示例#2
0
        public AccountFileRepository(IFileRepositoryConfig fileRepositoryConfig,
                                     Func <Trade, TradeAbstracted> tradeAbstractedFactory,
                                     Func <ManuallyExtractedTrade, ManuallyExtractedTradeAbstracted> usdcBtcTradeAbstractedFactory,
                                     PathsConfig pathsConfig)
        {
            _tradeAbstractedFactory        = tradeAbstractedFactory;
            _usdcBtcTradeAbstractedFactory = usdcBtcTradeAbstractedFactory;
            _tag = fileRepositoryConfig.Account;

            var commonDirectory = Path.Combine(pathsConfig.ExtractFolder, CommonFolderName);

            if (!Directory.Exists(commonDirectory))
            {
                Directory.CreateDirectory(commonDirectory);
            }

            _accountDirectory = Path.Combine(pathsConfig.ExtractFolder, _tag);
            if (!Directory.Exists(_accountDirectory))
            {
                Directory.CreateDirectory(_accountDirectory);
            }

            _accountInfoFileName       = Path.Combine(_accountDirectory, "AccountInfo.json");
            _depositFileName           = Path.Combine(_accountDirectory, "Deposit.json");
            _kcDepositFileName         = Path.Combine(_accountDirectory, "KcDeposit.json");
            _withdrawFileName          = Path.Combine(_accountDirectory, "Withdraw.json");
            _kcWithdrawFileName        = Path.Combine(_accountDirectory, "KcWithdraw.json");
            _dividendsFileName         = Path.Combine(_accountDirectory, "Dividends.json");
            _dustsFileName             = Path.Combine(_accountDirectory, "Dusts.json");
            _tradingRulesFileName      = Path.Combine(commonDirectory, "TradingRules.json");
            _histoPricesFileName       = Path.Combine(commonDirectory, "HistoPrices.json");
            _histoPricesManualFileName = Path.Combine(_accountDirectory, "HistoPricesManual.json");
            _kcTradesFileName          = Path.Combine(_accountDirectory, "KcTrades.json");
            _kcBalancesFileName        = Path.Combine(_accountDirectory, "KcBalances.json");
            _tradesFileName            = Path.Combine(_accountDirectory, "Trades.json");
            Account = _tag;
        }
示例#3
0
 public DaemonConfig(Version version, CommunicationConfig communication, CacheConfig cache, PathsConfig paths)
 {
     this.Version       = version;
     this.Communication = communication;
     this.Cache         = cache;
     this.Paths         = paths;
 }
 public ZipBackupCreator(ILogger <BackupCreatorService> logger, PathsConfig pathsConfig)
 {
     _logger      = logger;
     _pathsConfig = pathsConfig;
 }
        public LocalDataRetrieverComposite(Func <ManuallySetFileRepositoryConfig, AccountFileRepository> localDataRetrieverFactory, ILocalDataRetrieverCompositeConfig config, PathsConfig pathsConfig)
        {
            var accountConfigs = config.Account.Split(',').Select(t => t.Trim()).ToHashSet();

            bool ShouldBeIncluded(string fullPath)
            {
                if (accountConfigs.Count == 0 || accountConfigs.Count == 1 && "all".Equals(accountConfigs.Single(), StringComparison.InvariantCultureIgnoreCase))
                {
                    return(true);
                }

                var accountDirectoryName = Path.GetFileName(fullPath);

                return(accountConfigs.Contains(accountDirectoryName));
            }

            _localDataRetrievers = Directory.GetDirectories(pathsConfig.ExtractFolder)
                                   .Where(t => !t.EndsWith(AccountFileRepository.CommonFolderName))
                                   .Where(ShouldBeIncluded)
                                   .Select(t => new ManuallySetFileRepositoryConfig(Path.GetFileName(t)))
                                   .Select(localDataRetrieverFactory.Invoke)
                                   .ToImmutableArray();
        }
 public CapitalGainReportSaver(TaxMethodology taxMethodology, CurrentFiat currentFiat, PathsConfig pathsConfig)
 {
     SavingFolder = AccountFileRepository.GetFolder(Path.Combine(pathsConfig.ReportGenerationFolder, $"{currentFiat.Name}_{taxMethodology}_{DateTime.Today:yyyyMMdd}"));
     File.Copy("Config.json", Path.Combine(SavingFolder, "Config.json"));
 }