Example #1
0
        public ViewResult Index()
        {
            MakersModel makers = GetMakers();

            Trace.TraceInformation("Hello");
            return(View(makers));
        }
Example #2
0
        public static MakersModel GetMakers()
        {
            QBitNinjaClient client  = CreateClient();
            var             balance = client.GetBalance(new BitcoinPubKeyAddress("1KF8kUVHK42XzgcmJF4Lxz4wcL5WDL97PB"));

            MakersModel makers = new MakersModel();
            var         tip    = client.GetBlock(new BlockFeature(SpecialFeature.Last), true);

            makers.Height = tip.Result.AdditionalInformation.Height;
            var last = (DateTimeOffset.UtcNow - tip.Result.AdditionalInformation.BlockHeader.BlockTime);

            makers.Time = last.Hours + " h " + last.Minutes + " min " + last.Seconds + " sec ago";
            WarmCache(balance);
            foreach (var maker in balance.Result.Operations
                     .Where(o => o.Amount >= Money.Coins(0.0004m))
                     .Select(o => new
            {
                Tx = GetTransaction(o.TransactionId).Result,
                Op = o
            })
                     .Where(o => o.Tx != null && !o.Tx.IsCoinbase)
                     .OrderByDescending(o => ExtractWords(o.Tx.Transaction) == null ? 0 : 1)
                     .ThenByDescending(o => o.Op.Amount.Satoshi)
                     .ThenByDescending(o => o.Op.Confirmations)
                     )
            {
                var m = new Maker();
                m.TransactionId  = maker.Tx.TransactionId;
                m.TransactionUri = new Uri("https://api.qbit.ninja/transactions/" + m.TransactionId);
                m.Address        = maker.Tx.Transaction.Inputs[0].GetSigner().ScriptPubKey.GetDestinationAddress(Network.Main);
                m.AddressUri     = new Uri("https://api.qbit.ninja/balances/" + m.Address);
                m.Amount         = maker.Op.Amount;
                m.KindWords      = ExtractWords(maker.Tx.Transaction);
                if (m.KindWords == null)
                {
                    m.KindWords = "(lazy)";
                }
                m.Position = makers.Makers.Count + 1;
                makers.Makers.Add(m);
            }
            return(makers);
        }