コード例 #1
0
 public ExchangeController(IExchangeContractService exchangeContractService, ILog logger, IPendingOperationService pendingOperationService)
 {
     _addressUtil             = new AddressUtil();
     _exchangeContractService = exchangeContractService;
     _logger = logger;
     _pendingOperationService = pendingOperationService;
 }
コード例 #2
0
 public MonitoringCoinTransactionJob(ILog log, ICoinTransactionService coinTransactionService,
                                     IBaseSettings settings, ISlackNotifier slackNotifier, ICoinEventService coinEventService,
                                     IPendingTransactionsRepository pendingTransactionsRepository,
                                     IPendingOperationService pendingOperationService,
                                     ITransactionEventsService transactionEventsService,
                                     IEventTraceRepository eventTraceRepository,
                                     IUserTransferWalletRepository userTransferWalletRepository,
                                     IEthereumTransactionService ethereumTransactionService,
                                     IBlackListAddressesRepository blackListAddressesRepository,
                                     IWhiteListAddressesRepository whiteListAddressesRepository)
 {
     _ethereumTransactionService = ethereumTransactionService;
     _transactionEventsService   = transactionEventsService;
     _settings = settings;
     _log      = log;
     _coinTransactionService           = coinTransactionService;
     _slackNotifier                    = slackNotifier;
     _coinEventService                 = coinEventService;
     _pendingTransactionsRepository    = pendingTransactionsRepository;
     _pendingOperationService          = pendingOperationService;
     _eventTraceRepository             = eventTraceRepository;
     _userTransferWalletRepository     = userTransferWalletRepository;
     _broadcastMonitoringPeriodSeconds = TimeSpan.FromSeconds(_settings.BroadcastMonitoringPeriodSeconds);
     _blackListAddressesRepository     = blackListAddressesRepository;
     _whiteListAddressesRepository     = whiteListAddressesRepository;
 }
コード例 #3
0
 public CoinEventResubmittJob(
     ILog log,
     IBaseSettings settings,
     IPendingOperationService pendingOperationService,
     IExchangeContractService exchangeContractService,
     ICoinEventService coinEventService,
     ITransferContractService transferContractService,
     IEventTraceRepository eventTraceRepository,
     IEthereumTransactionService ethereumTransactionService,
     IQueueFactory queueFactory,
     ISlackNotifier slackNotifier,
     IOperationResubmittRepository operationResubmittRepository)
 {
     _eventTraceRepository    = eventTraceRepository;
     _exchangeContractService = exchangeContractService;
     _pendingOperationService = pendingOperationService;
     _settings                     = settings;
     _log                          = log;
     _coinEventService             = coinEventService;
     _transferContractService      = transferContractService;
     _ethereumTransactionService   = ethereumTransactionService;
     _transactionMonitoringQueue   = queueFactory.Build(Constants.TransactionMonitoringQueue);
     _slackNotifier                = slackNotifier;
     _operationResubmittRepository = operationResubmittRepository;
 }
コード例 #4
0
 public TransferCommandHandler(
     IAssetsService assetsService,
     ILog logger,
     IPendingOperationService pendingOperationService)
 {
     _assetsService           = assetsService;
     _logger                  = logger;
     _pendingOperationService = pendingOperationService;
     _addressUtil             = new AddressUtil();
 }
コード例 #5
0
 public CashoutCommandHandler(
     IAssetsService assetsService,
     IHotWalletService hotWalletService,
     ILog logger,
     IPendingOperationService pendingOperationService)
 {
     _assetsService           = assetsService;
     _hotWalletService        = hotWalletService;
     _logger                  = logger;
     _pendingOperationService = pendingOperationService;
     _addressUtil             = new AddressUtil();
 }
コード例 #6
0
 public MonitoringOperationJob(
     ILog log,
     IBaseSettings settings,
     IPendingOperationService pendingOperationService,
     IExchangeContractService exchangeContractService,
     ICoinEventService coinEventService,
     ITransferContractService transferContractService,
     IEventTraceRepository eventTraceRepository,
     IQueueFactory queueFactory,
     SettingsWrapper settingsWrapper)
 {
     _eventTraceRepository    = eventTraceRepository;
     _exchangeContractService = exchangeContractService;
     _pendingOperationService = pendingOperationService;
     _settings                = settings;
     _log                     = log;
     _coinEventService        = coinEventService;
     _transferContractService = transferContractService;
     _coinEventResubmittQueue = queueFactory.Build(Constants.CoinEventResubmittQueue);
     _settingsWrapper         = settingsWrapper;
     _hotWalletAddress        = _settingsWrapper.Ethereum.HotwalletAddress.ToLower();
 }
コード例 #7
0
        static async Task SendTransactionFromMainExchange()
        {
            string operationId = "";
            IPendingOperationService pendingOperationService = ServiceProvider.GetService <IPendingOperationService>();

            try
            {
                MonitoringOperationJob   job = ServiceProvider.GetService <MonitoringOperationJob>();
                IExchangeContractService exchangeContractService = ServiceProvider.GetService <IExchangeContractService>();
                string        filePath    = Path.Combine(AppContext.BaseDirectory, "transferTransaction.txt");
                var           content     = File.ReadAllText(filePath);
                TransferModel model       = Newtonsoft.Json.JsonConvert.DeserializeObject <TransferModel>(content);
                var           addressUtil = new AddressUtil();
                BigInteger    amount      = BigInteger.Parse(model.Amount);
                operationId = await pendingOperationService.TransferWithNoChecks(model.Id, model.CoinAdapterAddress,
                                                                                 addressUtil.ConvertToChecksumAddress(model.FromAddress), addressUtil.ConvertToChecksumAddress(model.ToAddress), amount, model.Sign);

                Console.WriteLine($"OperationId - {operationId}");
                await job.ProcessOperation(new Services.New.Models.OperationHashMatchMessage()
                {
                    OperationId = operationId,
                }, null, exchangeContractService.TransferWithoutSignCheck);

                Console.WriteLine("Start removing from processing queue");
                await pendingOperationService.RemoveFromPendingOperationQueue(operationId);

                Console.WriteLine("Stop removing from processing queue");
            }
            catch (Exception e)
            {
                Console.WriteLine($"{e.Message} - {e.StackTrace}");
                Console.WriteLine("Start removing from processing queue");
                await pendingOperationService.RemoveFromPendingOperationQueue(operationId);

                Console.WriteLine("Stop removing from processing queue");
            }
        }