Esempio n. 1
0
        public void RefreshInterface(Fixed8 qrs_val, Fixed8 qrg_val)
        {
            // Asset Init
            foreach (UInt256 asset_id in Constant.CurrentWallet.FindUnspentCoins().Select(p => p.Output.AssetId).Distinct())
            {
                AssetState      state = Blockchain.Default.GetAssetState(asset_id);
                AssetDescriptor item  = new AssetDescriptor(state);

                bool IsAdd = true;
                for (int i = 0; i < cmb_assets.Items.Count; i++)
                {
                    if (((AssetDescriptor)cmb_assets.Items[i]).AssetId == item.AssetId)
                    {
                        IsAdd = false;
                        break;
                    }
                }
                if (IsAdd)
                {
                    cmb_assets.Items.Add(item);
                }
            }

            qrs_balance = qrs_val;
            qrg_balance = qrg_val;

            if (cmb_assets.SelectedItem == null)
            {
                lbl_balance.Hide();
                lbl_cmt_balance.Hide();
            }
            else
            {
                if (((AssetDescriptor)cmb_assets.SelectedItem).AssetName == "QRS")
                {
                    lbl_balance.Text = qrs_val.ToString() + " QRS";
                }
                else if (((AssetDescriptor)cmb_assets.SelectedItem).AssetName == "QRG")
                {
                    lbl_balance.Text = qrs_val.ToString() + " QRG";
                }
            }

            /*
             * foreach (string s in Settings.Default.NEP5Watched)
             * {
             *  UInt160 asset_id = UInt160.Parse(s);
             *  try
             *  {
             *      sendPanControl1.AddAssetCombobox(new AssetDescriptor(asset_id));
             *  }
             *  catch (ArgumentException)
             *  {
             *      continue;
             *  }
             * }
             */
        }
Esempio n. 2
0
        public JObject ToJson(ushort index)
        {
            JObject json = new JObject();

            json["n"]       = index;
            json["asset"]   = AssetId.ToString();
            json["value"]   = Value.ToString();
            json["address"] = Wallet.ToAddress(ScriptHash);
            json["fee"]     = Fee.ToString();
            return(json);
        }
Esempio n. 3
0
        public override JObject ToJson()
        {
            TR.Enter();
            JObject json = base.ToJson();

            json["id"]   = AssetId.ToString();
            json["type"] = AssetType;
            try
            {
                json["name"] = Name == "" ? null : JObject.Parse(Name);
            }
            catch (FormatException)
            {
                json["name"] = Name;
            }
            json["amount"]     = Amount.ToString();
            json["available"]  = Available.ToString();
            json["precision"]  = Precision;
            json["owner"]      = Owner.ToString();
            json["admin"]      = Wallet.ToAddress(Admin);
            json["issuer"]     = Wallet.ToAddress(Issuer);
            json["expiration"] = Expiration;
            json["frozen"]     = IsFrozen;
            return(TR.Exit(json));
        }
Esempio n. 4
0
        public override JObject ToJson()
        {
            JObject json = base.ToJson();

            json["id"] = AssetId.ToString();
            try
            {
                json["name"] = Name == "" ? null : JObject.Parse(Name);
            }
            catch (FormatException)
            {
                json["name"] = Name;
            }
            try
            {
                json["symbol"] = Symbol == "" ? null : JObject.Parse(Symbol);
            }
            catch (FormatException)
            {
                json["symbol"] = Symbol;
            }
            json["totalsupply"] = TotalSupply.ToString();
            json["decimals"]    = Decimals;
            json["owner"]       = Owner.ToString();
            json["admin"]       = Admin.ToAddress();
            json["block_index"] = BlockIndex;
            json["frozen"]      = IsFrozen;
            return(json);
        }
        /// <summary>
        /// 变成json对象
        /// </summary>
        /// <returns>返回json对象</returns>
        public override JObject ToJson()
        {
            JObject json = base.ToJson();

            json["asset"]         = new JObject();
            json["asset"]["type"] = AssetType;
            try
            {
                json["asset"]["name"] = Name == "" ? null : JObject.Parse(Name);
            }
            catch (FormatException)
            {
                json["asset"]["name"] = Name;
            }
            json["asset"]["amount"]    = Amount.ToString();
            json["asset"]["precision"] = Precision;
            json["asset"]["high"]      = Amount.GetData() >> 32;
            json["asset"]["low"]       = Amount.GetData() & 0xffffffff;
            json["asset"]["issuer"]    = Issuer.ToString();
            json["asset"]["admin"]     = Wallet.ToAddress(Admin);
            if (Version > 0)
            {
                json["asset"]["cert"] = CertUrl;
            }
            return(json);
        }
