Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion src/datum_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -989,6 +989,9 @@ size_t datum_api_fill_config_var(const char *var_start, const size_t var_name_le
val = (!datum_config.datum_pooled_mining_only) && datum_config.datum_pool_host[0];
} else if (var_name_len_2 == 21 && 0 == strncmp(var_start_2, "*reward_sharing_never", 21)) {
val = (!datum_config.datum_pooled_mining_only) && !datum_config.datum_pool_host[0];
} else if (var_name_len_2 == 32 && 0 == strncmp(var_start_2, "*mining_coinbase_tag_primary_max", 32)) {
val = 88 - strlen(datum_config.mining_coinbase_tag_secondary);
if (val > 60) val = 60;
} else if (var_name_len_2 == 34 && 0 == strncmp(var_start_2, "*mining_coinbase_tag_secondary_max", 34)) {
val = 88 - strlen(datum_config.mining_coinbase_tag_primary);
if (val > 60) val = 60;
Expand Down Expand Up @@ -1177,12 +1180,22 @@ bool datum_api_config_set(const char * const key, const char * const val, struct
if (!datum_config.datum_pool_pass_full_users) {
datum_api_json_modify_new("datum", "pool_pass_workers", json_boolean(datum_config.datum_pool_pass_workers));
}
} else if (0 == strcmp(key, "mining_coinbase_tag_primary")) {
if (0 == strcmp(val, datum_config.mining_coinbase_tag_primary)) return true;
size_t len_limit = 88 - strlen(datum_config.mining_coinbase_tag_secondary);
if (len_limit > 60) len_limit = 60;
if (strlen(val) > len_limit) {
json_array_append_new(errors, json_string_nocheck("Coinbase Tag primary is too long"));
return false;
}
strcpy(datum_config.mining_coinbase_tag_primary, val);
datum_api_json_modify_new("mining", "coinbase_tag_primary", json_string(val));
} else if (0 == strcmp(key, "mining_coinbase_tag_secondary")) {
if (0 == strcmp(val, datum_config.mining_coinbase_tag_secondary)) return true;
size_t len_limit = 88 - strlen(datum_config.mining_coinbase_tag_primary);
if (len_limit > 60) len_limit = 60;
if (strlen(val) > len_limit) {
json_array_append_new(errors, json_string_nocheck("Coinbase Tag is too long"));
json_array_append_new(errors, json_string_nocheck("Coinbase Tag secondary is too long"));
return false;
}
strcpy(datum_config.mining_coinbase_tag_secondary, val);
Expand Down
12 changes: 11 additions & 1 deletion www/config.html
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,14 @@ <h2>Basic</h2>
</div>
<div class="setting-row">
<div class="flex-row">
<label for="mining_coinbase_tag_secondary" class="label">Coinbase Tag:</label>
<label for="mining_coinbase_tag_primary" class="label">Coinbase Tag primary:</label>
<input maxlength="${*mining_coinbase_tag_primary_max}" name="mining_coinbase_tag_primary" id="mining_coinbase_tag_primary" value="${mining_coinbase_tag_primary}"${*ro}></input>
</div>
<label for="coinbase_tag_primary" id="coinbase_tag_primary" class="tip">Arbitrary tag included in the coinbase. (overridden by DATUM Pool)</label>
</div>
<div class="setting-row">
<div class="flex-row">
<label for="mining_coinbase_tag_secondary" class="label">Coinbase Tag secondary:</label>
<input maxlength="${*mining_coinbase_tag_secondary_max}" name="mining_coinbase_tag_secondary" id="mining_coinbase_tag_secondary" value="${mining_coinbase_tag_secondary}"${*ro}></input>
</div>
<label for="coinbase_tag_secondary" id="coinbase_tag_secondary" class="tip">Arbitrary name displayed as the block creator on block explorers.</label>
Expand Down Expand Up @@ -225,14 +232,17 @@ <h2>Advanced</h2>
function reward_sharing_changed() {
var newvalue = document.getElementById('reward_sharing').value;
var fields = document.getElementById('pool_settings').getElementsByTagName('input');
var primary_tag = document.getElementById('mining_coinbase_tag_primary');
if (newvalue == 'never') {
for (var i = 0; i < fields.length; ++i) {
fields[i].setAttribute('disabled', true);
}
primary_tag.removeAttribute('disabled');
} else {
for (var i = 0; i < fields.length; ++i) {
fields[i].removeAttribute('disabled');
}
primary_tag.setAttribute('disabled', true);
}
}
reward_sharing_changed();
Expand Down