Skip to content

Commit ed332e1

Browse files
committed
add setting for primary tag in UI
1 parent 4c00de9 commit ed332e1

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

src/datum_api.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -989,6 +989,9 @@ size_t datum_api_fill_config_var(const char *var_start, const size_t var_name_le
989989
val = (!datum_config.datum_pooled_mining_only) && datum_config.datum_pool_host[0];
990990
} else if (var_name_len_2 == 21 && 0 == strncmp(var_start_2, "*reward_sharing_never", 21)) {
991991
val = (!datum_config.datum_pooled_mining_only) && !datum_config.datum_pool_host[0];
992+
} else if (var_name_len_2 == 32 && 0 == strncmp(var_start_2, "*mining_coinbase_tag_primary_max", 32)) {
993+
val = 88 - strlen(datum_config.mining_coinbase_tag_secondary);
994+
if (val > 60) val = 60;
992995
} else if (var_name_len_2 == 34 && 0 == strncmp(var_start_2, "*mining_coinbase_tag_secondary_max", 34)) {
993996
val = 88 - strlen(datum_config.mining_coinbase_tag_primary);
994997
if (val > 60) val = 60;
@@ -1177,12 +1180,22 @@ bool datum_api_config_set(const char * const key, const char * const val, struct
11771180
if (!datum_config.datum_pool_pass_full_users) {
11781181
datum_api_json_modify_new("datum", "pool_pass_workers", json_boolean(datum_config.datum_pool_pass_workers));
11791182
}
1183+
} else if (0 == strcmp(key, "mining_coinbase_tag_primary")) {
1184+
if (0 == strcmp(val, datum_config.mining_coinbase_tag_primary)) return true;
1185+
size_t len_limit = 88 - strlen(datum_config.mining_coinbase_tag_secondary);
1186+
if (len_limit > 60) len_limit = 60;
1187+
if (strlen(val) > len_limit) {
1188+
json_array_append_new(errors, json_string_nocheck("Coinbase Tag primary is too long"));
1189+
return false;
1190+
}
1191+
strcpy(datum_config.mining_coinbase_tag_primary, val);
1192+
datum_api_json_modify_new("mining", "coinbase_tag_primary", json_string(val));
11801193
} else if (0 == strcmp(key, "mining_coinbase_tag_secondary")) {
11811194
if (0 == strcmp(val, datum_config.mining_coinbase_tag_secondary)) return true;
11821195
size_t len_limit = 88 - strlen(datum_config.mining_coinbase_tag_primary);
11831196
if (len_limit > 60) len_limit = 60;
11841197
if (strlen(val) > len_limit) {
1185-
json_array_append_new(errors, json_string_nocheck("Coinbase Tag is too long"));
1198+
json_array_append_new(errors, json_string_nocheck("Coinbase Tag secondary is too long"));
11861199
return false;
11871200
}
11881201
strcpy(datum_config.mining_coinbase_tag_secondary, val);

www/config.html

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,14 @@ <h2>Basic</h2>
121121
</div>
122122
<div class="setting-row">
123123
<div class="flex-row">
124-
<label for="mining_coinbase_tag_secondary" class="label">Coinbase Tag:</label>
124+
<label for="mining_coinbase_tag_primary" class="label">Coinbase Tag primary:</label>
125+
<input maxlength="${*mining_coinbase_tag_primary_max}" name="mining_coinbase_tag_primary" id="mining_coinbase_tag_primary" value="${mining_coinbase_tag_primary}"${*ro}></input>
126+
</div>
127+
<label for="coinbase_tag_primary" id="coinbase_tag_primary" class="tip">Arbitrary name displayed as the block creator on block explorers. (overridden by DATUM Pool)</label>
128+
</div>
129+
<div class="setting-row">
130+
<div class="flex-row">
131+
<label for="mining_coinbase_tag_secondary" class="label">Coinbase Tag secondary:</label>
125132
<input maxlength="${*mining_coinbase_tag_secondary_max}" name="mining_coinbase_tag_secondary" id="mining_coinbase_tag_secondary" value="${mining_coinbase_tag_secondary}"${*ro}></input>
126133
</div>
127134
<label for="coinbase_tag_secondary" id="coinbase_tag_secondary" class="tip">Arbitrary name displayed as the block creator on block explorers.</label>
@@ -225,14 +232,17 @@ <h2>Advanced</h2>
225232
function reward_sharing_changed() {
226233
var newvalue = document.getElementById('reward_sharing').value;
227234
var fields = document.getElementById('pool_settings').getElementsByTagName('input');
235+
var primary_tag = document.getElementById('mining_coinbase_tag_primary');
228236
if (newvalue == 'never') {
229237
for (var i = 0; i < fields.length; ++i) {
230238
fields[i].setAttribute('disabled', true);
231239
}
240+
primary_tag.removeAttribute('disabled');
232241
} else {
233242
for (var i = 0; i < fields.length; ++i) {
234243
fields[i].removeAttribute('disabled');
235244
}
245+
primary_tag.setAttribute('disabled', true);
236246
}
237247
}
238248
reward_sharing_changed();

0 commit comments

Comments
 (0)