2020-08-11 05:30:20 +03:00
|
|
|
#include <stddef.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stdio.h>
|
2020-08-12 01:31:07 +03:00
|
|
|
#include <unistd.h>
|
2020-08-11 05:30:20 +03:00
|
|
|
#include "niceapi.h"
|
|
|
|
|
|
|
|
int main(int argc, char* argv[]) {
|
2020-08-12 22:01:50 +03:00
|
|
|
// Miner initialization
|
|
|
|
init_miner_args sm_args;
|
2020-08-15 22:01:21 +03:00
|
|
|
sm_args.threads = 1;
|
2020-08-12 01:31:07 +03:00
|
|
|
sm_args.exclude_hour_start = 0;
|
2020-08-11 22:02:35 +03:00
|
|
|
sm_args.exclude_hour_end = 0;
|
|
|
|
|
2020-08-12 22:01:50 +03:00
|
|
|
init_miner_response sm_resp = init_miner(&sm_args);
|
2020-08-11 22:02:35 +03:00
|
|
|
if (sm_resp.code > 2) {
|
2020-08-11 23:06:55 +03:00
|
|
|
printf("Bad config options specified: %s\n", sm_resp.message);
|
2020-08-11 22:02:35 +03:00
|
|
|
free((void*)sm_resp.message);
|
|
|
|
return 3;
|
|
|
|
}
|
|
|
|
if (sm_resp.code < 0) {
|
|
|
|
printf("Unrecoverable error: %s\n", sm_resp.message);
|
|
|
|
free((void*)sm_resp.message);
|
|
|
|
return 4;
|
|
|
|
}
|
|
|
|
if (sm_resp.code == 2) {
|
|
|
|
printf("Huge Pages could not be enabled -- mining may be slow. Consider restarting your machine and trying again.\n");
|
|
|
|
}
|
2020-08-12 22:01:50 +03:00
|
|
|
printf("Miner initialized.\n");
|
|
|
|
|
2020-08-16 02:08:48 +03:00
|
|
|
report_lock_screen_state(true); // pretend screen is locked so we will mine
|
|
|
|
|
2020-08-12 22:01:50 +03:00
|
|
|
pool_login_args pl_args;
|
|
|
|
pl_args.agent = "Super Power Ultimate Miner (S.P.U.M.) v0.6.9";
|
|
|
|
pl_args.rigid = NULL;
|
|
|
|
pl_args.wallet = NULL;
|
|
|
|
pl_args.config = NULL;
|
|
|
|
|
|
|
|
// Login loop. Alternate between 2 accounts every minute to make sure account switching works.
|
|
|
|
while (true) {
|
|
|
|
pl_args.username = "cryptonote-social";
|
|
|
|
if (argc > 1) {
|
|
|
|
printf("using arg for username: %s\n", argv[1]);
|
|
|
|
pl_args.username = argv[1];
|
|
|
|
}
|
|
|
|
if (argc > 2) {
|
|
|
|
printf("using arg for wallet: %s\n", argv[2]);
|
|
|
|
pl_args.wallet = argv[2];
|
|
|
|
}
|
|
|
|
printf("Logging in with user: %s\n", pl_args.username);
|
|
|
|
pool_login_response pl_resp = pool_login(&pl_args);
|
|
|
|
if (pl_resp.code < 0) {
|
|
|
|
printf("Oh no, login failed: %s\n", pl_resp.message);
|
|
|
|
}
|
|
|
|
if (pl_resp.code > 1) {
|
|
|
|
printf("Pool server didn't like login info: %s\n", pl_resp.message);
|
|
|
|
}
|
2020-08-12 22:17:27 +03:00
|
|
|
if (pl_resp.code == 1) {
|
|
|
|
printf("Successful login #1.\n");
|
2020-08-17 21:56:23 +03:00
|
|
|
if (strlen(pl_resp.message) > 0) {
|
2020-08-12 22:17:27 +03:00
|
|
|
printf(" Pool returned warning: %s\n", pl_resp.message);
|
|
|
|
}
|
|
|
|
}
|
2020-08-12 22:11:53 +03:00
|
|
|
free((void*)pl_resp.message);
|
2020-08-12 01:31:07 +03:00
|
|
|
|
2020-08-16 02:08:48 +03:00
|
|
|
sleep(10);
|
|
|
|
printf("Setting screen state to active\n");
|
|
|
|
report_lock_screen_state(false/*is_locked*/); // make sure miner pauses
|
|
|
|
sleep(10);
|
|
|
|
printf("Setting screen state to locked\n");
|
|
|
|
report_lock_screen_state(true);
|
|
|
|
sleep(10);
|
|
|
|
printf("Setting power state to on-battery\n");
|
|
|
|
report_power_state(true/*on_battery*/); // make sure miner pauses
|
|
|
|
sleep(10);
|
|
|
|
printf("Setting power state to power adapter\n");
|
|
|
|
report_power_state(false);
|
|
|
|
|
2020-08-15 22:01:21 +03:00
|
|
|
printf("Sleeping for 2 minutes before trying another login.\n");
|
2020-08-15 22:44:08 +03:00
|
|
|
sleep(60);
|
|
|
|
get_miner_state_response ms_resp = get_miner_state();
|
|
|
|
printf("Hashrate was: %f\n", ms_resp.recent_hashrate);
|
|
|
|
printf("Threads active: %d\n", ms_resp.threads);
|
2020-08-17 21:56:23 +03:00
|
|
|
printf("Mining activity state: %d\n", ms_resp.mining_activity);
|
2020-08-15 22:44:08 +03:00
|
|
|
free((void*)ms_resp.username);
|
|
|
|
free((void*)ms_resp.time_to_reward);
|
2020-08-15 22:01:21 +03:00
|
|
|
|
2020-08-16 02:08:48 +03:00
|
|
|
printf("Increasing threads\n");
|
2020-08-15 22:01:21 +03:00
|
|
|
increase_threads();
|
2020-08-17 20:51:10 +03:00
|
|
|
|
|
|
|
printf("Entering get_miner_state polling loop, 60 polls with 1 second sleep inbetween\n");
|
|
|
|
for (int i = 0; i < 60; ++i) {
|
|
|
|
ms_resp = get_miner_state();
|
|
|
|
printf("Hashrate was: %f\n", ms_resp.recent_hashrate);
|
|
|
|
printf("Threads active: %d\n", ms_resp.threads);
|
2020-08-17 21:56:23 +03:00
|
|
|
printf("Mining activity state: %d\n", ms_resp.mining_activity);
|
2020-08-17 20:51:10 +03:00
|
|
|
free((void*)ms_resp.username);
|
|
|
|
free((void*)ms_resp.time_to_reward);
|
|
|
|
sleep(1);
|
|
|
|
}
|
2020-08-14 00:30:58 +03:00
|
|
|
|
2020-08-12 22:01:50 +03:00
|
|
|
printf("Trying to login with a new user (donate-getmonero-org).\n");
|
|
|
|
pl_args.username = "donate-getmonero-org";
|
|
|
|
pl_resp = pool_login(&pl_args);
|
|
|
|
if (pl_resp.code < 0) {
|
|
|
|
printf("Oh no, login 2 failed: %s\n", pl_resp.message);
|
|
|
|
}
|
|
|
|
if (pl_resp.code > 1) {
|
|
|
|
printf("Pool server didn't like login 2 info: %s\n", pl_resp.message);
|
|
|
|
}
|
2020-08-12 22:17:27 +03:00
|
|
|
if (pl_resp.code == 1) {
|
|
|
|
printf("Successful login #2.\n");
|
2020-08-17 21:56:23 +03:00
|
|
|
if (strlen(pl_resp.message) > 0) {
|
2020-08-12 22:17:27 +03:00
|
|
|
printf(" Pool returned warning: %s\n", pl_resp.message);
|
|
|
|
}
|
|
|
|
}
|
2020-08-12 22:11:53 +03:00
|
|
|
free((void*)pl_resp.message);
|
2020-08-12 22:01:50 +03:00
|
|
|
|
2020-08-15 22:01:21 +03:00
|
|
|
printf("Sleeping for 2 minutes before looping again.\n");
|
2020-08-15 22:44:08 +03:00
|
|
|
sleep(60);
|
2020-08-14 00:30:58 +03:00
|
|
|
ms_resp = get_miner_state();
|
|
|
|
printf("Hashrate was: %f\n", ms_resp.recent_hashrate);
|
|
|
|
printf("Threads active: %d\n", ms_resp.threads);
|
2020-08-17 21:56:23 +03:00
|
|
|
printf("Mining activity state: %d\n", ms_resp.mining_activity);
|
2020-08-14 00:30:58 +03:00
|
|
|
free((void*)ms_resp.username);
|
|
|
|
free((void*)ms_resp.time_to_reward);
|
2020-08-15 22:01:21 +03:00
|
|
|
|
2020-08-16 02:08:48 +03:00
|
|
|
printf("Decreasing threads\n");
|
2020-08-15 22:01:21 +03:00
|
|
|
decrease_threads();
|
2020-08-17 20:51:10 +03:00
|
|
|
printf("Entering get_miner_state polling loop, 60 polls with 1 second sleep inbetween\n");
|
|
|
|
for (int i = 0; i < 60; ++i) {
|
|
|
|
ms_resp = get_miner_state();
|
|
|
|
printf("Hashrate was: %f\n", ms_resp.recent_hashrate);
|
|
|
|
printf("Threads active: %d\n", ms_resp.threads);
|
2020-08-17 21:56:23 +03:00
|
|
|
printf("Mining activity state: %d\n", ms_resp.mining_activity);
|
2020-08-17 20:51:10 +03:00
|
|
|
free((void*)ms_resp.username);
|
|
|
|
free((void*)ms_resp.time_to_reward);
|
|
|
|
sleep(1);
|
|
|
|
}
|
2020-08-12 22:01:50 +03:00
|
|
|
}
|
2020-08-11 05:30:20 +03:00
|
|
|
return 0;
|
|
|
|
}
|