#!/bin/sh # Modify the CMakeLists.txt and source files to change the project name from "xmrigcc-proxy" to "xxxigcc-proxy" sed -i 's/project(xmrigcc-proxy)/project(xxxigcc-proxy)/' CMakeLists.txt # Modify donate functionality sed -i 's/kDefaultDonateLevel = 2/kDefaultDonateLevel = 0/' src/donate.h sed -i 's/donate.graef.in/127.0.0.1/' src/net/strategies/DonateStrategy.cpp sed -i 's/87.106.163.52/127.0.0.1/' src/net/strategies/DonateStrategy.cpp sed -i 's/"donate-level", 1/"donate-level", 0/' src/core/config/Config_platform.h sed -i 's/"donate-level": 2/"donate-level": 0/' src/config.json # Modify version information sed -i 's/xmrigcc/xxxigcc/' src/version.h sed -i 's/XMRigCC/XXXigCC/' src/version.h # Add Tari Solo support information to APP_DESC for --version output sed -i 's/\(#define APP_DESC .*\)"/\1 (with Tari Solo Mining Support)"/' src/version.h # Modify the config.json to set verbose to true sed -i 's/"verbose": false/"verbose": true/' src/config.json # Modify BlockTemplate.cpp to support Tari 76-byte solo mining format echo "Adding Tari Solo Mining support to BlockTemplate.cpp..." # Add Tari format detection at the beginning of parse(bool hashes) function # Find the line "bool xmrig::BlockTemplate::parse(bool hashes)" and add Tari detection after the opening brace sed -i '/^bool xmrig::BlockTemplate::parse(bool hashes)/,/^{/a\ \/\/ Detect Tari solo mining format (76 bytes)\ \/\/ Format: 3 bytes header + 32 bytes mining_hash + 8 bytes nonce + 33 bytes pow\ if (m_blob.size() == 76) {\ \/\/ Tari solo mining format - use fixed-size parsing (no varint)\ BlobReader ar(m_blob.data(), m_blob.size());\ \ \/\/ Skip 3-byte header (major_version, minor_version, timestamp - all 0 for Tari)\ ar.skip(3);\ \ \/\/ Skip 32-byte mining_hash\ ar.skip(32);\ \ \/\/ Nonce is at offset 35 (3 + 32)\ setOffset(NONCE_OFFSET, 35);\ ar.skip(8); \/\/ Skip nonce (8 bytes, big-endian)\ \ \/\/ Skip 33-byte PoW data\ ar.skip(33);\ \ \/\/ For Tari, we do not need to parse miner tx or other Monero-specific fields\ \/\/ Just accept the template and let XMRig modify the nonce\ return true;\ }\ \ \/\/ Original Monero varint parsing for non-Tari formats ' src/base/tools/cryptonote/BlockTemplate.cpp # Change the original BlobReader to BlobReader to explicitly use varint parsing sed -i 's/BlobReader ar(m_blob\.data(), m_blob\.size());/BlobReader ar(m_blob.data(), m_blob.size());/' src/base/tools/cryptonote/BlockTemplate.cpp echo "✅ Tari Solo Mining support added to BlockTemplate.cpp"