///--------------------------------------------------------------------------------------------------------
        ///
        static public string Send(string myAddress, string destAddress, double amount)
        {
            if (amount < 0)
            {
                return(strings.GetString("수량이 부족합니다."));
            }

            if (string.IsNullOrEmpty(myAddress) == false && IsValidateAddress(myAddress) == false)
            {
                return(strings.GetString("유효하지 않은 주소입니다."));
            }

            if (IsValidateAddress(destAddress) == false)
            {
                return(strings.GetString("유효하지 않은 주소입니다."));
            }

            PasswordManager pwdManager = new PasswordManager();
            string          pwd        = pwdManager.GetPassword();

            if (string.IsNullOrEmpty(pwd))
            {
                return(strings.GetString("패스워드 오류"));
            }

            bool bStaking = IsStakingState();

            commandline.Process(string.Format("walletpassphrase \"{0}\" 30 false", pwd));

            string cmdResult = "";

            if (string.IsNullOrEmpty(myAddress))
            {
                cmdResult = commandline.Process(string.Format("sendtoaddress \"{0}\" {1} \"\" \"\" false", destAddress, amount));
            }
            else
            {
                cmdResult = commandline.Process(string.Format("sendtoaddress \"{0}\" {1} \"\" \"\" false null null \"\" \"{2}\" true", destAddress, amount, myAddress));
            }

            if (bStaking)
            {
                commandline.Process(string.Format("walletpassphrase \"{0}\" 99999999 true", pwd));
            }
            else
            {
                commandline.Process(string.Format("walletpassphrase \"{0}\" 0 true", pwd));
            }

            return(cmdResult.Trim());
        }
        ///--------------------------------------------------------------------------------------------------------
        ///
        static public string StopSaking()
        {
            PasswordManager pwdManager = new PasswordManager();
            string          pwd        = pwdManager.GetPassword();

            if (pwd == null)
            {
                return(strings.GetString("패스워드 오류"));
            }

            string cmdResult = commandline.Process(string.Format("walletpassphrase \"{0}\" 0 true", pwd));

            return(cmdResult.Trim());
        }
예제 #3
0
        ///--------------------------------------------------------------------------------------------------------
        /// 패스워드가 등록되어 있는지 확인하고 패스워드를 등록 합니다.
        static public bool RegisterPassword()
        {
            PasswordManager pm = new PasswordManager();

            if (System.IO.File.Exists(PasswordManager.passwordFile) == true && string.IsNullOrEmpty(pm.GetPassword()) == false)
            {
                return(true);
            }

            Logger.Log("패스워드가 등록되지 않았습니다. 퀀텀 지갑의 패스워드를 입력 해 주세요. 등록되지 않은 상태에서 최초 한번 설정합니다.");
            Logger.Log("패스워드는 현재 기기에 암호화 되어 저장되며 외부로 전송되지 않습니다.\n하지만 저장된 패스워드는 멀웨어 감염이나 기기 해킹등에 의해 보호받을 수 없으니,\n채굴 머신의 보안에 각별히 주의 해 주시기 바랍니다.\n");

            while (true)
            {
                Logger.Log("암호를 입력하고 엔터 : ");
                string newPw = System.Console.ReadLine();

                Logger.Log("다시 한번 입력 해 주세요. : ");
                string newPw2 = System.Console.ReadLine();

                Logger.Log("");

                if (newPw != newPw2)
                {
                    Logger.Log("입력하신 암호가 일치하지 않습니다.");
                    continue;
                }

                if (pm.SetPassword(newPw) == false)
                {
                    return(false);
                }

                break;
            }

            Logger.Log("암호가 등록되었습니다.");

            return(true);
        }