Example #1
0
        public async Task <IActionResult> Edit(int id, [Bind("ID,highest,lowest,high,low,reading")] Bitcoin bitcoin)
        {
            if (id != bitcoin.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(bitcoin);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BitcoinExists(bitcoin.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(bitcoin));
        }
Example #2
0
        public void Create2(float ihighest, float ilowest, float ihigh, float ilow, DateTime ireading)
        {
            Bitcoin a = new Bitcoin(ihighest, ilowest, ihigh, ilow, ireading);

            _context.Add(a);
            _context.SaveChangesAsync();
        }
Example #3
0
        public ActionResult DeleteConfirmed(int id)
        {
            Bitcoin bitcoin = bitcoinRepository.GetById(id);

            bitcoinRepository.Delete(bitcoin);
            return(RedirectToAction("Index"));
        }
Example #4
0
        public void MinerTransactions()
        {
            if (ValidateValueTransactions())
            {
                var coinBase = CreateCoinBase();

                var transactions = new List <Transaction>();
                transactions.Add(coinBase);
                transactions.AddRange(Bitcoin.TransactionPool);

                var previousBlock = Bitcoin.returnLastBlock();
                var newBlock      = new Block(previousBlock.Index + 1, previousBlock.Hash, transactions);

                var nonce = 0;
                do
                {
                    newBlock.Hash = newBlock.GenerateHashBlock(nonce);
                    nonce++;
                } while (newBlock.Hash.Substring(0, Bitcoin.Difficulty) != new string('0', Bitcoin.Difficulty));

                ExcludeUtxo();
                CreateUtxo();
                Bitcoin.Chain.Add(newBlock);
                Bitcoin.TransactionPool.Clear();
            }
        }
        public void CheckConversion()
        {
            var unit = new FixedPrecisionUnit <Bitcoin.BTC>(12.345M);
            var mBTC = Bitcoin.Convert <Bitcoin.BTC, Bitcoin.mBTC>(unit);

            Assert.AreEqual(mBTC.Value, 12345M);
        }
Example #6
0
        public void TestBitcoinWithdraw()
        {
            Bitcoin bitcoin = new Bitcoin();

            double expected = 14.7;

            bitcoin.Withdraw(13.3);

            Assert.AreEqual(expected, bitcoin.GetBalance());
        }
Example #7
0
        public void TestBitcoinDeposit()
        {
            Bitcoin bitcoin = new Bitcoin();

            double expected = 30.9;

            bitcoin.Deposit(2.9);

            Assert.AreEqual(expected, bitcoin.GetBalance());
        }
Example #8
0
        public void TestBitAdapterBalance()
        {
            Bitcoin bitcoin = new Bitcoin();

            BitcoinToUSDollarsAdapter bitcoinAdapter = new BitcoinToUSDollarsAdapter(bitcoin);


            double expected = 28 * 48475.30;

            Assert.AreEqual(expected, bitcoinAdapter.GetBalance());
        }
Example #9
0
        public async Task <IActionResult> Create([Bind("ID,highest,lowest,high,low,reading")] Bitcoin bitcoin)
        {
            if (ModelState.IsValid)
            {
                _context.Add(bitcoin);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(bitcoin));
        }
Example #10
0
        public ActionResult Create(Bitcoin btc)
        {
            using (DatabaseContext db = new DatabaseContext())
            {
                db.Bitcoin.Add(btc);
                db.SaveChanges();
            }


            return(RedirectToAction("Index"));
        }
Example #11
0
    public void Awake()
    {
        i = this;
        t = Object.FindObjectOfType<Transport>();

        Developer = new Developer(t);
        Game = new Game(t);
        Player = new Player(t);
        Tip = new Tip(t);
        Bitcoin = new Bitcoin(t);
    }
 /// <summary>
 /// Event Handler for Bitcoin Data Events: These Bitcoin objects are created from our
 /// "Bitcoin" type below and fired into this event handler.
 /// </summary>
 /// <param name="data">One(1) Bitcoin Object, streamed into our algorithm synchronised in time with our other data streams</param>
 public void OnData(Bitcoin data)
 {
     //If we don't have any bitcoin "SHARES" -- invest"
     if (!Portfolio.Invested)
     {
         //Bitcoin used as a tradable asset, like stocks, futures etc.
         if (data.Close != 0)
         {
             Order("BTC", (Portfolio.Cash / Math.Abs(data.Close + 1)));
         }
     }
 }
 /// <summary>
 /// Event Handler for Bitcoin Data Events: These Bitcoin objects are created from our 
 /// "Bitcoin" type below and fired into this event handler.
 /// </summary>
 /// <param name="data">One(1) Bitcoin Object, streamed into our algorithm synchronised in time with our other data streams</param>
 public void OnData(Bitcoin data)
 {
     //If we don't have any bitcoin "SHARES" -- invest"
     if (!Portfolio.Invested)
     {
         //Bitcoin used as a tradable asset, like stocks, futures etc. 
         if (data.Close != 0)
         {
             Order("BTC", (Portfolio.Cash / Math.Abs(data.Close + 1)));
         }
     }
 }
Example #14
0
        public void TestBitAdapterDeposit()
        {
            Bitcoin bitcoin = new Bitcoin();

            BitcoinToUSDollarsAdapter bitcoinAdapter = new BitcoinToUSDollarsAdapter(bitcoin);

            var amount = 48475.30;

            bitcoinAdapter.Deposit(amount);

            double expected = 29 * 48475.30;

            Assert.AreEqual(expected, bitcoinAdapter.GetBalance());
        }
Example #15
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Bitcoin bitcoin = bitcoinRepository.GetById(id);

            if (bitcoin == null)
            {
                return(HttpNotFound());
            }
            return(View(bitcoin));
        }
