stratum: common p2sh_pack_tx func for p2sh masternodes

This commit is contained in:
Tanguy Pruvot 2018-05-07 16:15:56 +02:00
parent ed97818e61
commit b114a1c66f

View file

@ -32,6 +32,19 @@ static void job_pack_tx(YAAMP_COIND *coind, char *data, json_int_t amount, char
// debuglog("pack tx %lld\n", amount);
}
static void p2sh_pack_tx(YAAMP_COIND *coind, char *data, json_int_t amount, char *payee)
{
char evalue[32];
char coinb2_part[256];
char coinb2_len[4];
sprintf(coinb2_part, "a9%02x%s87", (unsigned int)(strlen(payee) >> 1) & 0xFF, payee);
sprintf(coinb2_len, "%02x", (unsigned int)(strlen(coinb2_part) >> 1) & 0xFF);
encode_tx_value(evalue, amount);
strcat(data, evalue);
strcat(data, coinb2_len);
strcat(data, coinb2_part);
}
void coinbase_aux(YAAMP_JOB_TEMPLATE *templ, char *aux_script)
{
vector<string> hashlist = coind_aux_hashlist(templ->auxs, templ->auxs_size);
@ -298,15 +311,7 @@ void coinbase_create(YAAMP_COIND *coind, YAAMP_JOB_TEMPLATE *templ, json_value *
base58_decode(payee, script_payee);
bool superblock_use_p2sh = (strcmp(coind->symbol, "MAC") == 0);
if(superblock_use_p2sh) {
char eamount[32] = { 0 };
char coinb2_part[256];
char coinb2_len[4];
sprintf(coinb2_part, "a9%02x%s87", (unsigned int)(strlen(script_payee) >> 1) & 0xFF, script_payee);
sprintf(coinb2_len, "%02x", (unsigned int)(strlen(coinb2_part) >> 1) & 0xFF);
encode_tx_value(eamount, amount);
strcat(script_dests, eamount);
strcat(script_dests, coinb2_len);
strcat(script_dests, coinb2_part);
p2sh_pack_tx(coind, script_dests, amount, script_payee);
} else {
job_pack_tx(coind, script_dests, amount, script_payee);
}
@ -323,15 +328,7 @@ void coinbase_create(YAAMP_COIND *coind, YAAMP_JOB_TEMPLATE *templ, json_value *
base58_decode(payee, script_payee);
bool masternode_use_p2sh = (strcmp(coind->symbol, "MAC") == 0);
if(masternode_use_p2sh) {
char eamount[32] = { 0 };
char coinb2_part[256];
char coinb2_len[4];
sprintf(coinb2_part, "a9%02x%s87", (unsigned int)(strlen(script_payee) >> 1) & 0xFF, script_payee);
sprintf(coinb2_len, "%02x", (unsigned int)(strlen(coinb2_part) >> 1) & 0xFF);
encode_tx_value(eamount, amount);
strcat(script_dests, eamount);
strcat(script_dests, coinb2_len);
strcat(script_dests, coinb2_part);
p2sh_pack_tx(coind, script_dests, amount, script_payee);
} else {
job_pack_tx(coind, script_dests, amount, script_payee);
}