From 4486b107988f5351f978844074121eadd64e7670 Mon Sep 17 00:00:00 2001 From: Kristaps Kaupe Date: Thu, 9 Nov 2023 09:39:19 +0200 Subject: [PATCH] Transaction virtual size must be rounded upwards --- src/jmbitcoin/secp256k1_transaction.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jmbitcoin/secp256k1_transaction.py b/src/jmbitcoin/secp256k1_transaction.py index 854fbd2..4be9fe6 100644 --- a/src/jmbitcoin/secp256k1_transaction.py +++ b/src/jmbitcoin/secp256k1_transaction.py @@ -5,6 +5,7 @@ from typing import List, Union, Tuple # needed for single sha256 evaluation, which is used # in bitcoin (p2wsh) but not exposed in python-bitcointx: import hashlib +from math import ceil from jmbitcoin.secp256k1_main import * from jmbase import bintohex, utxo_to_utxostr @@ -181,7 +182,7 @@ def tx_vsize(tx): raw_tx_size = len(tx.serialize()) witness_size = len(tx.wit.serialize()) non_witness_size = raw_tx_size - witness_size - return int(non_witness_size + .25 * witness_size) + return ceil(non_witness_size + .25 * witness_size) def pubkey_to_p2pkh_script(pub, require_compressed=False): """