Example #16
0
        public ActionResult CoinBalance(string coin, string addresses)
        {
            List <string> addressList = new List <string>(
                addresses.Split(new string[] { "," },
                                StringSplitOptions.RemoveEmptyEntries));

            var invalid = addressList.Where(a => !Bitcoin.IsValidAddress(a)).ToList();

            var addressesToCheck = addressList.Except(invalid).ToList();

            var scanner        = new BlockScanner();
            var claimAddresses = Bitcoin.ParseAddresses(addressesToCheck);

            Tuple <List <ICoin>, Dictionary <string, double> > claimcoins;
            bool   usedExplorer = false;
            double TotalValue   = 0.0;
            bool   searchError  = false;
            Dictionary <string, double> balances;

            try
            {
                claimcoins = scanner.GetUnspentTransactionOutputs(claimAddresses, coin, out usedExplorer);
                TotalValue = Convert.ToDouble(claimcoins.Item1.Sum(o => ((Money)o.Amount).ToDecimal(MoneyUnit.BTC)));
                balances   = claimcoins.Item2;
            }
            catch (Exception e)
            {
                balances    = new Dictionary <string, double>();
                searchError = true;
            }

            using (CoinpanicContext db = new CoinpanicContext())
            {
                db.IndexCoinInfo.Where(i => i.Coin == coin).ToList();
            }

            AddressSummary result = new AddressSummary()
            {
                InvalidAddresses = invalid,
                CoinName         = BitcoinForks.ForkByShortName[coin].LongName,
                Empty            = TotalValue <= 0,
                Coin             = coin,
                Balance          = Convert.ToString(TotalValue),
                UsedExplorer     = usedExplorer,
                Addresses        = addressesToCheck,
                SearchError      = searchError,
            };

            return(PartialView(result));
        }
 /// <summary>
 /// Event Handler for Bitcoin Data Events: These weather objects are created from our
 /// "Weather" type below and fired into this event handler.
 /// </summary>
 /// <param name="data">One(1) Weather Object, streamed into our algorithm synchronised in time with our other data streams</param>
 public void OnData(Bitcoin data)
 {
     //If we don't have any weather "SHARES" -- invest"
     if (!Portfolio.Invested)
     {
         //Weather used as a tradable asset, like stocks, futures etc.
         if (data.Close != 0)
         {
             Order("BTC", (Portfolio.Cash / Math.Abs(data.Close + 1)));
         }
         Console.WriteLine("Buying BTC 'Shares': BTC: " + data.Close);
     }
     Console.WriteLine("Time: " + Time.ToLongDateString() + " " + Time.ToLongTimeString() + data.Close.ToString());
 }
