private static Task HandleBurn(string data) { try { dynamic message = JsonConvert.DeserializeObject(data); ApplicationStateManager.Burn(message.message.Value); } catch (Exception e) { NHLog.Error("NHWebSocket", $"SetBalance error: {e.Message}"); } return(Task.CompletedTask); }
private static void SocketOnOnDataReceived(object sender, MessageEventArgs e) { try { if (e.IsText) { NiceHashMinerLegacy.Common.Logger.Info("SOCKET", "Received: " + e.Data); dynamic message = JsonConvert.DeserializeObject(e.Data); switch (message.method.Value) { case "sma": { // Try in case stable is not sent, we still get updated paying rates try { var stable = JsonConvert.DeserializeObject(message.stable.Value); SetStableAlgorithms(stable); } catch { } SetAlgorithmRates(message.data); break; } case "markets": HandleMarkets(e.Data); break; case "balance": SetBalance(message.value.Value); break; case "versions": SetVersion(message.legacy.Value); break; case "burn": ApplicationStateManager.Burn(message.message.Value); break; case "exchange_rates": SetExchangeRates(message.data.Value); break; } } } catch (Exception er) { NiceHashMinerLegacy.Common.Logger.Error("SOCKET", er.ToString()); } }
internal static ExecutedInfo ProcessData(string data, out bool executed, out int?id) { NHM.Common.Logger.Info("SOCKET", $"Received: {data}"); dynamic message = JsonConvert.DeserializeObject(data); executed = false; if (message == null) { throw new RpcException("No message found", ErrorCode.UnableToHandleRpc); } id = (int?)message.id; switch (message.method.Value) { case "sma": { // Try in case stable is not sent, we still get updated paying rates try { var stable = JsonConvert.DeserializeObject(message.stable.Value); SetStableAlgorithms(stable); } catch { } SetAlgorithmRates(message.data); return(null); } case "markets": HandleMarkets(data); return(null); case "balance": SetBalance(message.value.Value); return(null); case "versions": SetVersion(message.v3.Value); return(null); case "burn": ApplicationStateManager.Burn(message.message.Value); return(null); case "exchange_rates": SetExchangeRates(message.data.Value); return(null); //case "essentials": // var ess = JsonConvert.DeserializeObject<EssentialsCall>(data); // ProcessEssentials(ess); // return null; case "mining.set.username": executed = true; throwIfWeCannotHanldeRPC(); var btc = (string)message.username; return(miningSetUsername(btc)); case "mining.set.worker": executed = true; throwIfWeCannotHanldeRPC(); var worker = (string)message.worker; return(miningSetWorker(worker)); case "mining.set.group": executed = true; throwIfWeCannotHanldeRPC(); var group = (string)message.group; return(miningSetGroup(group)); case "mining.enable": executed = true; throwIfWeCannotHanldeRPC(); SetDevicesEnabled((string)message.device, true); return(null); case "mining.disable": executed = true; throwIfWeCannotHanldeRPC(); SetDevicesEnabled((string)message.device, false); return(null); case "mining.start": executed = true; throwIfWeCannotHanldeRPC(); StartMining((string)message.device); return(null); case "mining.stop": executed = true; throwIfWeCannotHanldeRPC(); StopMining((string)message.device); return(null); case "mining.set.power_mode": executed = true; throwIfWeCannotHanldeRPC(); SetPowerMode((string)message.device, (TDPSimpleType)message.power_mode); return(null); } throw new RpcException("Operation not supported", ErrorCode.UnableToHandleRpc); }