78 lines
1.4 KiB
C#
78 lines
1.4 KiB
C#
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 <config.json>");
|
|
return;
|
|
}
|
|
|
|
SharpMining sm = new SharpMining(args);
|
|
sm.Run();
|
|
}
|
|
|
|
private String configFileName;
|
|
private JToken config;
|
|
|
|
List<Daemon> 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<Daemon>();
|
|
|
|
}
|
|
|
|
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<int>());
|
|
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<string>();
|
|
}
|
|
|
|
|
|
}
|
|
}
|