From 2d82d3b6685dd387fdc7c8c975a9f470f5166400 Mon Sep 17 00:00:00 2001 From: Antoine Poinsot Date: Tue, 7 Sep 2021 13:58:53 +0200 Subject: [PATCH] sm: correct Cancel tx size Units were mixed up. Correct and clarify the code to avoid another overlook. Signed-off-by: Antoine Poinsot --- Model/statemachine.py | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/Model/statemachine.py b/Model/statemachine.py index f1dce12..54d9aba 100644 --- a/Model/statemachine.py +++ b/Model/statemachine.py @@ -162,18 +162,10 @@ def _feerate_to_fee(self, feerate, tx_type, n_fb_inputs): """ if tx_type not in ["cancel", "emergency", "unemergency"]: raise ValueError("Invalid tx_type") - # feerate in satoshis/vbyte, weights in WU == 4vbytes, so feerate*weight/4 gives satoshis - return round( - feerate - * ( - int( - CANCEL_TX_WEIGHT[self.n_stk][self.n_man] - + n_fb_inputs * P2WPKH_INPUT_SIZE - ) - / 4 - ), - 0, - ) + # feerate is in satoshis/vbyte + cancel_tx_size_no_fb = (CANCEL_TX_WEIGHT[self.n_stk][self.n_man] + 3) // 4 + cancel_tx_size = cancel_tx_size_no_fb + n_fb_inputs * P2WPKH_INPUT_SIZE + return cancel_tx_size * feerate def fee_reserve_per_vault(self, block_height): return self._feerate_to_fee(