public FrmAccountProperties(Connection connection,int focusField, Account account = null)
        {
            InitializeComponent();

            Account = account;
            Connection = connection;

            if (account != null)
            {
                txtLabel.Text = account.Label;
                txtPassword.Text = account.Password;
            }

            if (focusField == 0)
            {
                txtLabel.Select();
            }
            else if (focusField == 1)
            {
                txtPassword.Select();
            }
        }
 public static void UpdateAccountNode(Account account)
 {
     var list = TreeView.Nodes.Find(NodeType.Account.ToString(), true);
     var accountNodes = list.Cast<AccountNode>().Where(x => x.Account.Address == account.Address).ToList();
     foreach (var accountNode in accountNodes)
     {
         accountNode.ImageIndex = account.ImageIconIndex;
         accountNode.SelectedImageIndex = account.ImageIconIndex;
     }
 }
Пример #3
0
        public ConnectionStatus GetConnectionProperties()
        {
            try
            {
                var version = EthereumService.GetWeb3ClientVersion();
            }
            catch (Exception)
            {
                return ConnectionStatus.CouldNotConnect;
            }

            try
            {
                var ethAccounts = EthereumService.GetAccounts();

                foreach (var ethAccount in ethAccounts)
                {
                    var account = BlockStudioProjectService.BlockStudioProject.Accounts.FirstOrDefault(x => x.Address == ethAccount);

                    if (account==null)
                    {
                        account = new Account();
                        account.Address = ethAccount;
                        account.LockState = LockedState.Locked;
                    }

                    if (!string.IsNullOrEmpty(account.Password))
                    {
                        try
                        {
                            var unlockSuccessful = EthereumService.UnlockAccount(account.Address, account.Password);

                            if (unlockSuccessful)
                            {
                                account.Balance = EthereumService.GetBalance(account.Address, BlockTag.Latest);
                                account.LockState = LockedState.Unlocked;
                            }
                            else
                            {
                                account.ImageIconIndex = 6;
                                account.LockState = LockedState.WrongPassword;
                            }

                        }
                        catch (Exception exception)
                        {
                            return ConnectionStatus.ConnectedButPersonalNotSuppored;
                        }

                    }
                    else
                    {
                        account.LockState = LockedState.Locked;
                    }

                    BlockStudioProjectService.BlockStudioProject.UpsertAccount(account);
                }

                BlockStudioProjectService.BlockStudioProject.SaveToDisk();

                return ConnectionStatus.Connected;
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
        private void Finished()
        {
            var password = txtPassword.Text;
            if (string.IsNullOrEmpty(password))
            {
                MessageBoxEx.Show(this, "Password cannot be blank", "Block Studio", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            txtPassword.Enabled = false;
            btnOK.Enabled = false;
            btnCancel.Enabled = false;
            chbSavePassword.Enabled = false;

            if (Account==null)
            {
                Account = new Account();
                Account.Address = Connection.EthereumService.NewAccount(password);
            }

            Account.Password = password;
            Account.Label = txtLabel.Text;

            BlockStudioProjectService.BlockStudioProject.UpsertAccount(Account);
            BlockStudioProjectService.BlockStudioProject.SaveToDisk();

            this.Close();
        }