Esempio n. 6
0
        private void ShowCost(Fixed8 fee)
        {
            StringBuilder sb = new StringBuilder(32);

            string content = sb.AppendFormat("{0} {1} {2}", fee.ToString(), "OXC", LanHelper.LocalLanguage("will be consumed, confirm?")).ToString();

            this.CostContext.Text = content;
        }
Esempio n. 7
0
        private void ShowCost(Fixed8 fee)
        {
            StringBuilder sb = new StringBuilder(32);

            string content = sb.AppendFormat("{0} {1} {2}", fee.ToString(), "Gas", Strings.CostTips).ToString();

            this.CostContext.Text = content;
        }
Esempio n. 8
0
        public void ToString_ProvideValidLongValueAndFormat_ReturnSameLongValueAsStringInTheRightFormat()
        {
            const string expectedLongValueString = "1000";

            var actual = new Fixed8(100000000000);

            Assert.AreEqual(expectedLongValueString, actual.ToString("#.##"));
        }
Esempio n. 9
0
        public void ToString_ProvideValidLongValue_ReturnSameLongValueAsString()
        {
            var expectedLongValueString = "0.00001";

            var actual = new Fixed8(1000);

            Assert.AreEqual(expectedLongValueString, actual.ToString());
        }
Esempio n. 10
0
        public void ToString_ProvideValidLongValue_ReturnSameLongValueAsString()
        {
            var expectedLongValueString = "0.00001";

            var actual = new Fixed8(1000);

            actual.ToString().Should().Be(expectedLongValueString);
        }
Esempio n. 11
0
        public void ToString_ProvideValidLongValueAndFormat_ReturnSameLongValueAsStringInTheRightFormat()
        {
            const string expectedLongValueString = "1000";

            var actual = new Fixed8(100000000000);

            actual.ToString("#.##").Should().Be(expectedLongValueString);
        }
Esempio n. 12
0
        public void ToString_ProvideValidLongValueAndFormatAndInvariantCulture_ReturnSameLongValueAsStringInTheRightFormatUsingTheCulture()
        {
            const string expectedLongValueString = "1000";

            var actual = new Fixed8(100000000000);

            actual.ToString("#.##", CultureInfo.InvariantCulture).Should().Be(expectedLongValueString);
        }
Esempio n. 13
0
        /// <summary>
        /// 转成json对象
        /// </summary>
        /// <returns>json对象</returns>
        public override JObject ToJson()
        {
            JObject json = base.ToJson();

            json["script"] = Script.ToHexString();
            json["gas"]    = Gas.ToString();
            return(json);
        }
