Beispiel #1
0
        static bool SendToForwardAndUpdateStatus(string address, double balance, BtcAddressForwardModel forwardModel)
        {
            var currentForward = forwardModel.GetByBtcFrom(address);

            if (currentForward == null)
            {
                return(false);
            }
            if (currentForward.status == BtcAddressForwardEntity.STATUS_SENT)
            {
                return(false);
            }

            double forwardAmount = balance;

            if (currentForward.dempingpercent > 0) //вычесть dempingpercent
            {
                forwardAmount -= (balance / 100) * currentForward.dempingpercent;
            }
            else if (currentForward.GetForwardAmount() > 0) //forwardint и forwardfraction - точное значение, что нужно отослать
            {
                forwardAmount = currentForward.GetForwardAmount();
            }

            var sendStatus = App.btc.Send(currentForward.btc_to, (decimal)forwardAmount);

            if (sendStatus.IndexOf("txid") == -1)
            {
                return(false);
            }
            forwardModel.UpdateStatus(int.Parse(currentForward.id), BtcAddressForwardEntity.STATUS_SENT);

            return(true);
        }
Beispiel #2
0
        public void Init()
        {
            Directory.SetCurrentDirectory("C:\\Projects\\host_exchage_cs\\host_exchage_cs\\bin\\Release");
            App.TestInit();

            model = new BtcAddressForwardModel(App.db);

            var now = Now();

            from           = now + "-from";
            to             = now + "-to";
            dempingpercent = new Random().Next(1, 5);
        }
Beispiel #3
0
        static void BalancesChecker()
        {
            while (true)
            {
                try
                {
                    App.btc.WalletPassphrase(App.settings.data.btc_wallet_password);

                    long timeFrom = ((DateTimeOffset)DateTime.UtcNow).ToUnixTimeSeconds() - (App.settings.data.canceled_min * 60);

                    BtcAddressModel        targetModel  = new BtcAddressModel(App.db);
                    BtcAddressForwardModel forwardModel = new BtcAddressForwardModel(App.db);

                    List <string> addresses = targetModel.GetEmptyBtcAddresses(timeFrom);

                    foreach (string address in addresses)
                    {
                        double balance = App.btc.GetBalance(address);
                        if (balance <= 0)
                        {
                            continue;
                        }

                        targetModel.UpdateIncomeBalance(address, balance);
                        CheckResponse incomeChecker = new CheckResponse(targetModel.getByHash(address), App.settings);

                        try
                        {
                            if (incomeChecker.status == CheckResponse.PAID)
                            {
                                SendToForwardAndUpdateStatus(address, balance, forwardModel);
                            }
                        }
                        catch (Exception) { }
                    }
                }
                catch (Exception ex) { }
                Thread.Sleep(1000);
            }
        }