Ejemplo n.º 1
0
        public void Setup()
        {
            BCash.Instance.EnsureRegistered();
            Litecoin.Instance.EnsureRegistered();

            _logFactory = LogFactory.Create().AddUnbufferedConsole();
            var assetsClient = new AssetsClient(_logFactory, new AssetsClientSettings());

            _blockchainProvider = new BlockchainsProvider(assetsClient);
            _addressNormalizer  = new AddressNormalizer
                                  (
                _logFactory,
                new IAddressNormalizer[]
            {
                new GeneralAddressNormalizer(),
                new BtcAddressNormalizer(_blockchainProvider, new BtcSettings {
                    Network = "mainnet"
                }),
                new BchAddressNormalizer(_blockchainProvider, new BchSettings {
                    Network = "mainnet"
                }),
                new LtcAddressNormalizer(_blockchainProvider, new LtcSettings {
                    Network = "ltc-main"
                }),
                new EthAddressNormalizer(_blockchainProvider),
                new XrpAddressNormalizer(_blockchainProvider)
            }
                                  );
        }
 public WithdrawalsExporter(
     ILogFactory logFactory,
     IReadOnlyCollection <IWithdrawalsHistoryProvider> withdrawalsHistoryProviders,
     AddressNormalizer addressNormalizer)
 {
     _log = logFactory.CreateLog(this);
     _addressNormalizer           = addressNormalizer;
     _withdrawalsHistoryProviders = withdrawalsHistoryProviders;
 }
 public EthDepositsHistoryProvider(
     IBlockchainsProvider blockchainsProvider,
     EthSettings settings,
     AddressNormalizer addressNormalizer)
 {
     _addressNormalizer = addressNormalizer;
     _samuraiClient     = new SamuraiClient(settings.SamuraiUrl);
     _ethereum          = blockchainsProvider.GetEthereum();
 }
 public LtcDepositsHistoryProvider(
     ILogFactory logFactory,
     LtcSettings settings,
     IBlockchainsProvider blockchainsProvider,
     AddressNormalizer addressNormalizer)
 {
     _log = logFactory.CreateLog(this);
     _addressNormalizer = addressNormalizer;
     _insightApi        = new InsightApiClient(settings.InsightApiUrl);
     _liteCoin          = blockchainsProvider.GetLiteCoin();
 }
 public BchDepositsHistoryProvider(
     ILogFactory logFactory,
     BchSettings settings,
     IBlockchainsProvider blockchainsProvider,
     AddressNormalizer addressNormalizer)
 {
     _log = logFactory.CreateLog(this);
     _addressNormalizer = addressNormalizer;
     _insightApi        = new InsightApiClient(settings.InsightApiUrl);
     _bitcoinCash       = blockchainsProvider.GetBitcoinCash();
 }
        public DepositsExporter(
            ILogFactory logFactory,
            AddressNormalizer addressNormalizer,
            IReadOnlyCollection <IDepositWalletsProvider> depositWalletsProviders,
            IReadOnlyCollection <IDepositsHistoryProvider> depositsHistoryProviders)
        {
            _log = logFactory.CreateLog(this);
            _addressNormalizer        = addressNormalizer;
            _depositWalletsProviders  = depositWalletsProviders;
            _depositsHistoryProviders = depositsHistoryProviders;

            _concurrencySemaphore = new SemaphoreSlim(8);
        }
Ejemplo n.º 7
0
 public TransactionsReportReader(AddressNormalizer addressNormalizer)
 {
     _addressNormalizer = addressNormalizer;
 }
Ejemplo n.º 8
0
        private static async Task RemoveInvalidAddresses(ILogFactory logFactory)
        {
            var assetsClient       = new AssetsClient(logFactory, new AssetsClientSettings());
            var blockchainProvider = new BlockchainsProvider(assetsClient);
            var addressNormalizer  = new AddressNormalizer
                                     (
                logFactory,
                new IAddressNormalizer[]
            {
                new GeneralAddressNormalizer(),
                new BtcAddressNormalizer(blockchainProvider, new BtcSettings {
                    Network = "mainnet"
                }),
                new BchAddressNormalizer(blockchainProvider, new BchSettings {
                    Network = "mainnet"
                }),
                new LtcAddressNormalizer(blockchainProvider, new LtcSettings {
                    Network = "ltc-main"
                }),
                new EthAddressNormalizer(blockchainProvider),
                new XrpAddressNormalizer(blockchainProvider)
            }
                                     );
            var reportReader = new TransactionsReportReader(addressNormalizer);
            var reportWriter = new TransactionsReportWriter();

            Console.WriteLine("Loading...");

            var readStream           = File.Open("transactions.csv", FileMode.Open, FileAccess.Read, FileShare.Read);
            var originalTransactions = await reportReader.ReadAsync
                                       (
                readStream,
                new Progress <int>
                (
                    transactionCount =>
            {
                if (transactionCount % 1000 == 0)
                {
                    Console.WriteLine(transactionCount);
                }
            }
                ),
                leaveOpen : false
                                       );

            Console.WriteLine("Filtering...");

            var filteredTransactions = originalTransactions
                                       .Where
                                       (
                tx => !string.IsNullOrWhiteSpace(tx.Hash) &&
                !string.IsNullOrWhiteSpace(tx.CryptoCurrency) &&
                tx.UserId != Guid.Empty
                                       )
                                       .ToHashSet();

            Console.WriteLine("Saving...");

            var writeStream = File.Open
                              (
                "filtered-transactions.csv",
                FileMode.Create,
                FileAccess.Write,
                FileShare.Read
                              );
            await reportWriter.WriteAsync
            (
                filteredTransactions,
                writeStream,
                new Progress <int>
                (
                    transactionsCount =>
            {
                if (transactionsCount % 1000 == 0)
                {
                    var percent = transactionsCount * 100 / filteredTransactions.Count;

                    Console.WriteLine($"{percent}%");
                }
            }
                ),
                leaveOpen : false
            );
        }