Esempio n. 14
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            uint walletHeight = 0;

            if (Program.CurrentWallet != null)
            {
                walletHeight = (Program.CurrentWallet.WalletHeight > 0) ? Program.CurrentWallet.WalletHeight - 1 : 0;
            }

            lbl_height.Text = $"{walletHeight}/{Blockchain.Singleton.Height}/{Blockchain.Singleton.HeaderHeight}";

            lbl_count_node.Text = LocalNode.Singleton.ConnectedCount.ToString();
            TimeSpan persistence_span = DateTime.UtcNow - persistence_time;

            if (persistence_span < TimeSpan.Zero)
            {
                persistence_span = TimeSpan.Zero;
            }
            if (persistence_span > Blockchain.TimePerBlock)
            {
                toolStripProgressBar1.Style = ProgressBarStyle.Marquee;
            }
            else
            {
                toolStripProgressBar1.Value = persistence_span.Seconds;
                toolStripProgressBar1.Style = ProgressBarStyle.Blocks;
            }
            if (Program.CurrentWallet != null)
            {
                if (Program.CurrentWallet.WalletHeight <= Blockchain.Singleton.Height + 1)
                {
                    if (balance_changed)
                    {
                        using (Snapshot snapshot = Blockchain.Singleton.GetSnapshot())
                        {
                            IEnumerable <Coin> coins             = Program.CurrentWallet?.GetCoins().Where(p => !p.State.HasFlag(CoinState.Spent)) ?? Enumerable.Empty <Coin>();
                            Fixed8             bonus_available   = snapshot.CalculateBonus(Program.CurrentWallet.GetUnclaimedCoins().Select(p => p.Reference));
                            Fixed8             bonus_unavailable = snapshot.CalculateBonus(coins.Where(p => p.State.HasFlag(CoinState.Confirmed) && p.Output.AssetId.Equals(Blockchain.GoverningToken.Hash)).Select(p => p.Reference), snapshot.Height + 1);
                            Fixed8             bonus             = bonus_available + bonus_unavailable;
                            var assets = coins.GroupBy(p => p.Output.AssetId, (k, g) => new
                            {
                                Asset = snapshot.Assets.TryGet(k),
                                Value = g.Sum(p => p.Output.Value)
                            }).ToDictionary(p => p.Asset.AssetId);

                            var balance_ans = coins.Where(p => p.Output.AssetId.Equals(Blockchain.GoverningToken.Hash)).GroupBy(p => p.Output.ScriptHash).ToDictionary(p => p.Key, p => p.Sum(i => i.Output.Value));
                            foreach (ListViewItem item in listView1.Items)
                            {
                                UInt160 script_hash = item.Name.ToScriptHash();
                                Fixed8  ans         = balance_ans.ContainsKey(script_hash) ? balance_ans[script_hash] : Fixed8.Zero;
                                item.SubItems["ans"].Text = ans.ToString();
                            }
                            balance_changed = false;
                        }
                    }
                }
            }
        }
Esempio n. 15
0
        private void timer_blockchain_Tick(object sender, EventArgs e)
        {
            overviewPan1.SetBlockchainHeight($"Height : {Blockchain.Default.Height}/{Blockchain.Default.HeaderHeight}");
            overviewPan1.SetPeersConnect("Connected : " + Constant.LocalNode.RemoteNodeCount.ToString());

            if (Constant.CurrentWallet != null)
            {
                if (Constant.CurrentWallet.WalletHeight <= Blockchain.Default.Height + 1)
                {
                    if (balance_changed)
                    {
                        IEnumerable <Coin> coins             = Constant.CurrentWallet?.GetCoins().Where(p => !p.State.HasFlag(CoinState.Spent)) ?? Enumerable.Empty <Coin>();
                        Fixed8             bonus_available   = Blockchain.CalculateBonus(Constant.CurrentWallet.GetUnclaimedCoins().Select(p => p.Reference));
                        Fixed8             bonus_unavailable = Blockchain.CalculateBonus(coins.Where(p => p.State.HasFlag(CoinState.Confirmed) && p.Output.AssetId.Equals(Blockchain.GoverningToken.Hash)).Select(p => p.Reference), Blockchain.Default.Height + 1);
                        Fixed8             bonus             = bonus_available + bonus_unavailable;
                        var assets = coins.GroupBy(p => p.Output.AssetId, (k, g) => new
                        {
                            Asset = Blockchain.Default.GetAssetState(k),
                            Value = g.Sum(p => p.Output.Value),
                            Claim = k.Equals(Blockchain.UtilityToken.Hash) ? bonus : Fixed8.Zero
                        }).ToDictionary(p => p.Asset.AssetId);
                        if (bonus != Fixed8.Zero && !assets.ContainsKey(Blockchain.UtilityToken.Hash))
                        {
                            assets[Blockchain.UtilityToken.Hash] = new
                            {
                                Asset = Blockchain.Default.GetAssetState(Blockchain.UtilityToken.Hash),
                                Value = Fixed8.Zero,
                                Claim = bonus
                            };
                        }
                        var balance_qrs = coins.Where(p => p.Output.AssetId.Equals(Blockchain.GoverningToken.Hash)).GroupBy(p => p.Output.ScriptHash).ToDictionary(p => p.Key, p => p.Sum(i => i.Output.Value));
                        var balance_qrg = coins.Where(p => p.Output.AssetId.Equals(Blockchain.UtilityToken.Hash)).GroupBy(p => p.Output.ScriptHash).ToDictionary(p => p.Key, p => p.Sum(i => i.Output.Value));

                        Fixed8 qrs_total = Fixed8.Zero;
                        Fixed8 qrg_total = Fixed8.Zero;
                        foreach (Controls.AccountItem item in overviewPan1.addrItem)
                        {
                            UInt160 script_hash = Wallet.ToScriptHash(item.GetAddress());
                            Fixed8  qrs         = balance_qrs.ContainsKey(script_hash) ? balance_qrs[script_hash] : Fixed8.Zero;
                            Fixed8  qrg         = balance_qrg.ContainsKey(script_hash) ? balance_qrg[script_hash] : Fixed8.Zero;

                            qrs_total += qrs;
                            qrg_total += qrg;

                            item.SetQRS(qrs.ToString());
                            item.SetQRG(qrg.ToString());
                        }

                        overviewPan1.SetQrsTotalBalance(qrs_total.ToString());
                        overviewPan1.SetQrgTotalBalance(qrg_total.ToString());

                        sendcoinsPan1.RefreshInterface(qrs_total, qrg_total);

                        balance_changed = false;
                    }
                }
            }
        }
