Exemple #1
0
        public static string[] GetWork(Uri uri)
        {
            RPCrequest getwork = new RPCrequest("eth_getWork");

            getwork.parameters = new object[0];

            try
            {
                string resp = GetResponse(uri, getwork);
                if (resp == null)
                {
                    return(null);
                }
                RPCresponse <string[]> response = JsonConvert.DeserializeObject <RPCresponse <string[]> >(resp);
                if (response.result != null && response.result.Length == 3)
                {
                    response.result[0] = FixString(response.result[0]);
                    response.result[1] = FixString(response.result[1]);
                    response.result[2] = FixString(response.result[2]);
                }
                return(response.result);
            }
            catch (Exception ex)
            {
                Logging.Log(2, "GetWork error: " + ex.Message);
                return(null);
            }
        }
Exemple #2
0
        public static bool SubmitWork(Uri uri, string nonce, string headerhash, string mixhash, out bool result)
        {
            RPCrequest submitwork = new RPCrequest("eth_submitWork");

            submitwork.parameters = new string[3];
            ((string[])submitwork.parameters)[0] = "0x" + nonce;
            ((string[])submitwork.parameters)[1] = "0x" + headerhash;
            ((string[])submitwork.parameters)[2] = "0x" + mixhash;

            result = false;

            try
            {
                string resp = GetResponse(uri, submitwork);
                if (resp == null)
                {
                    return(false);
                }
                RPCresponse <bool> response = JsonConvert.DeserializeObject <RPCresponse <bool> >(resp);
                result = response.result;
                return(true);
            }
            catch (Exception ex)
            {
                Logging.Log(2, "SubmitWork error: " + ex.Message);
                return(false);
            }
        }
Exemple #3
0
        private static string GetResponse(Uri uri, RPCrequest req)
        {
            string data = JsonConvert.SerializeObject(req, Formatting.None);

            try
            {
                HttpWebRequest wrequest = (HttpWebRequest)WebRequest.Create(uri);
                wrequest.KeepAlive   = true;
                wrequest.UserAgent   = "NiceHash Ethereum Pool/1.0.0";
                wrequest.Method      = "POST";
                wrequest.ContentType = "application/json";

                Stream       ssw    = wrequest.GetRequestStream();
                StreamWriter writeS = new StreamWriter(ssw);
                writeS.AutoFlush = true;

                writeS.Write(data);

                WebResponse  wresponse   = wrequest.GetResponse();
                Stream       ssr         = wresponse.GetResponseStream();
                StreamReader sr          = new StreamReader(ssr);
                string       responseStr = sr.ReadLine();
                sr.Close();
                wresponse.Close();

                return(responseStr);
            }
            catch (Exception ex)
            {
                Logging.Log(2, "GetWork error: " + ex.Message);
                return(null);
            }
        }