Example #18
0
        public async Task <ActionResult> Fetch(string source)
        {
            if (source == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Bitcoin    coin    = null;
            ApiService service = new ApiService();

            if (coin == null)
            {
                return(HttpNotFound());
            }
            return(View(coin));
        }
        public static void Run()
        {
            Console.WriteLine("=-=-=-=ChainOfResponsibility=-=-=-=");

            var bank    = new Bank(100);       // Bank with balance 100
            var paypal  = new Paypal(200);     // Paypal with balance 200
            var bitcoin = new Bitcoin(300);    // Bitcoin with balance 300

            bank.SetNext(paypal);
            paypal.SetNext(bitcoin);

            // Let's try to pay using the first priority i.e. bank
            bank.Pay(259);

            Console.WriteLine("----------------------------------" + Environment.NewLine);
        }
    const STATUS_SOLD     = 2;  // Has been sold

    /// <summery>
    /// Check if the user has credits or BTC to list the product
    ///
    /// <typeparam name=""></typeparam> mixed userID
    /// <typeparam name=""></typeparam> mixed paymentType
    /// <returns></returns> boolean
    /// </summery>
    public function hasMoneyToListProduct(userID, paymentType = ShopProduct.LIST_FEE_PAYMENT_TYPE_BTC)
    {
        if (paymentType == ShopProduct.LIST_FEE_PAYMENT_TYPE_CREDIT)
        {
            tradeUserIns = new TradeUser();
            return(tradeUserIns.hasCredits(userID, SHOP_PRODUCT_LISTING_FEE_IN_CREDIT));
        }
        else if (paymentType == ShopProduct.LIST_FEE_PAYMENT_TYPE_BTC)
        {
            balance = Bitcoin.getUserWalletBalance(userID);
            return(balance >= SHOP_PRODUCT_LISTING_FEE_IN_BTC);
        }
        else
        {
            return(false);
        }
    }
Example #21
0
        static async Task Main(string[] args)
        {
            var connectionMultiplexer = await ConnectionMultiplexer.ConnectAsync("127.0.0.1");

            var redisDb = connectionMultiplexer.GetDatabase(1);

            if (redisDb == null)
            {
                throw new ApplicationException("Could not establish connection with the Redis database");
            }

            while (true)
            {
                var newPrivateKeyBytes = new Bitcoin().GenerateBitcoinKeyByte();

                var value = Convert.ToBase64String(newPrivateKeyBytes);
                var key   = $"Phase0:Worker1:{value}";

                var streamValue = new NameValueEntry[1];
                streamValue[0] = new NameValueEntry(key, value);

                await redisDb
                .StreamAddAsync("Phase0", streamValue)
                .ConfigureAwait(false);

                // var verifiedKey = Convert.FromBase64String(key);
            }

            // var random = PrivateKey.CreatePrivateKey(Globals.ProdDumpKeyVersion);
            // var seedBytes = random.PrivateKeyBytes;

            // //create a private key using seedBytes and not supplying compressedPublicKey which by default forces the public key to be compressed
            // var pkCompressed = new PrivateKey(Globals.ProdDumpKeyVersion, seedBytes);
            // //get the wif encoded string that represents the pkCompressed private key
            // var wifCompressed = pkCompressed.WIFEncodedPrivateKeyString;
            // //here we can create a bitcoin address string using the public key ascociated with our private key
            // var bitcoinAddressCompressed = BitcoinAddress.GetBitcoinAdressEncodedStringFromPublicKey(pkCompressed.PublicKey);

            // //create a private key using seedBytes which forces the public key to be compressed and supplying compressedPublicKey as false so the public key will not be compressed
            // var pkNotCompressed = new PrivateKey(Globals.ProdDumpKeyVersion, seedBytes, false);
            // var wif = pkNotCompressed.WIFEncodedPrivateKeyString;
            // var bitcoinAddress = BitcoinAddress.GetBitcoinAdressEncodedStringFromPublicKey(pkNotCompressed.PublicKey);

            // Console.WriteLine($"{bitcoinAddressCompressed} | {random.ToString()}");
            // Console.WriteLine($"{bitcoinAddress} | {wif}");
        }
 /// <summery>
 /// Check if you have money or credits
 ///
 /// <typeparam name=""></typeparam> mixed userID
 /// <typeparam name=""></typeparam> mixed paymentType
 /// <returns></returns> bool
 /// </summery>
 public function hasMoneyToListTradeItem(userID, paymentType = TradeItem.LIST_FEE_PAYMENT_TYPE_BTC)
 {
     if (paymentType == TradeItem.LIST_FEE_PAYMENT_TYPE_CREDIT)
     {
         tradeUserIns = new TradeUser();
         return(tradeUserIns.hasCredits(userID, TRADE_ITEM_LISTING_FEE_IN_CREDIT));
     }
     else if (paymentType == TradeItem.LIST_FEE_PAYMENT_TYPE_BTC)
     {
         balance = Bitcoin.getUserWalletBalance(userID);
         return(balance >= TRADE_ITEM_LISTING_FEE_IN_BTC);
     }
     else
     {
         return(false);
     }
 }
Example #23
0
        //Fetch price
        public async Task <ActionResult> Fetch()
        {
            Bitcoin           bitcoin = new Bitcoin();
            BitcoinRepository repo    = new BitcoinRepository();
            ApiService        service = new ApiService();

            string url    = "https://www.bitstamp.net/api/ticker/";
            var    model  = service.GetBitstampAsync(url);
            var    result = await model;

            bitcoin.Source = url;
            bitcoin.Price  = Decimal.Parse(result.ask);
            bitcoin.Date   = DateTime.Now;

            int lastId = repo.Insert(bitcoin);

            return(RedirectToAction("Details", "Bitcoins", new { id = lastId }));
        }
Example #24
0
        // GET: Coindesk
        public async Task <ActionResult> Fetch()
        {
            Bitcoin           bitcoin = new Bitcoin();
            BitcoinRepository repo    = new BitcoinRepository();
            ApiService        service = new ApiService();

            string url    = "https://api.coindesk.com/v1/bpi/currentprice/USD.json";
            var    model  = service.GetCoindeskAsync(url);
            var    result = await model;

            bitcoin.Source = url;
            bitcoin.Price  = result.bpi.usd.rate;
            bitcoin.Date   = DateTime.Now;

            int lastId = repo.Insert(bitcoin);

            return(RedirectToAction("Details", "Bitcoins", new { id = lastId }));
        }
        // GET: Gdax
        public async Task <ActionResult> Fetch()
        {
            Bitcoin           bitcoin = new Bitcoin();
            BitcoinRepository repo    = new BitcoinRepository();
            ApiService        service = new ApiService();

            string url    = "https://api.gdax.com/products/BTC-USD/ticker";
            var    model  = service.GetGdaxAsync(url);
            var    result = await model;

            bitcoin.Source = url;
            bitcoin.Price  = result.Price;
            bitcoin.Date   = DateTime.Now;

            int lastId = repo.Insert(bitcoin);

            return(RedirectToAction("Details", "Bitcoins", new { id = lastId }));
        }
Example #26
0
 public static void savePlayer()
 {
     string[] path     = new string[] { HealthSave, BitcoinSave, FireWallSave, CrackerSave, OsSave, PlayerNameSave, PlayerTitleSave, ScannerSave, XpSave, DownloadSpeedSave, UploadSpeedSave, ConnectionSave, ipAddressSave };
     string[] contents = new string[] { Health.ToString(), Bitcoin.ToString(), Firewall.ToString(), Cracker.ToString(), OperatingSystem.ToString(), PlayerName, PlayerTitle, Scanner.ToString(), Xp.ToString(), downSpeed.ToString(), upSpeed.ToString(), connectionStatus, ipAddress };
     for (int i = 0; i < path.Length; i++)
     {
         string item    = path[i];
         string content = contents[i];
         try
         {
             File.Delete(item);
         }
         catch
         {
             Console.WriteLine("savePlayer(File.Delete) return inoperatable....no big deal, continue...");
         }
         StreamWriter saveGame = new StreamWriter(File.Open(item, FileMode.OpenOrCreate));
         saveGame.Write(content);
         saveGame.Close();
     }
 }//save everything done to [player]
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            MallardDuck duck = new MallardDuck();

            WildTurkey turkey = new WildTurkey();

            IDuck turkeyAdapter = new TurkeyAdapter(turkey);

            Console.WriteLine("The Turkey says...");
            turkey.Gobble();
            turkey.Fly();

            Console.WriteLine("\nThe Duck says...");
            testDuck(duck);

            Console.WriteLine("\nThe TurkeyAdapter says...");
            testDuck(turkeyAdapter);

            Bitcoin bitcoin = new Bitcoin();

            USDollars usd = new USDollars();

            IBit bitAdapter = new BitcoinToUSDollarsAdapter(bitcoin);

            IUSD usdAdapter = new USDollarToBitcoinAdapter(usd);

            Console.WriteLine($"\nYou have ${usd.GetBalance()} in your account.");

            Console.WriteLine($"\nYou have {bitcoin.GetBalance()} bitcoins in your account.");

            bitAdapter.Deposit(5000);

            usdAdapter.Deposit(1.5);

            Console.WriteLine($"\nYou have ${usd.GetBalance()} in your account.");

            Console.WriteLine($"\nYou have {bitcoin.GetBalance()} bitcoins in your account.");
        }
        public void TestGenerate()
        {
            string coin = "BTP";

            //Create an unsigned transaction and encode
            var scanner = new BlockScanner();

            List <string> addresslist = new List <string>()
            {
                "123qWRaufkCnUfh7WMAmJpKdFDw6zBQkn9",
            };
            var mydepaddr = "15Lo7GRtK7b8WaYQeynwRFU479FJBSyewr";

            var claimAddresses = Bitcoin.ParseAddresses(addresslist);
            Tuple <List <ICoin>, Dictionary <string, double> > claimcoins;

            claimcoins = scanner.GetUnspentTransactionOutputs(claimAddresses, coin, out bool usedExplorer, estimate: true);
            var amounts = scanner.CalculateOutputAmounts_Their_My_Fee(claimcoins.Item1, 0.05, 0.0003 * claimcoins.Item1.Count);
            // Generate unsigned tx

            var utx = Bitcoin.GenerateUnsignedTX(claimcoins.Item1, amounts, Bitcoin.ParseAddress(mydepaddr),
                                                 Bitcoin.ParseAddress(mydepaddr),
                                                 coin);

            //var w = Bitcoin.GetBlockData(claimcoins.Item1);

            BlockData bd = new BlockData()
            {
                fork  = coin,
                coins = claimcoins.Item1,
                utx   = utx,
            };

            string bdstr = NBitcoin.JsonConverters.Serializer.ToString(bd);

            System.IO.File.WriteAllText("D:\\ClaimData.txt", bdstr);
            Console.WriteLine(bdstr);
        }
