blkmk_init_generation2 can assign a boolean on whether it had to create a new coinbase transaction
This commit is contained in:
13
blkmaker.c
13
blkmaker.c
@@ -34,9 +34,16 @@ bool _blkmk_dblsha256(void *hash, const void *data, size_t datasz) {
|
|||||||
|
|
||||||
#define dblsha256 _blkmk_dblsha256
|
#define dblsha256 _blkmk_dblsha256
|
||||||
|
|
||||||
uint64_t blkmk_init_generation(blktemplate_t *tmpl, void *script, size_t scriptsz) {
|
uint64_t blkmk_init_generation2(blktemplate_t *tmpl, void *script, size_t scriptsz, bool *out_newcb) {
|
||||||
if (tmpl->cbtxn)
|
if (tmpl->cbtxn)
|
||||||
|
{
|
||||||
|
if (out_newcb)
|
||||||
|
*out_newcb = false;
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (out_newcb)
|
||||||
|
*out_newcb = true;
|
||||||
|
|
||||||
size_t datasz = 62 + sizeof(blkheight_t) + scriptsz;
|
size_t datasz = 62 + sizeof(blkheight_t) + scriptsz;
|
||||||
unsigned char *data = malloc(datasz);
|
unsigned char *data = malloc(datasz);
|
||||||
@@ -94,6 +101,10 @@ uint64_t blkmk_init_generation(blktemplate_t *tmpl, void *script, size_t scripts
|
|||||||
return tmpl->cbvalue;
|
return tmpl->cbvalue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t blkmk_init_generation(blktemplate_t *tmpl, void *script, size_t scriptsz) {
|
||||||
|
return blkmk_init_generation2(tmpl, script, scriptsz, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
bool build_merkle_root(unsigned char *mrklroot_out, blktemplate_t *tmpl, unsigned char *cbtxndata, size_t cbtxndatasz) {
|
bool build_merkle_root(unsigned char *mrklroot_out, blktemplate_t *tmpl, unsigned char *cbtxndata, size_t cbtxndatasz) {
|
||||||
size_t hashcount = tmpl->txncount + 1;
|
size_t hashcount = tmpl->txncount + 1;
|
||||||
|
|||||||
@@ -7,12 +7,13 @@
|
|||||||
|
|
||||||
#include <blktemplate.h>
|
#include <blktemplate.h>
|
||||||
|
|
||||||
#define BLKMAKER_VERSION (2L)
|
#define BLKMAKER_VERSION (3L)
|
||||||
#define BLKMAKER_MAX_BLOCK_VERSION (2)
|
#define BLKMAKER_MAX_BLOCK_VERSION (2)
|
||||||
|
|
||||||
extern bool (*blkmk_sha256_impl)(void *hash_out, const void *data, size_t datasz);
|
extern bool (*blkmk_sha256_impl)(void *hash_out, const void *data, size_t datasz);
|
||||||
|
|
||||||
extern uint64_t blkmk_init_generation(blktemplate_t *, void *script, size_t scriptsz);
|
extern uint64_t blkmk_init_generation(blktemplate_t *, void *script, size_t scriptsz);
|
||||||
|
extern uint64_t blkmk_init_generation2(blktemplate_t *, void *script, size_t scriptsz, bool *out_newcb);
|
||||||
extern ssize_t blkmk_append_coinbase_safe(blktemplate_t *, const void *append, size_t appendsz);
|
extern ssize_t blkmk_append_coinbase_safe(blktemplate_t *, const void *append, size_t appendsz);
|
||||||
extern bool _blkmk_extranonce(blktemplate_t *tmpl, void *vout, unsigned int workid, size_t *offs);
|
extern bool _blkmk_extranonce(blktemplate_t *tmpl, void *vout, unsigned int workid, size_t *offs);
|
||||||
extern size_t blkmk_get_data(blktemplate_t *, void *buf, size_t bufsz, time_t usetime, int16_t *out_expire, unsigned int *out_dataid);
|
extern size_t blkmk_get_data(blktemplate_t *, void *buf, size_t bufsz, time_t usetime, int16_t *out_expire, unsigned int *out_dataid);
|
||||||
|
|||||||
Reference in New Issue
Block a user