Esempio n. 16
0
        public override JObject ToJson()
        {
            TR.Enter();
            JObject json = base.ToJson();

            json["script"] = Script.ToHexString();
            json["gas"]    = Gas.ToString();
            return(TR.Exit(json));
        }
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            if (destinationType != typeof(string))
            {
                throw new NotSupportedException();
            }
            Fixed8 f = (Fixed8)value;

            return(f.ToString());
        }
Esempio n. 18
0
        public JObject ToJson(ushort index)
        {
            JObject json = new JObject();

            json["n"]          = index;
            json["asset"]      = AssetId.ToString();
            json["value"]      = Value.ToString();
            json["scripthash"] = ScriptHash.ToString();
            return(json);
        }
Esempio n. 19
0
        private void ClaimForm_Load(object sender, EventArgs e)
        {
            Fixed8 amount = Wallet.CalculateClaimAmount(Program.CurrentWallet.GetUnclaimedCoins().Select(p => p.Input));

            textBox1.Text = amount.ToString();
            if (amount == Fixed8.Zero)
            {
                button1.Enabled = false;
            }
        }
Esempio n. 20
0
        public override JObject ToJson()
        {
            JObject json = base.ToJson();

            json["script"]    = Script.ToHexString();
            json["gas_limit"] = GasLimit.ToString();
            json["gas_price"] = GasPrice.ToString();

            return(json);
        }
Esempio n. 21
0
        public JObject ToJson(ushort index)
        {
            var json = new JObject
            {
                ["n"]       = index,
                ["asset"]   = AssetId.ToString(),
                ["value"]   = Value.ToString(),
                ["address"] = Wallet.ToAddress(ScriptHash)
            };

            return(json);
        }
Esempio n. 22
0
 public InvokeContractDialog(InvocationTransaction tx = null)
 {
     InitializeComponent();
     txtFeeNetwork.Validating += TxtFeeNetwork_Validating;
     this.tx            = tx;
     txtFeeNetwork.Text = net_fee.ToString();
     if (tx != null)
     {
         tabControl1.SelectedTab = tabPage2;
         textBox6.Text           = tx.Script.ToHexString();
     }
 }
Esempio n. 23
0
        private void ClaimForm_Load(object sender, EventArgs e)
        {
            Fixed8 amount_available = Wallet.CalculateClaimAmount(Program.CurrentWallet.GetUnclaimedCoins().Select(p => p.Input));

            textBox1.Text = amount_available.ToString();
            if (amount_available == Fixed8.Zero)
            {
                button1.Enabled = false;
            }
            CalculateClaimAmountUnavailable(Blockchain.Default.Height);
            Blockchain.PersistCompleted += Blockchain_PersistCompleted;
        }