Example #29
0
        private static List <InputAddress> GetInputAddresses(CoinClaim userclaim, List <string> list, Dictionary <string, double> balances = null)
        {
            List <InputAddress> inputs;

            if (userclaim.CoinShortName == "BTCP")
            {
                inputs = list.Select(li => new InputAddress()
                {
                    AddressId     = Guid.NewGuid(),
                    PublicAddress = li + " -> " + Bitcoin.ParseAddress(li).Convert(Network.BTCP).ToString(),
                    CoinShortName = userclaim.CoinShortName,
                    ClaimId       = userclaim.ClaimId,
                    ClaimValue    = balances != null ? balances[li] : -1,
                }).ToList();
            }
            else if (userclaim.CoinShortName == "BCI")
            {
                inputs = list.Select(li => new InputAddress()
                {
                    AddressId     = Guid.NewGuid(),
                    PublicAddress = li + " -> " + Bitcoin.ParseAddress(li).Convert(Network.BCI).ToString(),
                    CoinShortName = userclaim.CoinShortName,
                    ClaimId       = userclaim.ClaimId,
                    ClaimValue    = balances != null ? balances[li] : -1,
                }).ToList();
            }
            else if (userclaim.CoinShortName == "BCA")
            {
                inputs = list.Select(li => new InputAddress()
                {
                    AddressId     = Guid.NewGuid(),
                    PublicAddress = li + " -> " + Bitcoin.ParseAddress(li).Convert(Network.BCA).ToString(),
                    CoinShortName = userclaim.CoinShortName,
                    ClaimId       = userclaim.ClaimId,
                    ClaimValue    = balances != null ? balances[li] : -1,
                }).ToList();
            }
            else if (userclaim.CoinShortName == "BTG")
            {
                inputs = list.Select(li => new InputAddress()
                {
                    AddressId     = Guid.NewGuid(),
                    PublicAddress = li + " -> " + Bitcoin.ParseAddress(li).Convert(Network.BTG).ToString(),
                    CoinShortName = userclaim.CoinShortName,
                    ClaimId       = userclaim.ClaimId,
                    ClaimValue    = balances != null ? balances[li] : -1,
                }).ToList();
            }
            else
            {
                inputs = list.Select(li => new InputAddress()
                {
                    AddressId     = Guid.NewGuid(),
                    PublicAddress = li,
                    CoinShortName = userclaim.CoinShortName,
                    ClaimId       = userclaim.ClaimId,
                    ClaimValue    = balances != null ? balances[li] : -1,
                }).ToList();
            }

            return(inputs);
        }
