diff --git a/CHANGELOG.md b/CHANGELOG.md index ee495528d..93a4c6d0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +# v6.11.1 +- [#2239](https://github.com/xmrig/xmrig/pull/2239) Fixed broken `coin` setting functionality. + # v6.11.0 - [#2196](https://github.com/xmrig/xmrig/pull/2196) Improved DNS subsystem and added new DNS specific options. - [#2172](https://github.com/xmrig/xmrig/pull/2172) Fixed build on Alpine 3.13. diff --git a/src/base/net/stratum/Client.cpp b/src/base/net/stratum/Client.cpp index 78c0976f7..e4d1d53ae 100644 --- a/src/base/net/stratum/Client.cpp +++ b/src/base/net/stratum/Client.cpp @@ -379,11 +379,16 @@ bool xmrig::Client::parseJob(const rapidjson::Value ¶ms, int *code) } const char *algo = Json::getString(params, "algo"); + const char *blobData = Json::getString(params, "blob"); if (algo) { job.setAlgorithm(algo); } else if (m_pool.coin().isValid()) { - job.setAlgorithm(m_pool.coin().algorithm(job.blob()[0])); + uint8_t blobVersion = 0; + if (blobData) { + Cvt::fromHex(&blobVersion, 1, blobData, 2); + } + job.setAlgorithm(m_pool.coin().algorithm(blobVersion)); } # ifdef XMRIG_FEATURE_HTTP @@ -399,7 +404,7 @@ bool xmrig::Client::parseJob(const rapidjson::Value ¶ms, int *code) else # endif { - if (!job.setBlob(params["blob"].GetString())) { + if (!job.setBlob(blobData)) { *code = 4; return false; } diff --git a/src/base/net/stratum/DaemonClient.cpp b/src/base/net/stratum/DaemonClient.cpp index c429039dd..5bfe095ce 100644 --- a/src/base/net/stratum/DaemonClient.cpp +++ b/src/base/net/stratum/DaemonClient.cpp @@ -248,7 +248,9 @@ bool xmrig::DaemonClient::parseJob(const rapidjson::Value ¶ms, int *code) } if (m_pool.coin().isValid()) { - job.setAlgorithm(m_pool.coin().algorithm(job.blob()[0])); + uint8_t blobVersion = 0; + Cvt::fromHex(&blobVersion, 1, m_blockhashingblob.data(), 2); + job.setAlgorithm(m_pool.coin().algorithm(blobVersion)); } if (blocktemplate.isNull() || !job.setBlob(m_blockhashingblob)) { diff --git a/src/base/net/stratum/SelfSelectClient.cpp b/src/base/net/stratum/SelfSelectClient.cpp index 7f7ee5447..a902e252f 100644 --- a/src/base/net/stratum/SelfSelectClient.cpp +++ b/src/base/net/stratum/SelfSelectClient.cpp @@ -130,12 +130,17 @@ bool xmrig::SelfSelectClient::parseResponse(int64_t id, rapidjson::Value &result } } - if (!m_job.setBlob(result[kBlockhashingBlob].GetString())) { - return false; + const char *blobData = Json::getString(result, kBlockhashingBlob); + if (pool().coin().isValid()) { + uint8_t blobVersion = 0; + if (blobData) { + Cvt::fromHex(&blobVersion, 1, blobData, 2); + } + m_job.setAlgorithm(pool().coin().algorithm(blobVersion)); } - if (pool().coin().isValid()) { - m_job.setAlgorithm(pool().coin().algorithm(m_job.blob()[0])); + if (!m_job.setBlob(blobData)) { + return false; } m_job.setHeight(Json::getUint64(result, kHeight));