60 lines
1.5 KiB
Dart
60 lines
1.5 KiB
Dart
enum MinerTargetMode { solo, pool }
|
|
|
|
class MinerLaunchConfig {
|
|
const MinerLaunchConfig({
|
|
required this.mode,
|
|
required this.walletAddress,
|
|
required this.cpuThreads,
|
|
required this.apiPort,
|
|
required this.poolHost,
|
|
required this.poolPort,
|
|
required this.daemonHost,
|
|
required this.daemonPort,
|
|
required this.daemonZmqPort,
|
|
});
|
|
|
|
final MinerTargetMode mode;
|
|
final String walletAddress;
|
|
final int cpuThreads;
|
|
final int apiPort;
|
|
final String poolHost;
|
|
final int poolPort;
|
|
final String daemonHost;
|
|
final int daemonPort;
|
|
final int daemonZmqPort;
|
|
}
|
|
|
|
class XmrigSummary {
|
|
const XmrigSummary({
|
|
required this.status,
|
|
required this.pool,
|
|
required this.hashrate10s,
|
|
required this.hashrate1m,
|
|
required this.hashrate15m,
|
|
required this.acceptedShares,
|
|
required this.totalShares,
|
|
required this.rejectedShares,
|
|
required this.uptimeSeconds,
|
|
required this.currentDifficulty,
|
|
});
|
|
|
|
final String status;
|
|
final String pool;
|
|
final double? hashrate10s;
|
|
final double? hashrate1m;
|
|
final double? hashrate15m;
|
|
final int acceptedShares;
|
|
final int totalShares;
|
|
final int rejectedShares;
|
|
final int uptimeSeconds;
|
|
final int currentDifficulty;
|
|
}
|
|
|
|
abstract class MiningService {
|
|
Future<bool> isRunning({MinerLaunchConfig? config});
|
|
Future<bool> start({required MinerLaunchConfig config});
|
|
Future<bool> stop({MinerLaunchConfig? config});
|
|
Future<bool> restart({required MinerLaunchConfig config});
|
|
Future<XmrigSummary?> fetchSummary({required MinerLaunchConfig config});
|
|
}
|