mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-26 17:38:39 +00:00
feat(core): Add get_base_weight() to TxWeightCalculator.
[no changelog]
This commit is contained in:
parent
0ce2c079b0
commit
421eec1d3b
@ -45,7 +45,7 @@ class TxWeightCalculator:
|
|||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.inputs_count = 0
|
self.inputs_count = 0
|
||||||
self.outputs_count = 0
|
self.outputs_count = 0
|
||||||
self.counter = 4 * (_TXSIZE_HEADER + _TXSIZE_FOOTER)
|
self.counter = 0
|
||||||
self.segwit_inputs_count = 0
|
self.segwit_inputs_count = 0
|
||||||
|
|
||||||
def add_input(self, i: TxInput) -> None:
|
def add_input(self, i: TxInput) -> None:
|
||||||
@ -131,12 +131,19 @@ class TxWeightCalculator:
|
|||||||
script_size = self.compact_size_len(len(script)) + len(script)
|
script_size = self.compact_size_len(len(script)) + len(script)
|
||||||
self.counter += 4 * (_TXSIZE_OUTPUT + script_size)
|
self.counter += 4 * (_TXSIZE_OUTPUT + script_size)
|
||||||
|
|
||||||
|
def get_base_weight(self) -> int:
|
||||||
|
base_weight = 4 * (_TXSIZE_HEADER + _TXSIZE_FOOTER)
|
||||||
|
base_weight += 4 * self.compact_size_len(self.inputs_count)
|
||||||
|
base_weight += 4 * self.compact_size_len(self.outputs_count)
|
||||||
|
if self.segwit_inputs_count:
|
||||||
|
base_weight += _TXSIZE_SEGWIT_OVERHEAD
|
||||||
|
|
||||||
|
return base_weight
|
||||||
|
|
||||||
def get_total(self) -> int:
|
def get_total(self) -> int:
|
||||||
total = self.counter
|
total = self.counter
|
||||||
total += 4 * self.compact_size_len(self.inputs_count)
|
total += self.get_base_weight()
|
||||||
total += 4 * self.compact_size_len(self.outputs_count)
|
|
||||||
if self.segwit_inputs_count:
|
if self.segwit_inputs_count:
|
||||||
total += _TXSIZE_SEGWIT_OVERHEAD
|
|
||||||
# add one byte of witness stack item count per non-segwit input
|
# add one byte of witness stack item count per non-segwit input
|
||||||
total += self.inputs_count - self.segwit_inputs_count
|
total += self.inputs_count - self.segwit_inputs_count
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user