diff --git a/README.md b/README.md index 4a5cefe..65a1121 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Salvium One v1.0.0 +# Salvium One v1.0.2 Copyright (c) 2023-2025, Salvium Portions Copyright (c) 2014-2023, The Monero Project @@ -172,7 +172,7 @@ invokes cmake commands as needed. ```bash cd salvium - git checkout v1.0.0 + git checkout v1.0.2 make ``` @@ -251,7 +251,7 @@ Tested on a Raspberry Pi Zero with a clean install of minimal Raspbian Stretch ( ```bash git clone https://github.com/salvium/salvium cd salvium - git checkout v1.0.0 + git checkout v1.0.2 ``` * Build: @@ -370,10 +370,10 @@ application. cd salvium ``` -* If you would like a specific [version/tag](https://github.com/salvium/salvium/tags), do a git checkout for that version. eg. 'v1.0.0'. If you don't care about the version and just want binaries from master, skip this step: +* If you would like a specific [version/tag](https://github.com/salvium/salvium/tags), do a git checkout for that version. eg. 'v1.0.2'. If you don't care about the version and just want binaries from master, skip this step: ```bash - git checkout v1.0.0 + git checkout v1.0.2 ``` * If you are on a 64-bit system, run: diff --git a/src/rpc/core_rpc_server.cpp b/src/rpc/core_rpc_server.cpp index d5764bd..3f58381 100644 --- a/src/rpc/core_rpc_server.cpp +++ b/src/rpc/core_rpc_server.cpp @@ -1879,12 +1879,29 @@ namespace cryptonote } blobdata block_blob = t_serializable_object_to_blob(b); crypto::public_key tx_pub_key = cryptonote::get_tx_pub_key_from_extra(b.miner_tx); + const std::vector additional_tx_pub_keys = cryptonote::get_additional_tx_pub_keys_from_extra(b.miner_tx); if(tx_pub_key == crypto::null_pkey) { - error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR; - error_resp.message = "Internal error: failed to create block template"; - LOG_ERROR("Failed to get tx pub key in coinbase extra"); - return false; + // Check for Carrot treasury payout + const uint8_t hf_version = m_core.get_blockchain_storage().get_current_hard_fork_version(); + if (hf_version >= HF_VERSION_CARROT && b.miner_tx.vout.size() == 2) { + + const auto treasury_payout_data = get_config(nettype()).TREASURY_SAL1_MINT_OUTPUT_DATA; + const bool treasury_payout_exists = (treasury_payout_data.count(height) == 1); + if (!treasury_payout_exists) { + error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR; + error_resp.message = "Internal error: failed to create block template (missing treasury payout)"; + LOG_ERROR("Failed to get tx pub key in coinbase extra (missing treasury payout)"); + return false; + } + tx_pub_key = additional_tx_pub_keys.back(); + + } else { + error_resp.code = CORE_RPC_ERROR_CODE_INTERNAL_ERROR; + error_resp.message = "Internal error: failed to create block template"; + LOG_ERROR("Failed to get tx pub key in coinbase extra"); + return false; + } } uint64_t next_height; diff --git a/src/version.cpp.in b/src/version.cpp.in index cf48709..51541ae 100644 --- a/src/version.cpp.in +++ b/src/version.cpp.in @@ -1,5 +1,5 @@ #define DEF_SALVIUM_VERSION_TAG "@VERSIONTAG@" -#define DEF_SALVIUM_VERSION "1.0.1" +#define DEF_SALVIUM_VERSION "1.0.2" #define DEF_MONERO_VERSION_TAG "release" #define DEF_MONERO_VERSION "0.18.3.4" #define DEF_MONERO_RELEASE_NAME "One"