Example #30
0
        public ActionResult InitializeClaim(string claimId, string PublicKeys, string depositAddress, string emailAddress)
        {
            using (CoinpanicContext db = new CoinpanicContext())
            {
                CoinClaim userclaim = db.Claims.Where(c => c.ClaimId == claimId).Include(c => c.InputAddresses).First();

                // Clean up input
                depositAddress = depositAddress.Replace("\n", String.Empty);
                depositAddress = depositAddress.Replace("\r", String.Empty);
                depositAddress = depositAddress.Replace("\t", String.Empty);
                depositAddress = depositAddress.Trim().Replace(" ", "");

                userclaim.DepositAddress = depositAddress;
                userclaim.Email          = emailAddress;

                List <string> list = new List <string>(
                    PublicKeys.Split(new string[] { "\r\n" },
                                     StringSplitOptions.RemoveEmptyEntries));

                if (list.Count < 1)
                {
                    return(RedirectToAction("ClaimError", new { message = "You must enter at least one address to claim", claimId = claimId }));
                }

                // Convert depositAddress if BCH

                if (userclaim.CoinShortName == "BCH" && depositAddress.StartsWith("bitcoincash:"))
                {
                    // Convert
                    depositAddress = SharpCashAddr.Converter.cashAddrToOldAddr(depositAddress, out bool isP2PKH, out _);
                }

                if (!Bitcoin.IsValidAddress(depositAddress, userclaim.CoinShortName, BitcoinForks.ForkByShortName[userclaim.CoinShortName].Network))
                {
                    return(RedirectToAction("ClaimError", new { message = "Deposit Address not valid", claimId = claimId }));
                }

                var invalid = list.Where(a => !Bitcoin.IsValidAddress(a));
                if (invalid.Count() > 0)
                {
                    return(RedirectToAction("ClaimError", new { message = String.Join(", ", invalid) + (invalid.Count() < 2 ? " is" : " are") + " invalid.", claimId = claimId }));
                }

                var scanner        = new BlockScanner();
                var claimAddresses = Bitcoin.ParseAddresses(list);

                Tuple <List <ICoin>, Dictionary <string, double> > claimcoins;
                try
                {
                    claimcoins = scanner.GetUnspentTransactionOutputs(claimAddresses, userclaim.CoinShortName, out bool usedExplorer);
                }
                catch (Exception e)
                {
                    return(RedirectToAction("ClaimError", new { message = "Error searching for your addresses in the blockchain", claimId = claimId }));
                }

                var amounts  = scanner.CalculateOutputAmounts_Their_My_Fee(claimcoins.Item1, 0.05, 0.0003 * claimcoins.Item1.Count);
                var balances = claimcoins.Item2;

                // Return converted addresses to user
                List <InputAddress> inputs;
                inputs = GetInputAddresses(userclaim, list, balances);

                userclaim.InputAddresses = inputs;
                userclaim.Deposited      = Convert.ToDouble(amounts[0].ToDecimal(MoneyUnit.BTC));
                userclaim.MyFee          = Convert.ToDouble(amounts[1].ToDecimal(MoneyUnit.BTC));
                userclaim.MinerFee       = Convert.ToDouble(amounts[2].ToDecimal(MoneyUnit.BTC));
                userclaim.TotalValue     = userclaim.Deposited + userclaim.MyFee + userclaim.MinerFee;
                userclaim.InitializeDate = DateTime.Now;

                if (userclaim.Deposited < 0)
                {
                    userclaim.Deposited = 0;
                }
                if (userclaim.MyFee < 0)
                {
                    userclaim.MyFee = 0;
                }

                // Generate unsigned tx
                var mydepaddr = ConfigurationManager.AppSettings[userclaim.CoinShortName + "Deposit"];

                if (userclaim.CoinShortName == "BCH" && mydepaddr.StartsWith("bitcoincash:"))
                {
                    // Convert
                    mydepaddr = SharpCashAddr.Converter.cashAddrToOldAddr(mydepaddr, out bool isP2PKH, out _);
                }

                var utx = Bitcoin.GenerateUnsignedTX(
                    UTXOs: claimcoins.Item1,
                    amounts: amounts,
                    clientDepAddr: Bitcoin.ParseAddress(depositAddress, userclaim.CoinShortName, BitcoinForks.ForkByShortName[userclaim.CoinShortName].Network),
                    MyDepositAddr: Bitcoin.ParseAddress(mydepaddr, userclaim.CoinShortName, BitcoinForks.ForkByShortName[userclaim.CoinShortName].Network),
                    forkShortName: userclaim.CoinShortName);

                userclaim.UnsignedTX = utx;

                // Generate witness data
                var w = Bitcoin.GetBlockData(claimcoins.Item1);
                userclaim.BlockData = w;

                // New format of message
                BlockData bd = new BlockData()
                {
                    fork      = userclaim.CoinShortName,
                    coins     = claimcoins.Item1,
                    utx       = utx,
                    addresses = balances.Select(kvp => kvp.Key).ToList(),
                };
                string bdstr = NBitcoin.JsonConverters.Serializer.ToString(bd);
                userclaim.ClaimData = bdstr;

                db.SaveChanges();

                MonitoringService.SendMessage("New " + userclaim.CoinShortName + " claim", "new claim Initialized. https://www.coinpanic.com/Claim/ClaimConfirm?claimId=" + claimId + " " + " for " + userclaim.CoinShortName);
            }
            return(RedirectToAction("ClaimConfirm", new { claimId = claimId }));
        }
Example #31
0
 //insert
 public int Insert(Bitcoin bitcoin)
 {
     db.Entry(bitcoin).State = EntityState.Added;
     db.SaveChanges();
     return(bitcoin.Id);
 }
Example #32
0
 //delete
 public void Delete(Bitcoin bitcoin)
 {
     db.Entry(bitcoin).State = EntityState.Deleted;
     db.SaveChanges();
 }