using System; using cryptonote.rpc; using cryptonote; using Newtonsoft.Json.Linq; using System.IO; using System.Collections.Generic; using System.Linq; namespace SharpMining { public class SharpMining { public static void Main(String[] args) { if (args.Length > 1){ Console.WriteLine("usage: SharpMining.exe "); return; } SharpMining sm = new SharpMining(args); sm.Run(); } private String configFileName; private JToken config; List daemons; public SharpMining(String[] args){ if (args.Length == 0){ configFileName = "sharpmining.json"; } else if (args.Length == 1){ configFileName = args[0]; }; this.config = JToken.Parse(File.ReadAllText(configFileName)); this.daemons = new List(); } public void Run(){ CreateDaemonRPC(); WorkManager = new WorkManager(this); } public void CreateDaemonRPC(){ foreach (JToken dc in config["daemons"]){ Daemon daemon = new Daemon(dc["host"].ToString(), dc["port"].ToObject()); daemons.Add(daemon); } } public Daemon[] Daemons { get { return this.daemons.ToArray(); } } public WorkManager WorkManager { get; private set; } public Daemon getCheckedDaemon(){ foreach (Daemon daemon in this.daemons){ if (daemon.check()){ return daemon; } } return null; } public String getPoolWalletAddress(){ return config["pool"]["wallet"].ToObject(); } } }