Skip to content

Commit cdc3256

Browse files
committed
refactor(verification): remove VertexVerifier from TransactionVerifier
1 parent 5ecf018 commit cdc3256

File tree

6 files changed

+77
-83
lines changed

6 files changed

+77
-83
lines changed

hathor/transaction/resources/create_tx.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ def _verify_unsigned_skip_pow(self, tx: Transaction) -> None:
111111
verifiers = self.manager.verification_service.verifiers
112112
verifiers.tx.verify_number_of_inputs(tx)
113113
verifiers.vertex.verify_number_of_outputs(tx)
114-
verifiers.tx.verify_outputs(tx)
114+
verifiers.vertex.verify_outputs(tx)
115+
verifiers.tx.verify_output_token_indexes(tx)
115116
verifiers.vertex.verify_sigops_output(tx)
116117
verifiers.tx.verify_sigops_input(tx)
117118
# need to run verify_inputs first to check if all inputs exist

hathor/verification/transaction_verifier.py

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,15 @@
3636
from hathor.transaction.transaction import TokenInfo
3737
from hathor.transaction.util import get_deposit_amount, get_withdraw_amount
3838
from hathor.types import TokenUid, VertexId
39-
from hathor.verification.vertex_verifier import VertexVerifier
4039

4140
cpu = get_cpu_profiler()
4241

4342

4443
class TransactionVerifier:
45-
__slots__ = ('_settings', '_vertex_verifier', '_daa')
46-
47-
def __init__(
48-
self,
49-
*,
50-
settings: HathorSettings,
51-
vertex_verifier: VertexVerifier,
52-
daa: DifficultyAdjustmentAlgorithm,
53-
) -> None:
44+
__slots__ = ('_settings', '_daa')
45+
46+
def __init__(self, *, settings: HathorSettings, daa: DifficultyAdjustmentAlgorithm) -> None:
5447
self._settings = settings
55-
self._vertex_verifier = vertex_verifier
5648
self._daa = daa
5749

5850
def verify_parents_basic(self, tx: Transaction) -> None:
@@ -177,12 +169,11 @@ def verify_number_of_inputs(self, tx: Transaction) -> None:
177169
if not tx.is_genesis:
178170
raise NoInputError('Transaction must have at least one input')
179171

180-
def verify_outputs(self, tx: Transaction) -> None:
172+
def verify_output_token_indexes(self, tx: Transaction) -> None:
181173
"""Verify outputs reference an existing token uid in the tokens list
182174
183175
:raises InvalidToken: output references non existent token uid
184176
"""
185-
self._vertex_verifier.verify_outputs(tx)
186177
for output in tx.outputs:
187178
# check index is valid
188179
if output.get_token_index() > len(tx.tokens):

hathor/verification/verification_service.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,8 @@ def _verify_without_storage_tx(self, tx: Transaction) -> None:
236236
"""
237237
self.verifiers.vertex.verify_pow(tx)
238238
self.verifiers.tx.verify_number_of_inputs(tx)
239-
self.verifiers.tx.verify_outputs(tx)
239+
self.verifiers.vertex.verify_outputs(tx)
240+
self.verifiers.tx.verify_output_token_indexes(tx)
240241
self.verifiers.vertex.verify_sigops_output(tx)
241242

242243
def _verify_without_storage_token_creation_tx(self, tx: TokenCreationTransaction) -> None:

hathor/verification/vertex_verifiers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def create(
6767
"""
6868
block_verifier = BlockVerifier(settings=settings, daa=daa, feature_service=feature_service)
6969
merge_mined_block_verifier = MergeMinedBlockVerifier()
70-
tx_verifier = TransactionVerifier(settings=settings, vertex_verifier=vertex_verifier, daa=daa)
70+
tx_verifier = TransactionVerifier(settings=settings, daa=daa)
7171
token_creation_tx_verifier = TokenCreationTransactionVerifier(settings=settings)
7272

7373
return VertexVerifiers(

tests/tx/test_tx.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -881,7 +881,8 @@ def _test_txout_script_limit(self, offset):
881881
_output = TxOutput(value, script)
882882

883883
tx = Transaction(inputs=[_input], outputs=[_output], storage=self.tx_storage)
884-
self._verifiers.tx.verify_outputs(tx)
884+
self._verifiers.vertex.verify_outputs(tx)
885+
self._verifiers.tx.verify_output_token_indexes(tx)
885886

886887
def test_txout_script_limit_exceeded(self):
887888
with self.assertRaises(InvalidOutputScriptSize):

0 commit comments

Comments
 (0)