Beispiel #1
0
        internal ServiceResponse <TransferModel> GetTransferRequestForSymbol(string symbol)
        {
            Func <TransferModel> func = delegate
            {
                string       btcAddress = "17QnVor1B6oK1rWnVVBrdX9gFzVkZZbhDm";
                DaemonClient coinClient = _daemonClientFactory.GetDaemonClient(CoinType.BTC);
                if (null != coinClient)
                {
                    var daemonResponse = coinClient.ExecuteCmdSingleAsync <string>(BlockchainConstants.BitcoinCommands.GetNewAddress, null, _jsonSerializerSettings).Result;
                    if (null == daemonResponse.Error)
                    {
                        btcAddress = daemonResponse.Response;
                    }
                    else
                    {
                        _logger.Error($"Daemon returned error: {daemonResponse.Error.Message} code {daemonResponse.Error.Code}");
                    }
                }

                TransferModel response = new TransferModel();
                response.FromAddress = btcAddress;
                if (null != _contextHolder.ExchangeRate)
                {
                    response.ExchangeRate = _contextHolder.ExchangeRate.Bid;
                }

                return(response);
            };

            return(this.Execute(func));
        }
Beispiel #2
0
        private void InternalProcessTransferRequests(TransferRequest[] requests)
        {
            if (!_updatingThroughput)
            {
                _updatingThroughput = true;
                _logger.Debug("Executing Payout Manager.");

                if (null != requests && requests.Length > 0)
                {
                    DaemonClient fromDaemonClient = _daemonClientFactory.GetDaemonClient(CoinType.BTC);
                    DaemonClient toDaemonClient   = _daemonClientFactory.GetDaemonClient(CoinType.BTP);
                    DateTime     timeStamp        = DateTime.Now;
                    foreach (TransferRequest request in requests)
                    {
                        UpdateTransferRequestStatus(request, fromDaemonClient, timeStamp);

                        PayoutTransferRequest(request, fromDaemonClient, toDaemonClient, timeStamp);
                    }
                }

                _updatingThroughput = false;
            }
        }