diff --git a/blkmaker.c b/blkmaker.c index 8a4cb77..8da534a 100644 --- a/blkmaker.c +++ b/blkmaker.c @@ -34,9 +34,16 @@ bool _blkmk_dblsha256(void *hash, const void *data, size_t datasz) { #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 (out_newcb) + *out_newcb = false; return 0; + } + + if (out_newcb) + *out_newcb = true; size_t datasz = 62 + sizeof(blkheight_t) + scriptsz; 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; } +uint64_t blkmk_init_generation(blktemplate_t *tmpl, void *script, size_t scriptsz) { + return blkmk_init_generation2(tmpl, script, scriptsz, NULL); +} + static bool build_merkle_root(unsigned char *mrklroot_out, blktemplate_t *tmpl, unsigned char *cbtxndata, size_t cbtxndatasz) { size_t hashcount = tmpl->txncount + 1; diff --git a/blkmaker.h b/blkmaker.h index 6c1872c..5f4fb06 100644 --- a/blkmaker.h +++ b/blkmaker.h @@ -7,12 +7,13 @@ #include -#define BLKMAKER_VERSION (2L) +#define BLKMAKER_VERSION (3L) #define BLKMAKER_MAX_BLOCK_VERSION (2) 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_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 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);