diff --git a/bitcoin/feerate.c b/bitcoin/feerate.c index 696ec4b39..c6b37c17c 100644 --- a/bitcoin/feerate.c +++ b/bitcoin/feerate.c @@ -1,4 +1,5 @@ #include +#include #include #include @@ -38,3 +39,12 @@ const char *feerate_style_name(enum feerate_style style) } abort(); } + +size_t common_weight(size_t num_inputs, size_t num_outputs) +{ + /*(nVersion + num inputs + num outputs + locktime) * 4 + * + SegWit marker + SegWit flag */ + return (4 + varint_size(num_inputs) + + varint_size(num_outputs) + 4) * 4 + + 1 + 1; +} diff --git a/bitcoin/feerate.h b/bitcoin/feerate.h index 43bec2118..6190625aa 100644 --- a/bitcoin/feerate.h +++ b/bitcoin/feerate.h @@ -34,6 +34,11 @@ */ #define FEERATE_FLOOR 253 +/* + * This is the net common weight of a transaction. + */ +size_t common_weight(size_t num_inputs, size_t num_outputs); + enum feerate_style { FEERATE_PER_KSIPA, FEERATE_PER_KBYTE