Esempio n. 24
0
        private void ClaimForm_Load(object sender, EventArgs e)
        {
            Fixed8 bonus_available = Blockchain.CalculateBonus(Program.CurrentWallet.GetUnclaimedCoins().Select(p => p.Reference));

            textBox1.Text = bonus_available.ToString();
            if (bonus_available == Fixed8.Zero)
            {
                button1.Enabled = false;
            }
            CalculateBonusUnavailable(Blockchain.Default.Height + 1);
            Blockchain.PersistCompleted += Blockchain_PersistCompleted;
        }
Esempio n. 25
0
        /// <summary>
        /// 将交易输出转变为json对象
        /// </summary>
        /// <param name="index">该交易输出在交易中的索引</param>
        /// <returns>返回json对象</returns>
        public JObject ToJson(ushort index)
        {
            JObject json = new JObject();

            json["n"]       = index;
            json["asset"]   = AssetId.ToString();
            json["value"]   = Value.ToString();
            json["high"]    = Value.GetData() >> 32;
            json["low"]     = Value.GetData() & 0xffffffff;
            json["address"] = Wallet.ToAddress(ScriptHash);
            return(json);
        }
Esempio n. 26
0
        private void ClaimDialog_Load(object sender, EventArgs e)
        {
            Fixed8 bonus_available = Blockchain.CalculateBonus(Constant.CurrentWallet.GetUnclaimedCoins().Select(p => p.Reference));

            txb_available.Text = bonus_available.ToString();
            if (bonus_available == Fixed8.Zero)
            {
                btn_claim.Enabled = false;
            }
            CalculateBonusUnavailable(Blockchain.Default.Height + 1);
            Blockchain.PersistCompleted += Blockchain_PersistCompleted;
        }
Esempio n. 27
0
 private void ClaimForm_Load(object sender, EventArgs e)
 {
     using (Snapshot snapshot = Blockchain.Singleton.GetSnapshot())
     {
         Fixed8 bonus_available = snapshot.CalculateBonus(Program.CurrentWallet.GetUnclaimedCoins().Select(p => p.Reference));
         textBox1.Text = bonus_available.ToString();
         if (bonus_available == Fixed8.Zero)
         {
             button1.Enabled = false;
         }
         CalculateBonusUnavailable(snapshot.Height + 1);
     }
     actor = Program.NeoSystem.ActorSystem.ActorOf(EventWrapper <Blockchain.PersistCompleted> .Props(Blockchain_PersistCompleted));
 }
Esempio n. 28
0
        private void cmb_assets_SelectedIndexChanged(object sender, EventArgs e)
        {
            lbl_cmt_balance.Show();
            lbl_balance.Show();

            if (((AssetDescriptor)cmb_assets.SelectedItem).AssetName == "QRS")
            {
                lbl_balance.Text = qrs_balance.ToString() + " QRS";
            }
            else if (((AssetDescriptor)cmb_assets.SelectedItem).AssetName == "QRG")
            {
                lbl_balance.Text = qrg_balance.ToString() + " QRG";
            }
        }
        /// <summary>
        /// 变成json对象
        /// </summary>
        /// <returns>返回json对象</returns>
        public override JObject ToJson()
        {
            JObject json = base.ToJson();

            json["asset"]           = new JObject();
            json["asset"]["type"]   = AssetType;
            json["asset"]["name"]   = Name == "" ? null : JObject.Parse(Name);
            json["asset"]["amount"] = Amount.ToString();
            json["asset"]["high"]   = Amount.GetData() >> 32;
            json["asset"]["low"]    = Amount.GetData() & 0xffffffff;
            json["asset"]["issuer"] = Issuer.ToString();
            json["asset"]["admin"]  = Wallet.ToAddress(Admin);
            return(json);
        }
Esempio n. 30
0
        public JObject ToJson(ushort index)
        {
            JObject json = new JObject();

            json["n"]              = index;
            json["asset"]          = AssetId.ToString();
            json["value"]          = Value.ToString();
            json["address"]        = Wallet.ToAnonymousAddress(addr);
            json["rho"]            = rho.ToString();
            json["r"]              = r.ToString();
            json["witness"]        = "Witness";
            json["witness_height"] = witness_height.ToString();
            json["cmtree_height"]  = cmtree_height.ToString();
            return(json);
        }