From c75230e551a778408b2e370b208aff76b74c6560 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 19 May 2026 04:07:16 +0530 Subject: feat(mining): add new mining source files and unit tests - mining_payment.c/h: hashprice calc, share validation, per-client hashrate - stratum_client.c/h: SV1 upstream pool connection - stratum_proxy.c/h: local SV1 TCP server for downstream miners - sw_miner.c/h: software SHA256d miner using mbedtls - asic_miner.c/h: ASIC detection stub (software fallback) - test_mining_payment.c: 23 unit tests for mining payment module --- main/stratum_client.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 main/stratum_client.h (limited to 'main/stratum_client.h') diff --git a/main/stratum_client.h b/main/stratum_client.h new file mode 100644 index 0000000..e143439 --- /dev/null +++ b/main/stratum_client.h @@ -0,0 +1,27 @@ +#ifndef STRATUM_CLIENT_H +#define STRATUM_CLIENT_H + +#include "esp_err.h" +#include "stratum_proxy.h" +#include +#include + +typedef struct { + bool connected; + char pool_host[128]; + uint16_t pool_port; + uint32_t nbits; + uint64_t difficulty; + uint64_t shares_accepted; + uint64_t shares_rejected; + bool sv2_active; +} stratum_client_state_t; + +esp_err_t stratum_client_init(void); +esp_err_t stratum_client_start(void); +void stratum_client_stop(void); +esp_err_t stratum_client_submit_share(uint32_t job_id, uint32_t nonce, uint32_t ntime, uint32_t version); +const stratum_client_state_t *stratum_client_get_state(void); +void stratum_client_tick(void); + +#endif -- cgit v1.2.3