diff --git a/bitcoin/varint.c b/bitcoin/varint.c index 1e97cddd3..290e28586 100644 --- a/bitcoin/varint.c +++ b/bitcoin/varint.c @@ -1,5 +1,16 @@ #include "varint.h" +size_t varint_size(varint_t v) +{ + if (v < 0xfd) + return 1; + if (v <= 0xffff) + return 3; + if (v <= 0xffffffff) + return 5; + return 9; +} + size_t varint_put(u8 buf[VARINT_MAX_LEN], varint_t v) { u8 *p = buf; diff --git a/bitcoin/varint.h b/bitcoin/varint.h index b0b21c106..eddcb450a 100644 --- a/bitcoin/varint.h +++ b/bitcoin/varint.h @@ -9,6 +9,9 @@ #define VARINT_MAX_LEN 9 +/* Calculate bytes used (up to 9) */ +size_t varint_size(varint_t v); + /* Returns bytes used (up to 9) */ size_t varint_put(u8 buf[VARINT_MAX_LEN], varint_t v);