diff --git a/python/src/trezorlib/debuglink.py b/python/src/trezorlib/debuglink.py index cd8222fac..2edae501b 100644 --- a/python/src/trezorlib/debuglink.py +++ b/python/src/trezorlib/debuglink.py @@ -15,6 +15,7 @@ # If not, see . import logging +import textwrap from collections import namedtuple from copy import deepcopy @@ -245,6 +246,96 @@ class DebugUI: return self.passphrase +class MessageFilter: + def __init__(self, message_type, **fields): + self.message_type = message_type + self.fields = {} + self.update_fields(**fields) + + def update_fields(self, **fields): + for name, value in fields.items(): + try: + self.fields[name] = self.from_message_or_type(value) + except TypeError: + self.fields[name] = value + + return self + + @classmethod + def from_message_or_type(cls, message_or_type): + if isinstance(message_or_type, cls): + return message_or_type + if isinstance(message_or_type, protobuf.MessageType): + return cls.from_message(message_or_type) + if isinstance(message_or_type, type) and issubclass( + message_or_type, protobuf.MessageType + ): + return cls(message_or_type) + raise TypeError("Invalid kind of expected response") + + @classmethod + def from_message(cls, message): + fields = {} + for field in message.keys(): + value = getattr(message, field) + if value in (None, []): + continue + fields[field] = value + return cls(type(message), **fields) + + def match(self, message): + if type(message) != self.message_type: + return False + + for field, expected_value in self.fields.items(): + actual_value = getattr(message, field, None) + if isinstance(expected_value, MessageFilter): + if not expected_value.match(actual_value): + return False + elif expected_value != actual_value: + return False + + return True + + def format(self, maxwidth=80): + fields = [] + for fname, ftype, _ in self.message_type.get_fields().values(): + if fname not in self.fields: + continue + value = self.fields[fname] + if isinstance(ftype, protobuf.EnumType) and isinstance(value, int): + field_str = ftype.to_str(value) + elif isinstance(value, MessageFilter): + field_str = value.format(maxwidth - 4) + elif isinstance(value, protobuf.MessageType): + field_str = protobuf.format_message(value) + else: + field_str = repr(value) + field_str = textwrap.indent(field_str, " ").lstrip() + fields.append((fname, field_str)) + + pairs = ["{}={}".format(k, v) for k, v in fields] + oneline_str = ", ".join(pairs) + if len(oneline_str) < maxwidth: + return "{}({})".format(self.message_type.__name__, oneline_str) + else: + item = [] + item.append("{}(".format(self.message_type.__name__)) + for pair in pairs: + item.append(" {}".format(pair)) + item.append(")") + return "\n".join(item) + + +class MessageFilterGenerator: + def __getattr__(self, key): + message_type = getattr(messages, key) + return MessageFilter(message_type).update_fields + + +message_filters = MessageFilterGenerator() + + class TrezorClientDebugLink(TrezorClient): # This class implements automatic responses # and other functionality for unit tests @@ -417,13 +508,15 @@ class TrezorClientDebugLink(TrezorClient): raise RuntimeError("Must be called inside 'with' statement") # make sure all items are (bool, message) tuples - expected_with_validity = [ + expected_with_validity = ( e if isinstance(e, tuple) else (True, e) for e in expected - ] + ) # only apply those items that are (True, message) self.expected_responses = [ - expected for valid, expected in expected_with_validity if valid + MessageFilter.from_message_or_type(expected) + for valid, expected in expected_with_validity + if valid ] self.current_response = 0 @@ -469,23 +562,7 @@ class TrezorClientDebugLink(TrezorClient): for i in range(start_at, stop_at): exp = self.expected_responses[i] prefix = " " if i != self.current_response else ">>> " - set_fields = { - key: value - for key, value in exp.__dict__.items() - if value is not None and value != [] - } - oneline_str = ", ".join("{}={!r}".format(*i) for i in set_fields.items()) - if len(oneline_str) < 60: - output.append( - "{}{}({})".format(prefix, exp.__class__.__name__, oneline_str) - ) - else: - item = [] - item.append("{}{}(".format(prefix, exp.__class__.__name__)) - for key, value in set_fields.items(): - item.append("{} {}={!r}".format(prefix, key, value)) - item.append("{})".format(prefix)) - output.append("\n".join(item)) + output.append(textwrap.indent(exp.format(), prefix)) if stop_at < len(self.expected_responses): omitted = len(self.expected_responses) - stop_at output.append(" (...{} following responses omitted)".format(omitted)) @@ -493,7 +570,7 @@ class TrezorClientDebugLink(TrezorClient): output.append("") if msg is not None: output.append("Actually received:") - output.append(protobuf.format_message(msg)) + output.append(textwrap.indent(protobuf.format_message(msg), " ")) else: output.append("This message was never received.") raise AssertionError("\n".join(output)) @@ -511,15 +588,9 @@ class TrezorClientDebugLink(TrezorClient): expected = self.expected_responses[self.current_response] - if msg.__class__ != expected.__class__: + if not expected.match(msg): self._raise_unexpected_response(msg) - for field, value in expected.__dict__.items(): - if value is None or value == []: - continue - if getattr(msg, field) != value: - self._raise_unexpected_response(msg) - self.current_response += 1 def mnemonic_callback(self, _): diff --git a/tests/bip32.py b/tests/bip32.py index c243dfd82..a705a7df8 100644 --- a/tests/bip32.py +++ b/tests/bip32.py @@ -88,12 +88,6 @@ def get_subnode(node, i): I64 = hmac.HMAC(key=node.chain_code, msg=data, digestmod=hashlib.sha512).digest() I_left_as_exponent = string_to_number(I64[:32]) - node_out = messages.HDNodeType() - node_out.depth = node.depth + 1 - node_out.child_num = i - node_out.chain_code = I64[32:] - node_out.fingerprint = fingerprint(node.public_key) - # BIP32 magic converts old public key to new public point x, y = sec_to_public_pair(node.public_key) point = I_left_as_exponent * SECP256k1.generator + Point( @@ -103,10 +97,14 @@ def get_subnode(node, i): if point == INFINITY: raise ValueError("Point cannot be INFINITY") - # Convert public point to compressed public key - node_out.public_key = point_to_pubkey(point) - - return node_out + return messages.HDNodeType( + depth=node.depth + 1, + child_num=i, + chain_code=I64[32:], + fingerprint=fingerprint(node.public_key), + # Convert public point to compressed public key + public_key=point_to_pubkey(point), + ) def serialize(node, version=0x0488B21E): @@ -130,11 +128,13 @@ def deserialize(xpub): if tools.btc_hash(data[:-4])[:4] != data[-4:]: raise ValueError("Checksum failed") - node = messages.HDNodeType() - node.depth = struct.unpack(">B", data[4:5])[0] - node.fingerprint = struct.unpack(">I", data[5:9])[0] - node.child_num = struct.unpack(">I", data[9:13])[0] - node.chain_code = data[13:45] + node = messages.HDNodeType( + depth=struct.unpack(">B", data[4:5])[0], + fingerprint=struct.unpack(">I", data[5:9])[0], + child_num=struct.unpack(">I", data[9:13])[0], + chain_code=data[13:45], + public_key=None, + ) key = data[45:-4] if key[0] == 0: diff --git a/tests/device_tests/test_autolock.py b/tests/device_tests/test_autolock.py index 422fa7ca4..a6c29e5e1 100644 --- a/tests/device_tests/test_autolock.py +++ b/tests/device_tests/test_autolock.py @@ -30,9 +30,9 @@ pytestmark = pytest.mark.setup_client(pin=PIN4) def pin_request(client): return ( - messages.PinMatrixRequest() + messages.PinMatrixRequest if client.features.model == "1" - else messages.ButtonRequest() + else messages.ButtonRequest ) @@ -42,9 +42,9 @@ def set_autolock_delay(client, delay): client.set_expected_responses( [ pin_request(client), - messages.ButtonRequest(), - messages.Success(), - messages.Features(), + messages.ButtonRequest, + messages.Success, + messages.Features, ] ) device.apply_settings(client, auto_lock_delay_ms=delay) @@ -56,13 +56,13 @@ def test_apply_auto_lock_delay(client): time.sleep(0.1) # sleep less than auto-lock delay with client: # No PIN protection is required. - client.set_expected_responses([messages.Address()]) + client.set_expected_responses([messages.Address]) get_test_address(client) time.sleep(10.1) # sleep more than auto-lock delay with client: client.use_pin_sequence([PIN4]) - client.set_expected_responses([pin_request(client), messages.Address()]) + client.set_expected_responses([pin_request(client), messages.Address]) get_test_address(client) diff --git a/tests/device_tests/test_basic.py b/tests/device_tests/test_basic.py index 282ac4fa2..4ae83aee3 100644 --- a/tests/device_tests/test_basic.py +++ b/tests/device_tests/test_basic.py @@ -22,7 +22,7 @@ class TestBasic: f0 = client.features # client erases session_id from its features f0.session_id = client.session_id - f1 = client.call(messages.Initialize(client.session_id)) + f1 = client.call(messages.Initialize(session_id=f0.session_id)) assert f0 == f1 def test_ping(self, client): diff --git a/tests/device_tests/test_msg_applysettings.py b/tests/device_tests/test_msg_applysettings.py index adab21120..736b76a0b 100644 --- a/tests/device_tests/test_msg_applysettings.py +++ b/tests/device_tests/test_msg_applysettings.py @@ -167,7 +167,7 @@ class TestMsgApplysettings: with pytest.raises( exceptions.TrezorFailure, match="Forbidden key path" ), client: - client.set_expected_responses([messages.Failure()]) + client.set_expected_responses([messages.Failure]) get_bad_address() with client: @@ -179,9 +179,7 @@ class TestMsgApplysettings: assert client.features.safety_checks == messages.SafetyCheckLevel.PromptAlways with client: - client.set_expected_responses( - [messages.ButtonRequest(), messages.Address()] - ) + client.set_expected_responses([messages.ButtonRequest, messages.Address]) get_bad_address() with client: @@ -195,7 +193,7 @@ class TestMsgApplysettings: with pytest.raises( exceptions.TrezorFailure, match="Forbidden key path" ), client: - client.set_expected_responses([messages.Failure()]) + client.set_expected_responses([messages.Failure]) get_bad_address() with client: @@ -209,7 +207,5 @@ class TestMsgApplysettings: ) with client: - client.set_expected_responses( - [messages.ButtonRequest(), messages.Address()] - ) + client.set_expected_responses([messages.ButtonRequest, messages.Address]) get_bad_address() diff --git a/tests/device_tests/test_msg_authorize_coinjoin.py b/tests/device_tests/test_msg_authorize_coinjoin.py index 9e0ee238d..489f07a82 100644 --- a/tests/device_tests/test_msg_authorize_coinjoin.py +++ b/tests/device_tests/test_msg_authorize_coinjoin.py @@ -61,7 +61,7 @@ def test_sign_tx(client): with client: client.set_expected_responses( - [messages.PreauthorizedRequest(), messages.OwnershipProof()] + [messages.PreauthorizedRequest, messages.OwnershipProof] ) btc.get_ownership_proof( client, @@ -75,7 +75,7 @@ def test_sign_tx(client): with client: client.set_expected_responses( - [messages.PreauthorizedRequest(), messages.OwnershipProof()] + [messages.PreauthorizedRequest, messages.OwnershipProof] ) btc.get_ownership_proof( client, diff --git a/tests/device_tests/test_msg_changepin.py b/tests/device_tests/test_msg_changepin.py index 7ad6c7daa..c766fb7c4 100644 --- a/tests/device_tests/test_msg_changepin.py +++ b/tests/device_tests/test_msg_changepin.py @@ -19,6 +19,8 @@ import pytest from trezorlib import device, messages from trezorlib.exceptions import TrezorFailure +from ..common import get_test_address + PIN4 = "1234" PIN6 = "789456" @@ -30,15 +32,15 @@ def _check_pin(client, pin): client.lock() with client: client.use_pin_sequence([pin]) - client.set_expected_responses([messages.PinMatrixRequest(), messages.Address()]) - client.call(messages.GetAddress()) + client.set_expected_responses([messages.PinMatrixRequest, messages.Address]) + get_test_address(client) def _check_no_pin(client): client.lock() with client: - client.set_expected_responses([messages.Address()]) - client.call(messages.GetAddress()) + client.set_expected_responses([messages.Address]) + get_test_address(client) def test_set_pin(client): @@ -53,10 +55,10 @@ def test_set_pin(client): client.set_expected_responses( [ messages.ButtonRequest(code=messages.ButtonRequestType.ProtectCall), - messages.PinMatrixRequest(), - messages.PinMatrixRequest(), - messages.Success(), - messages.Features(), + messages.PinMatrixRequest, + messages.PinMatrixRequest, + messages.Success, + messages.Features, ] ) device.change_pin(client) @@ -79,11 +81,11 @@ def test_change_pin(client): client.set_expected_responses( [ messages.ButtonRequest(code=messages.ButtonRequestType.ProtectCall), - messages.PinMatrixRequest(), - messages.PinMatrixRequest(), - messages.PinMatrixRequest(), - messages.Success(), - messages.Features(), + messages.PinMatrixRequest, + messages.PinMatrixRequest, + messages.PinMatrixRequest, + messages.Success, + messages.Features, ] ) device.change_pin(client) @@ -106,9 +108,9 @@ def test_remove_pin(client): client.set_expected_responses( [ messages.ButtonRequest(code=messages.ButtonRequestType.ProtectCall), - messages.PinMatrixRequest(), - messages.Success(), - messages.Features(), + messages.PinMatrixRequest, + messages.Success, + messages.Features, ] ) device.change_pin(client, remove=True) @@ -130,9 +132,9 @@ def test_set_mismatch(client): client.set_expected_responses( [ messages.ButtonRequest(code=messages.ButtonRequestType.ProtectCall), - messages.PinMatrixRequest(), - messages.PinMatrixRequest(), - messages.Failure(), + messages.PinMatrixRequest, + messages.PinMatrixRequest, + messages.Failure, ] ) device.change_pin(client) @@ -153,10 +155,10 @@ def test_change_mismatch(client): client.set_expected_responses( [ messages.ButtonRequest(code=messages.ButtonRequestType.ProtectCall), - messages.PinMatrixRequest(), - messages.PinMatrixRequest(), - messages.PinMatrixRequest(), - messages.Failure(), + messages.PinMatrixRequest, + messages.PinMatrixRequest, + messages.PinMatrixRequest, + messages.Failure, ] ) device.change_pin(client) diff --git a/tests/device_tests/test_msg_changepin_t2.py b/tests/device_tests/test_msg_changepin_t2.py index e830e9574..015268729 100644 --- a/tests/device_tests/test_msg_changepin_t2.py +++ b/tests/device_tests/test_msg_changepin_t2.py @@ -33,7 +33,7 @@ def _check_pin(client, pin): with client: client.use_pin_sequence([pin]) - client.set_expected_responses([messages.ButtonRequest(), messages.Address()]) + client.set_expected_responses([messages.ButtonRequest, messages.Address]) btc.get_address(client, "Testnet", PASSPHRASE_TEST_PATH) @@ -42,7 +42,7 @@ def _check_no_pin(client): assert client.features.pin_protection is False with client: - client.set_expected_responses([messages.Address()]) + client.set_expected_responses([messages.Address]) btc.get_address(client, "Testnet", PASSPHRASE_TEST_PATH) @@ -56,7 +56,7 @@ def test_set_pin(client): with client: client.use_pin_sequence([PIN6, PIN6]) client.set_expected_responses( - [messages.ButtonRequest()] * 4 + [messages.Success(), messages.Features()] + [messages.ButtonRequest] * 4 + [messages.Success, messages.Features] ) device.change_pin(client) @@ -76,7 +76,7 @@ def test_change_pin(client): with client: client.use_pin_sequence([PIN4, PIN6, PIN6]) client.set_expected_responses( - [messages.ButtonRequest()] * 5 + [messages.Success(), messages.Features()] + [messages.ButtonRequest] * 5 + [messages.Success, messages.Features] ) device.change_pin(client) @@ -98,7 +98,7 @@ def test_remove_pin(client): with client: client.use_pin_sequence([PIN4]) client.set_expected_responses( - [messages.ButtonRequest()] * 3 + [messages.Success(), messages.Features()] + [messages.ButtonRequest] * 3 + [messages.Success, messages.Features] ) device.change_pin(client, remove=True) @@ -128,9 +128,7 @@ def test_set_failed(client): client.cancel() with client, pytest.raises(Cancelled): - client.set_expected_responses( - [messages.ButtonRequest()] * 4 + [messages.Failure()] - ) + client.set_expected_responses([messages.ButtonRequest] * 4 + [messages.Failure]) client.set_input_flow(input_flow) device.change_pin(client) @@ -164,9 +162,7 @@ def test_change_failed(client): client.cancel() with client, pytest.raises(Cancelled): - client.set_expected_responses( - [messages.ButtonRequest()] * 5 + [messages.Failure()] - ) + client.set_expected_responses([messages.ButtonRequest] * 5 + [messages.Failure]) client.set_input_flow(input_flow) device.change_pin(client) diff --git a/tests/device_tests/test_msg_getaddress.py b/tests/device_tests/test_msg_getaddress.py index cf16cc943..f2545907e 100644 --- a/tests/device_tests/test_msg_getaddress.py +++ b/tests/device_tests/test_msg_getaddress.py @@ -233,7 +233,7 @@ def test_unknown_path(client): messages.ButtonRequest( code=messages.ButtonRequestType.UnknownDerivationPath ), - messages.Address(), + messages.Address, ] ) # account number is too high diff --git a/tests/device_tests/test_msg_getentropy.py b/tests/device_tests/test_msg_getentropy.py index e4a5c58d1..6e8552e91 100644 --- a/tests/device_tests/test_msg_getentropy.py +++ b/tests/device_tests/test_msg_getentropy.py @@ -41,7 +41,7 @@ def entropy(data): def test_entropy(client, entropy_length): with client: client.set_expected_responses( - [m.ButtonRequest(code=m.ButtonRequestType.ProtectCall), m.Entropy()] + [m.ButtonRequest(code=m.ButtonRequestType.ProtectCall), m.Entropy] ) ent = misc.get_entropy(client, entropy_length) assert len(ent) == entropy_length diff --git a/tests/device_tests/test_msg_signtx.py b/tests/device_tests/test_msg_signtx.py index e2b0d099e..2b77a3d6b 100644 --- a/tests/device_tests/test_msg_signtx.py +++ b/tests/device_tests/test_msg_signtx.py @@ -1225,14 +1225,13 @@ class TestMsgSigntx: script_type=messages.OutputScriptType.PAYTOADDRESS, ) - details = messages.SignTx() - setattr(details, field, value) + kwargs = {field: value} name = field.replace("_", " ") with pytest.raises( TrezorFailure, match=r"(?i){} not enabled on this coin".format(name) ): btc.sign_tx( - client, "Bitcoin", [inp0], [out1], details, prev_txes=TX_CACHE_MAINNET + client, "Bitcoin", [inp0], [out1], prev_txes=TX_CACHE_MAINNET, **kwargs ) @pytest.mark.parametrize( @@ -1385,12 +1384,11 @@ class TestMsgSigntx: ] ) - details = messages.SignTx(lock_time=lock_time) btc.sign_tx( client, "Bitcoin", [inp1], [out1], - details=details, + lock_time=lock_time, prev_txes=TX_CACHE_MAINNET, ) diff --git a/tests/device_tests/test_msg_signtx_grs.py b/tests/device_tests/test_msg_signtx_grs.py index ae8895fe6..fcba39b88 100644 --- a/tests/device_tests/test_msg_signtx_grs.py +++ b/tests/device_tests/test_msg_signtx_grs.py @@ -102,13 +102,12 @@ class TestMsgSigntxGRS: amount=123456789 - 11000 - 12300000, script_type=proto.OutputScriptType.PAYTOADDRESS, ) - details = proto.SignTx(lock_time=650756) _, serialized_tx = btc.sign_tx( client, "Groestlcoin Testnet", [inp1], [out1, out2], - details=details, + lock_time=650756, prev_txes=TX_API_TESTNET, ) assert ( @@ -136,13 +135,12 @@ class TestMsgSigntxGRS: script_type=proto.OutputScriptType.PAYTOP2SHWITNESS, amount=123456789 - 11000 - 12300000, ) - details = proto.SignTx(lock_time=650756) _, serialized_tx = btc.sign_tx( client, "Groestlcoin Testnet", [inp1], [out1, out2], - details=details, + lock_time=650756, prev_txes=TX_API_TESTNET, ) assert ( @@ -169,13 +167,12 @@ class TestMsgSigntxGRS: script_type=proto.OutputScriptType.PAYTOADDRESS, amount=12300000 - 11000 - 5000000, ) - details = proto.SignTx(lock_time=650713) _, serialized_tx = btc.sign_tx( client, "Groestlcoin Testnet", [inp1], [out1, out2], - details=details, + lock_time=650713, prev_txes=TX_API_TESTNET, ) assert ( @@ -202,13 +199,12 @@ class TestMsgSigntxGRS: script_type=proto.OutputScriptType.PAYTOWITNESS, amount=12300000 - 11000 - 5000000, ) - details = proto.SignTx(lock_time=650713) _, serialized_tx = btc.sign_tx( client, "Groestlcoin Testnet", [inp1], [out1, out2], - details=details, + lock_time=650713, prev_txes=TX_API_TESTNET, ) assert ( diff --git a/tests/device_tests/test_msg_signtx_komodo.py b/tests/device_tests/test_msg_signtx_komodo.py index 51fae4d95..fd8f8b886 100644 --- a/tests/device_tests/test_msg_signtx_komodo.py +++ b/tests/device_tests/test_msg_signtx_komodo.py @@ -79,14 +79,16 @@ class TestMsgSigntxKomodo: ] ) - details = proto.SignTx( + _, serialized_tx = btc.sign_tx( + client, + "Komodo", + [inp1], + [out1], version=4, version_group_id=0x892F2085, branch_id=0x76B809BB, lock_time=0x5D2A30B8, - ) - _, serialized_tx = btc.sign_tx( - client, "Komodo", [inp1], [out1], details=details, prev_txes=TX_API + prev_txes=TX_API, ) # Accepted by network: tx 7b28bd91119e9776f0d4ebd80e570165818a829bbf4477cd1afe5149dbcd34b1 @@ -142,19 +144,16 @@ class TestMsgSigntxKomodo: ] ) - details = proto.SignTx( - version=4, - version_group_id=0x892F2085, - branch_id=0x76B809BB, - lock_time=0x5D2AF1F2, - ) _, serialized_tx = btc.sign_tx( client, "Komodo", [inp1], [out1, out2], - details=details, prev_txes=TX_API, + version=4, + version_group_id=0x892F2085, + branch_id=0x76B809BB, + lock_time=0x5D2AF1F2, ) # Accepted by network: tx c775678ceb18277729b427c7acf2f8ce63ac02fc2366f47ce08a3f443ff0e059 diff --git a/tests/device_tests/test_msg_signtx_peercoin.py b/tests/device_tests/test_msg_signtx_peercoin.py index e1247e987..74c002130 100644 --- a/tests/device_tests/test_msg_signtx_peercoin.py +++ b/tests/device_tests/test_msg_signtx_peercoin.py @@ -48,9 +48,14 @@ def test_timestamp_included(client): script_type=messages.OutputScriptType.PAYTOADDRESS, ) - details = messages.SignTx(version=1, timestamp=0x5DC5448A) _, timestamp_tx = btc.sign_tx( - client, "Peercoin", [inp1], [out1], details=details, prev_txes=TX_CACHE, + client, + "Peercoin", + [inp1], + [out1], + version=1, + timestamp=0x5DC5448A, + prev_txes=TX_CACHE, ) # Accepted by network https://explorer.peercoin.net/api/getrawtransaction?txid=f7e3624c143b6a170cc44f9337d0fa8ea8564a211de9c077c6889d8c78f80909&decrypt=1 @@ -74,16 +79,26 @@ def test_timestamp_missing(client): script_type=messages.OutputScriptType.PAYTOADDRESS, ) - details = messages.SignTx(version=1, timestamp=None) with pytest.raises(TrezorFailure, match="Timestamp must be set."): btc.sign_tx( - client, "Peercoin", [inp1], [out1], details=details, prev_txes=TX_CACHE, + client, + "Peercoin", + [inp1], + [out1], + version=1, + timestamp=None, + prev_txes=TX_CACHE, ) - details = messages.SignTx(version=1, timestamp=0) with pytest.raises(TrezorFailure, match="Timestamp must be set."): btc.sign_tx( - client, "Peercoin", [inp1], [out1], details=details, prev_txes=TX_CACHE, + client, + "Peercoin", + [inp1], + [out1], + version=1, + timestamp=0, + prev_txes=TX_CACHE, ) @@ -102,7 +117,6 @@ def test_timestamp_missing_prevtx(client): amount=100000 - 10000, script_type=messages.OutputScriptType.PAYTOADDRESS, ) - details = messages.SignTx(version=1, timestamp=0x5DC5448A) prevtx = TX_CACHE[TXHASH_41b29a] prevtx.timestamp = 0 @@ -113,7 +127,8 @@ def test_timestamp_missing_prevtx(client): "Peercoin", [inp1], [out1], - details=details, + version=1, + timestamp=0x5DC5448A, prev_txes={TXHASH_41b29a: prevtx}, ) @@ -124,6 +139,7 @@ def test_timestamp_missing_prevtx(client): "Peercoin", [inp1], [out1], - details=details, + version=1, + timestamp=0x5DC5448A, prev_txes={TXHASH_41b29a: prevtx}, ) diff --git a/tests/device_tests/test_msg_signtx_prevhash.py b/tests/device_tests/test_msg_signtx_prevhash.py index a63da9aba..28cc47e21 100644 --- a/tests/device_tests/test_msg_signtx_prevhash.py +++ b/tests/device_tests/test_msg_signtx_prevhash.py @@ -1,3 +1,4 @@ +import re from hashlib import sha256 from io import BytesIO @@ -61,7 +62,13 @@ def hash_tx(data: bytes) -> bytes: def _check_error_message(value: bytes, model: str, message: str): if model != "1": - assert message == "Provided prev_hash is invalid." + if value is None: + assert re.match( + r"^Failed to decode message: Required field '\w+' was not received$", + message, + ) + else: + assert message == "Provided prev_hash is invalid." return # T1 has several possible errors @@ -90,7 +97,7 @@ def test_invalid_prev_hash(client, prev_hash): ) with pytest.raises(TrezorFailure) as e: - btc.sign_tx(client, "Testnet", [inp1], [out1]) + btc.sign_tx(client, "Testnet", [inp1], [out1], prev_txes={}) _check_error_message(prev_hash, client.features.model, e.value.message) diff --git a/tests/device_tests/test_msg_signtx_zcash.py b/tests/device_tests/test_msg_signtx_zcash.py index 6ca510ff9..e70b9a49c 100644 --- a/tests/device_tests/test_msg_signtx_zcash.py +++ b/tests/device_tests/test_msg_signtx_zcash.py @@ -75,19 +75,17 @@ class TestMsgSigntxZcash: script_type=proto.OutputScriptType.PAYTOADDRESS, ) - with client: - details = proto.SignTx( - version=3, version_group_id=0x03C48270, branch_id=0x5BA81B19, + with client, pytest.raises(TrezorFailure, match="DataError"): + btc.sign_tx( + client, + "Zcash Testnet", + [inp1], + [out1], + version=3, + version_group_id=0x03C48270, + branch_id=0x5BA81B19, + prev_txes=TX_API, ) - with pytest.raises(TrezorFailure, match="DataError"): - _, serialized_tx = btc.sign_tx( - client, - "Zcash Testnet", - [inp1], - [out1], - details=details, - prev_txes=TX_API, - ) def test_one_one_fee_sapling(self, client): # prevout: e3820602226974b1dd87b7113cc8aea8c63e5ae29293991e7bfa80c126930368:0 @@ -127,15 +125,14 @@ class TestMsgSigntxZcash: ] ) - details = proto.SignTx( - version=4, version_group_id=0x892F2085, branch_id=0x76B809BB, - ) _, serialized_tx = btc.sign_tx( client, "Zcash Testnet", [inp1], [out1], - details=details, + version=4, + version_group_id=0x892F2085, + branch_id=0x76B809BB, prev_txes=TX_API, ) @@ -160,15 +157,9 @@ class TestMsgSigntxZcash: script_type=proto.OutputScriptType.PAYTOADDRESS, ) - details = proto.SignTx(version=4) with pytest.raises(TrezorFailure, match="Version group ID must be set."): btc.sign_tx( - client, - "Zcash Testnet", - [inp1], - [out1], - details=details, - prev_txes=TX_API, + client, "Zcash Testnet", [inp1], [out1], version=4, prev_txes=TX_API, ) def test_spend_old_versions(self, client): @@ -210,17 +201,15 @@ class TestMsgSigntxZcash: script_type=proto.OutputScriptType.PAYTOADDRESS, ) - details = proto.SignTx( - version=4, version_group_id=0x892F2085, branch_id=0x76B809BB, - ) - with client: _, serialized_tx = btc.sign_tx( client, "Zcash Testnet", inputs, [output], - details=details, + version=4, + version_group_id=0x892F2085, + branch_id=0x76B809BB, prev_txes=TX_API, ) @@ -285,15 +274,14 @@ class TestMsgSigntxZcash: ] ) - details = proto.SignTx( - version=4, version_group_id=0x892F2085, branch_id=0x76B809BB, - ) _, serialized_tx = btc.sign_tx( client, "Zcash Testnet", [inp1, inp2], [out1], - details=details, + version=4, + version_group_id=0x892F2085, + branch_id=0x76B809BB, prev_txes=TX_API, ) diff --git a/tests/device_tests/test_msg_stellar_sign_transaction.py b/tests/device_tests/test_msg_stellar_sign_transaction.py index 1f194a3b1..484c3d8a2 100644 --- a/tests/device_tests/test_msg_stellar_sign_transaction.py +++ b/tests/device_tests/test_msg_stellar_sign_transaction.py @@ -150,7 +150,7 @@ def test_sign_tx_payment_op_native_explicit_asset(client): op = messages.StellarPaymentOp() op.amount = 500111000 op.destination_account = "GBOVKZBEM2YYLOCDCUXJ4IMRKHN4LCJAE7WEAEA2KF562XFAGDBOB64V" - op.asset = messages.StellarAssetType(0) + op.asset = messages.StellarAssetType(type=0) tx = _create_msg() @@ -171,7 +171,9 @@ def test_sign_tx_payment_op_custom_asset1(client): op.destination_account = "GBOVKZBEM2YYLOCDCUXJ4IMRKHN4LCJAE7WEAEA2KF562XFAGDBOB64V" op.asset = messages.StellarAssetType( - 1, "X", "GAUYJFQCYIHFQNS7CI6BFWD2DSSFKDIQZUQ3BLQODDKE4PSW7VVBKENC" + type=1, + code="X", + issuer="GAUYJFQCYIHFQNS7CI6BFWD2DSSFKDIQZUQ3BLQODDKE4PSW7VVBKENC", ) tx = _create_msg() @@ -192,7 +194,9 @@ def test_sign_tx_payment_op_custom_asset12(client): op.destination_account = "GBOVKZBEM2YYLOCDCUXJ4IMRKHN4LCJAE7WEAEA2KF562XFAGDBOB64V" op.asset = messages.StellarAssetType( - 2, "ABCDEFGHIJKL", "GAUYJFQCYIHFQNS7CI6BFWD2DSSFKDIQZUQ3BLQODDKE4PSW7VVBKENC" + type=2, + code="ABCDEFGHIJKL", + issuer="GAUYJFQCYIHFQNS7CI6BFWD2DSSFKDIQZUQ3BLQODDKE4PSW7VVBKENC", ) tx = _create_msg() diff --git a/tests/device_tests/test_protect_call.py b/tests/device_tests/test_protect_call.py index 65a8561c4..43ba42326 100644 --- a/tests/device_tests/test_protect_call.py +++ b/tests/device_tests/test_protect_call.py @@ -18,7 +18,7 @@ import time import pytest -from trezorlib import btc, messages as proto +from trezorlib import btc, messages from trezorlib.exceptions import PinException # FIXME TODO Add passphrase tests @@ -33,14 +33,14 @@ class TestProtectCall: def test_no_protection(self, client): with client: - client.set_expected_responses([proto.Address()]) + client.set_expected_responses([messages.Address]) self._some_protected_call(client) @pytest.mark.setup_client(pin="1234") def test_pin(self, client): with client: client.use_pin_sequence(["1234"]) - client.set_expected_responses([proto.PinMatrixRequest(), proto.Address()]) + client.set_expected_responses([messages.PinMatrixRequest, messages.Address]) self._some_protected_call(client) @pytest.mark.setup_client(pin="1234") diff --git a/tests/device_tests/test_protection_levels.py b/tests/device_tests/test_protection_levels.py index 54e44207a..961ec28f8 100644 --- a/tests/device_tests/test_protection_levels.py +++ b/tests/device_tests/test_protection_levels.py @@ -16,14 +16,14 @@ import pytest -from trezorlib import btc, device, messages as proto, misc +from trezorlib import btc, device, messages, misc from trezorlib.exceptions import TrezorFailure from ..common import MNEMONIC12 from ..tx_cache import TxCache from .signtx import request_finished, request_input, request_meta, request_output -B = proto.ButtonRequestType +B = messages.ButtonRequestType TXHASH_d5f65e = bytes.fromhex( "d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882" @@ -37,7 +37,7 @@ class TestProtectionLevels: @pytest.mark.setup_client(pin=PIN4, passphrase=True) def test_initialize(self, client): with client: - client.set_expected_responses([proto.Features()]) + client.set_expected_responses([messages.Features]) client.init_device() @pytest.mark.setup_client(pin=PIN4, passphrase=True) @@ -46,10 +46,10 @@ class TestProtectionLevels: client.use_pin_sequence([PIN4]) client.set_expected_responses( [ - proto.PinMatrixRequest(), - proto.ButtonRequest(), - proto.Success(), - proto.Features(), + messages.PinMatrixRequest, + messages.ButtonRequest, + messages.Success, + messages.Features, ] ) # TrezorClient reinitializes device device.apply_settings(client, label="nazdar") @@ -60,25 +60,25 @@ class TestProtectionLevels: client.use_pin_sequence([PIN4, PIN4, PIN4]) client.set_expected_responses( [ - proto.ButtonRequest(), - proto.PinMatrixRequest(), - proto.PinMatrixRequest(), - proto.PinMatrixRequest(), - proto.Success(), - proto.Features(), + messages.ButtonRequest, + messages.PinMatrixRequest, + messages.PinMatrixRequest, + messages.PinMatrixRequest, + messages.Success, + messages.Features, ] ) device.change_pin(client) def test_ping(self, client): with client: - client.set_expected_responses([proto.ButtonRequest(), proto.Success()]) + client.set_expected_responses([messages.ButtonRequest, messages.Success]) client.ping("msg", True) @pytest.mark.setup_client(pin=PIN4, passphrase=True) def test_get_entropy(self, client): with client: - client.set_expected_responses([proto.ButtonRequest(), proto.Entropy()]) + client.set_expected_responses([messages.ButtonRequest, messages.Entropy]) misc.get_entropy(client, 10) @pytest.mark.setup_client(pin=PIN4, passphrase=True) @@ -86,7 +86,11 @@ class TestProtectionLevels: with client: client.use_pin_sequence([PIN4]) client.set_expected_responses( - [proto.PinMatrixRequest(), proto.PassphraseRequest(), proto.PublicKey()] + [ + messages.PinMatrixRequest, + messages.PassphraseRequest, + messages.PublicKey, + ] ) btc.get_public_node(client, []) @@ -95,7 +99,11 @@ class TestProtectionLevels: with client: client.use_pin_sequence([PIN4]) client.set_expected_responses( - [proto.PinMatrixRequest(), proto.PassphraseRequest(), proto.Address()] + [ + messages.PinMatrixRequest, + messages.PassphraseRequest, + messages.Address, + ] ) btc.get_address(client, "Bitcoin", []) @@ -103,7 +111,7 @@ class TestProtectionLevels: def test_wipe_device(self, client): with client: client.set_expected_responses( - [proto.ButtonRequest(), proto.Success(), proto.Features()] + [messages.ButtonRequest, messages.Success, messages.Features] ) device.wipe(client) @@ -111,10 +119,10 @@ class TestProtectionLevels: def test_reset_device(self, client): with client: client.set_expected_responses( - [proto.ButtonRequest()] - + [proto.EntropyRequest()] - + [proto.ButtonRequest()] * 24 - + [proto.Success(), proto.Features()] + [messages.ButtonRequest] + + [messages.EntropyRequest] + + [messages.ButtonRequest] * 24 + + [messages.Success, messages.Features] ) device.reset(client, False, 128, True, False, "label", "en-US") @@ -122,7 +130,7 @@ class TestProtectionLevels: # This must fail, because device is already initialized # Using direct call because `device.reset` has its own check client.call( - proto.ResetDevice( + messages.ResetDevice( display_random=False, strength=128, passphrase_protection=True, @@ -137,9 +145,9 @@ class TestProtectionLevels: client.use_mnemonic(MNEMONIC12) with client: client.set_expected_responses( - [proto.ButtonRequest()] - + [proto.WordRequest()] * 24 - + [proto.Success(), proto.Features()] + [messages.ButtonRequest] + + [messages.WordRequest] * 24 + + [messages.Success, messages.Features] ) device.recover( @@ -150,7 +158,7 @@ class TestProtectionLevels: # This must fail, because device is already initialized # Using direct call because `device.reset` has its own check client.call( - proto.RecoveryDevice( + messages.RecoveryDevice( word_count=12, passphrase_protection=False, pin_protection=False, @@ -165,10 +173,10 @@ class TestProtectionLevels: client.use_pin_sequence([PIN4]) client.set_expected_responses( [ - proto.ButtonRequest(), - proto.PinMatrixRequest(), - proto.PassphraseRequest(), - proto.MessageSignature(), + messages.ButtonRequest, + messages.PinMatrixRequest, + messages.PassphraseRequest, + messages.MessageSignature, ] ) btc.sign_message(client, "Bitcoin", [], "testing message") @@ -177,7 +185,7 @@ class TestProtectionLevels: def test_verify_message(self, client): with client: client.set_expected_responses( - [proto.ButtonRequest(), proto.ButtonRequest(), proto.Success()] + [messages.ButtonRequest, messages.ButtonRequest, messages.Success] ) btc.verify_message( client, @@ -191,17 +199,17 @@ class TestProtectionLevels: @pytest.mark.setup_client(pin=PIN4, passphrase=True) def test_signtx(self, client): - inp1 = proto.TxInputType( + inp1 = messages.TxInputType( address_n=[0], # 14LmW5k4ssUrtbAB4255zdqv3b4w1TuX9e prev_hash=TXHASH_d5f65e, prev_index=0, amount=390000, ) - out1 = proto.TxOutputType( + out1 = messages.TxOutputType( address="1MJ2tj2ThBE62zXbBYA5ZaN3fdve5CPAz1", amount=390000 - 10000, - script_type=proto.OutputScriptType.PAYTOADDRESS, + script_type=messages.OutputScriptType.PAYTOADDRESS, ) with client: @@ -209,12 +217,12 @@ class TestProtectionLevels: client.use_pin_sequence([PIN4]) client.set_expected_responses( [ - proto.PinMatrixRequest(), - proto.PassphraseRequest(), + messages.PinMatrixRequest, + messages.PassphraseRequest, request_input(0), request_output(0), - proto.ButtonRequest(code=B.ConfirmOutput), - proto.ButtonRequest(code=B.SignTx), + messages.ButtonRequest(code=B.ConfirmOutput), + messages.ButtonRequest(code=B.SignTx), request_input(0), request_meta(TXHASH_d5f65e), request_input(0, TXHASH_d5f65e), @@ -240,21 +248,23 @@ class TestProtectionLevels: with client: client.use_pin_sequence([PIN4]) - client.set_expected_responses([proto.PinMatrixRequest(), proto.Address()]) + client.set_expected_responses([messages.PinMatrixRequest, messages.Address]) btc.get_address(client, "Testnet", [0]) client.init_device() assert client.features.unlocked is True with client: - client.set_expected_responses([proto.Address()]) + client.set_expected_responses([messages.Address]) btc.get_address(client, "Testnet", [0]) @pytest.mark.setup_client(passphrase=True) def test_passphrase_cached(self, client): with client: - client.set_expected_responses([proto.PassphraseRequest(), proto.Address()]) + client.set_expected_responses( + [messages.PassphraseRequest, messages.Address] + ) btc.get_address(client, "Testnet", [0]) with client: - client.set_expected_responses([proto.Address()]) + client.set_expected_responses([messages.Address]) btc.get_address(client, "Testnet", [0]) diff --git a/tests/device_tests/test_session.py b/tests/device_tests/test_session.py index 058c88b18..b1320a9d1 100644 --- a/tests/device_tests/test_session.py +++ b/tests/device_tests/test_session.py @@ -34,11 +34,11 @@ PIN4 = "1234" def test_clear_session(client): is_trezor1 = client.features.model == "1" init_responses = [ - messages.PinMatrixRequest() if is_trezor1 else messages.ButtonRequest(), - messages.PassphraseRequest(), + messages.PinMatrixRequest if is_trezor1 else messages.ButtonRequest, + messages.PassphraseRequest, ] - cached_responses = [messages.PublicKey()] + cached_responses = [messages.PublicKey] with client: client.use_pin_sequence([PIN4]) @@ -72,7 +72,7 @@ def test_end_session(client): # get_address will succeed with client: - client.set_expected_responses([messages.Address()]) + client.set_expected_responses([messages.Address]) get_test_address(client) client.end_session() @@ -85,12 +85,12 @@ def test_end_session(client): client.init_device() assert client.session_id is not None with client: - client.set_expected_responses([messages.Address()]) + client.set_expected_responses([messages.Address]) get_test_address(client) with client: # end_session should succeed on empty session too - client.set_expected_responses([messages.Success()] * 2) + client.set_expected_responses([messages.Success] * 2) client.end_session() client.end_session() @@ -99,14 +99,14 @@ def test_end_session(client): def test_cannot_resume_ended_session(client): session_id = client.session_id with client: - client.set_expected_responses([messages.Features()]) + client.set_expected_responses([messages.Features]) client.init_device(session_id=session_id) assert session_id == client.session_id client.end_session() with client: - client.set_expected_responses([messages.Features()]) + client.set_expected_responses([messages.Features]) client.init_device(session_id=session_id) assert session_id != client.session_id @@ -138,10 +138,10 @@ def test_session_recycling(client): with client: client.set_expected_responses( [ - messages.PassphraseRequest(), - messages.ButtonRequest(), - messages.ButtonRequest(), - messages.Address(), + messages.PassphraseRequest, + messages.ButtonRequest, + messages.ButtonRequest, + messages.Address, ] ) client.use_passphrase("TREZOR") @@ -155,7 +155,7 @@ def test_session_recycling(client): # it should still be possible to resume the original session with client: # passphrase should still be cached - client.set_expected_responses([messages.Features(), messages.Address()]) + client.set_expected_responses([messages.Features, messages.Address]) client.use_passphrase("TREZOR") client.init_device(session_id=session_id_orig) assert address == get_test_address(client) diff --git a/tests/device_tests/test_session_id_and_passphrase.py b/tests/device_tests/test_session_id_and_passphrase.py index 6aefa9ffd..0f5247673 100644 --- a/tests/device_tests/test_session_id_and_passphrase.py +++ b/tests/device_tests/test_session_id_and_passphrase.py @@ -365,7 +365,7 @@ def test_passphrase_length(client): response = client.call_raw(XPUB_REQUEST) assert isinstance(response, messages.PassphraseRequest) try: - response = client.call(messages.PassphraseAck(passphrase)) + response = client.call(messages.PassphraseAck(passphrase=passphrase)) assert expected_result is True, "Call should have failed" assert isinstance(response, messages.PublicKey) except exceptions.TrezorFailure as e: diff --git a/tests/txcache/bitcoin/1570416eb4302cf52979afd5e6909e37d8fdd874301f7cc87e547e509cb1caa6.json b/tests/txcache/bitcoin/1570416eb4302cf52979afd5e6909e37d8fdd874301f7cc87e547e509cb1caa6.json index ffdc7a6d8..81ea5743c 100644 --- a/tests/txcache/bitcoin/1570416eb4302cf52979afd5e6909e37d8fdd874301f7cc87e547e509cb1caa6.json +++ b/tests/txcache/bitcoin/1570416eb4302cf52979afd5e6909e37d8fdd874301f7cc87e547e509cb1caa6.json @@ -17,5 +17,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 2 } diff --git a/tests/txcache/bitcoin/39a29e954977662ab3879c66fb251ef753e0912223a83d1dcb009111d28265e5.json b/tests/txcache/bitcoin/39a29e954977662ab3879c66fb251ef753e0912223a83d1dcb009111d28265e5.json index c0f0e1920..f98a66212 100644 --- a/tests/txcache/bitcoin/39a29e954977662ab3879c66fb251ef753e0912223a83d1dcb009111d28265e5.json +++ b/tests/txcache/bitcoin/39a29e954977662ab3879c66fb251ef753e0912223a83d1dcb009111d28265e5.json @@ -17,5 +17,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/bitcoin/4a7b7e0403ae5607e473949cfa03f09f2cd8b0f404bf99ce10b7303d86280bf7.json b/tests/txcache/bitcoin/4a7b7e0403ae5607e473949cfa03f09f2cd8b0f404bf99ce10b7303d86280bf7.json index 3369f0ff6..c24fc2bf7 100644 --- a/tests/txcache/bitcoin/4a7b7e0403ae5607e473949cfa03f09f2cd8b0f404bf99ce10b7303d86280bf7.json +++ b/tests/txcache/bitcoin/4a7b7e0403ae5607e473949cfa03f09f2cd8b0f404bf99ce10b7303d86280bf7.json @@ -415,5 +415,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/bitcoin/50f6f1209ca92d7359564be803cb2c932cde7d370f7cee50fd1fad6790f6206d.json b/tests/txcache/bitcoin/50f6f1209ca92d7359564be803cb2c932cde7d370f7cee50fd1fad6790f6206d.json index 1ddfd8b54..d566a86be 100644 --- a/tests/txcache/bitcoin/50f6f1209ca92d7359564be803cb2c932cde7d370f7cee50fd1fad6790f6206d.json +++ b/tests/txcache/bitcoin/50f6f1209ca92d7359564be803cb2c932cde7d370f7cee50fd1fad6790f6206d.json @@ -17,5 +17,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/bitcoin/54aa5680dea781f45ebb536e53dffc526d68c0eb5c00547e323b2c32382dfba3.json b/tests/txcache/bitcoin/54aa5680dea781f45ebb536e53dffc526d68c0eb5c00547e323b2c32382dfba3.json index 641f82805..6b653110b 100644 --- a/tests/txcache/bitcoin/54aa5680dea781f45ebb536e53dffc526d68c0eb5c00547e323b2c32382dfba3.json +++ b/tests/txcache/bitcoin/54aa5680dea781f45ebb536e53dffc526d68c0eb5c00547e323b2c32382dfba3.json @@ -17,5 +17,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/bitcoin/58497a7757224d1ff1941488d23087071103e5bf855f4c1c44e5c8d9d82ca46e.json b/tests/txcache/bitcoin/58497a7757224d1ff1941488d23087071103e5bf855f4c1c44e5c8d9d82ca46e.json index fdccb483d..46d5d101d 100644 --- a/tests/txcache/bitcoin/58497a7757224d1ff1941488d23087071103e5bf855f4c1c44e5c8d9d82ca46e.json +++ b/tests/txcache/bitcoin/58497a7757224d1ff1941488d23087071103e5bf855f4c1c44e5c8d9d82ca46e.json @@ -17,5 +17,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/bitcoin/6189e3febb5a21cee8b725aa1ef04ffce7e609448446d3a8d6f483c634ef5315.json b/tests/txcache/bitcoin/6189e3febb5a21cee8b725aa1ef04ffce7e609448446d3a8d6f483c634ef5315.json index e500b2e44..b0479a7cb 100644 --- a/tests/txcache/bitcoin/6189e3febb5a21cee8b725aa1ef04ffce7e609448446d3a8d6f483c634ef5315.json +++ b/tests/txcache/bitcoin/6189e3febb5a21cee8b725aa1ef04ffce7e609448446d3a8d6f483c634ef5315.json @@ -17,5 +17,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/bitcoin/c6091adf4c0c23982a35899a6e58ae11e703eacd7954f588ed4b9cdefc4dba52.json b/tests/txcache/bitcoin/c6091adf4c0c23982a35899a6e58ae11e703eacd7954f588ed4b9cdefc4dba52.json index 882b6730e..127b8effd 100644 --- a/tests/txcache/bitcoin/c6091adf4c0c23982a35899a6e58ae11e703eacd7954f588ed4b9cdefc4dba52.json +++ b/tests/txcache/bitcoin/c6091adf4c0c23982a35899a6e58ae11e703eacd7954f588ed4b9cdefc4dba52.json @@ -17,5 +17,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/bitcoin/c63e24ed820c5851b60c54613fbc4bcb37df6cd49b4c96143e99580a472f79fb.json b/tests/txcache/bitcoin/c63e24ed820c5851b60c54613fbc4bcb37df6cd49b4c96143e99580a472f79fb.json index fed2cea2c..0beacc445 100644 --- a/tests/txcache/bitcoin/c63e24ed820c5851b60c54613fbc4bcb37df6cd49b4c96143e99580a472f79fb.json +++ b/tests/txcache/bitcoin/c63e24ed820c5851b60c54613fbc4bcb37df6cd49b4c96143e99580a472f79fb.json @@ -23,5 +23,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/bitcoin/c6be22d34946593bcad1d2b013e12f74159e69574ffea21581dad115572e031c.json b/tests/txcache/bitcoin/c6be22d34946593bcad1d2b013e12f74159e69574ffea21581dad115572e031c.json index 4c25c9682..6b2440c21 100644 --- a/tests/txcache/bitcoin/c6be22d34946593bcad1d2b013e12f74159e69574ffea21581dad115572e031c.json +++ b/tests/txcache/bitcoin/c6be22d34946593bcad1d2b013e12f74159e69574ffea21581dad115572e031c.json @@ -17,5 +17,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/bitcoin/d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882.json b/tests/txcache/bitcoin/d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882.json index 4fce0be22..599645d9c 100644 --- a/tests/txcache/bitcoin/d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882.json +++ b/tests/txcache/bitcoin/d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882.json @@ -19,5 +19,6 @@ "sequence": 4294967295 } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/komodo/2807c5b126ec8e2b078cab0f12e4c8b4ce1d7724905f8ebef8dca26b0c8e0f1d.json b/tests/txcache/komodo/2807c5b126ec8e2b078cab0f12e4c8b4ce1d7724905f8ebef8dca26b0c8e0f1d.json index 3b8cfb2f9..06539a209 100644 --- a/tests/txcache/komodo/2807c5b126ec8e2b078cab0f12e4c8b4ce1d7724905f8ebef8dca26b0c8e0f1d.json +++ b/tests/txcache/komodo/2807c5b126ec8e2b078cab0f12e4c8b4ce1d7724905f8ebef8dca26b0c8e0f1d.json @@ -6,6 +6,7 @@ } ], "branch_id": 1991772603, + "extra_data": "0000000000000000000000", "inputs": [ { "prev_hash": "340d478f0c5750057d5f5028db8c10993578849e63f5cf8500e33ddefcd5334f", @@ -14,7 +15,6 @@ "sequence": 4294967295 } ], - "extra_data": "0000000000000000000000", "lock_time": 0, "version": 4, "version_group_id": 2301567109 diff --git a/tests/txcache/komodo/7b28bd91119e9776f0d4ebd80e570165818a829bbf4477cd1afe5149dbcd34b1.json b/tests/txcache/komodo/7b28bd91119e9776f0d4ebd80e570165818a829bbf4477cd1afe5149dbcd34b1.json index 8d34ffb0c..c4f90af42 100644 --- a/tests/txcache/komodo/7b28bd91119e9776f0d4ebd80e570165818a829bbf4477cd1afe5149dbcd34b1.json +++ b/tests/txcache/komodo/7b28bd91119e9776f0d4ebd80e570165818a829bbf4477cd1afe5149dbcd34b1.json @@ -6,6 +6,7 @@ } ], "branch_id": 1991772603, + "extra_data": "0000000000000000000000", "inputs": [ { "prev_hash": "2807c5b126ec8e2b078cab0f12e4c8b4ce1d7724905f8ebef8dca26b0c8e0f1d", @@ -14,7 +15,6 @@ "sequence": 4294967295 } ], - "extra_data": "0000000000000000000000", "lock_time": 1563046072, "version": 4, "version_group_id": 2301567109 diff --git a/tests/txcache/testnet/dee13c469e7ab28108a1ce470d74cb40896d9bb459951bdf590ca6a495293a02.json b/tests/txcache/testnet/dee13c469e7ab28108a1ce470d74cb40896d9bb459951bdf590ca6a495293a02.json index 582d0d6c6..c57b4f227 100644 --- a/tests/txcache/testnet/dee13c469e7ab28108a1ce470d74cb40896d9bb459951bdf590ca6a495293a02.json +++ b/tests/txcache/testnet/dee13c469e7ab28108a1ce470d74cb40896d9bb459951bdf590ca6a495293a02.json @@ -5,5 +5,6 @@ "script_pubkey": "4d7920686f76657263726166742069732066756c6c206f662065656c732e" } ], + "lock_time": 0, "version": 1 } diff --git a/tests/txcache/zcash_testnet/03d30e19959d46d62ac796b8b23497b8c5700c59c4c75e1dbce7b8de49e242ef.json b/tests/txcache/zcash_testnet/03d30e19959d46d62ac796b8b23497b8c5700c59c4c75e1dbce7b8de49e242ef.json index 88f4b1b44..8c1f800a3 100644 --- a/tests/txcache/zcash_testnet/03d30e19959d46d62ac796b8b23497b8c5700c59c4c75e1dbce7b8de49e242ef.json +++ b/tests/txcache/zcash_testnet/03d30e19959d46d62ac796b8b23497b8c5700c59c4c75e1dbce7b8de49e242ef.json @@ -5,6 +5,7 @@ "script_pubkey": "76a914e41d2725ac1a94bede7a3fc22bc947868d256b0388ac" } ], + "extra_data": "0180f0fa0200000000000000000000000066e62d5418432ebcbeaeeaeeb15e94722f2ce3173cb8b43ee5a0f2bb46f18b2f3605fc432aee5015c2c60572243cb2bf8e77b8ce8813d08f48edaf8791df1353f6ed6c64dcf85d4cd0d4414f8531fc863b9948a6fb9a369a6e7c40906bca6fdb6b1f4f9bdebbd822e4370096643bd7861150d60b8dc12312a10dd6fb44cbb5764c51344af3e86d62325aa74145aac20bfd953ea1cc17bfefb1b8e4d530d9b15885191ecd9fc987d7238695ef7d0d38d2b64ed24186775aa3dfe543719b0b7e14bfc671ed1164f3bbd9a4e267bde1755b4225ca4633e0eedc61c4e2248a30ed80b24918cb5ec731a6f1bfbe23425028dfb1f850457f11489759eb58de1a06b451fd2582297374f22ae9b1461fc43ba79ac8e627406089abc1f4438d4bd603abce02124acd18e700ea56a4f3f58d00b58382a1927f2fd01ee5cd17207b3b0bfe00420304dc301df522a86848e675de19c66d4bc9759a653d1247a702366bbfc4ba81870b019d7378d397e6641f16c59c1d4b5da05721adea8563cfc79b3d23976548d37364fa88491593486e7877eb12ccf059b7aed248da9466c18d38dd1609163be9390215c7b3f51f82a126ecb8e6d358b413d836a7850f76044bacb04723081749e78b032249746dfb23dd24ed0d8a21185891483271b60de85ef1bf30b22c7c73ca737a0310405169f78ac0781a15b746cf47c97ce741949d31abaf41f3c6500bcb0dfe0f022b133298b4b11f2be2c12e6f0f622259c46eca07dd57df13c9720da8d5253094020c9a6fc4140831e99c57acc7b52cda69170dd58ceb60841c7e826503d0580c227bf438fd2925094b9545d60d048c2b65e7d8895fb2dda28a38a6460b2b8344186e177cc3f8d00277795728caeed3331a11ac4bdceddd77afeabb4d2e6570b7e3a3d7dfd4c645921f4bf2316054dbfe919d25cecda56ee049667a1edb8b4e24fe067de6f90a9a232a0ec2921c445fca7d208e656e3ab439b42dc81c278bd068bebb97ec2732635d88af856198a9ae9aa0e4ac26b0b8110c1c2ed67152ef40694cc565a83e39962a56ada4a355371632cc10b8aa8c2cfb076a6ea704db19bec85ddfec66454f70bd79b395108f8cd0db287d8f60fdb0d901debc5a5d9fffedc7780e22553f7c450fc148ccddb24b889d75a53e705c7604ae8167641a6e0f1e2a62706cf3b97f8c31b58f85cd20dd956bd8249085f5fa17c9f48361146ae92bf5814dc17e3b55a860be4812390fb6c6188e46f52cfdcf8e7124bd13a7a893b3cd938606c62e83e06ee41cc88c1c402dd8680f37bd328aa84771aa1f9507ab8be11409c7b9af1eb7ff56fd3c271f7590cf7369f57c899c190d22bdaed445e0149a53f8c2cf36d4c038b76a57841d583d100701a8eae12339d997d43b2e2f1ee3bfedcb63818f93461eaf60265f2e511075452ac2c93503b455cbbf0f7ade7eb5fe762f58af97e15b90c79793ee7d6b6dc13a84a5ae21066d4f658aa011247eccf4da44a720dcf6a07c48f67c36259189d93fe63e75cf01a5da0ae856c1c92e1aa9ede062e173c204ae9a7de52c2a2f177da8be275b6b06aad158c12e9c561fbd00dfe576637423edfa1ce0089ef924431f97867c94650cd1760dc64b0e03783c24ad786fa1182d883a77f33d615fe515d8ec7960ebb6dc135b65964a8dae67d9f358eef343dbb2d010f143828234fd351bd8cc4f4d5a06be3c0469428d3d17dd99d565a450057ad6782765e0b4116b54c2de545dc7737849ef0d6a1fc07401b7346ce8c3c46e8d34e17221ba9244da866d9dc5a1e89d9ef1a536a925990c40e0d7bff27a7f2c673cd157ce95178107f3db887d5aaef29aed158a7267bc636fe0fd0c1767c5f70b7ac87a7593fbf6201dd0fa2037e35b5d2ea57ebbba1c72148a6b307b72ab0f449e492d0b36ba6a349163b7e2f7570e71bc068de097d3fff3f30eb0014ad4357fcc8eb99a9a144ecf53d85cc1edc100f22429c70679afd4d08e4d0f4b9008a3c7f360d99851308633fa36bffe608c01e008756611d193bd6a07b47453e4cc7b7c499741ae9703c433c87216976c52f4b656090d2b3988ba6ec625c2047e1e1e19a7a0b7e0dbb17af290b23d8d74f55149353425eb6be85e492272669842673bb5e7b91a68c8eaaba9ca8bf84769b82d127f0a555b328e6b2001488d0d9e812656320610f5210e31349ce056d0294e6afda9532aaa1620e55cbf7e2a292ce53a47ea0f35fee219e666f78628d0efd238a8f128e5f0e668f6fcbc5b214c69c0adfa072f3fba8f9d1150473e539e12dceb72615b04e99ff2d68e5491228edbe893f6218a1b0634ac1b5368dddb64d7979a2e07c62422add5c92731d261c83f584333525c2f7294b5d1ad5e68d952e0748228feb9695a6d20acdb26b7ad44c1860a519ce040dc2e154ef0d03c09a55da09094746cd2b8ad04e625090155bb838e1b6941919b38054e75e4dfc9042efed1353d7eaafa0f566ea092d6d2c0075cf5009763ab1e38f6239d54f85b4fcd25726b9aa98f4f1a05b672a7012ed603d0e14bbe8bf2456c630c8e7709799911eb736a48517dabcb3709a2986616c156e8f87244c523dd44314cacb70a74c743a447214c66e2bf862c0ea5270ec9f9e564f6632045ab74a9905fe93a292abe7500", "inputs": [ { "prev_hash": "2036b9e0be36ba6290b4c4620977bf5651bb0fe2a98a8c91209e63871fbc36df", @@ -13,6 +14,6 @@ "sequence": 4294967295 } ], - "extra_data": "0180f0fa0200000000000000000000000066e62d5418432ebcbeaeeaeeb15e94722f2ce3173cb8b43ee5a0f2bb46f18b2f3605fc432aee5015c2c60572243cb2bf8e77b8ce8813d08f48edaf8791df1353f6ed6c64dcf85d4cd0d4414f8531fc863b9948a6fb9a369a6e7c40906bca6fdb6b1f4f9bdebbd822e4370096643bd7861150d60b8dc12312a10dd6fb44cbb5764c51344af3e86d62325aa74145aac20bfd953ea1cc17bfefb1b8e4d530d9b15885191ecd9fc987d7238695ef7d0d38d2b64ed24186775aa3dfe543719b0b7e14bfc671ed1164f3bbd9a4e267bde1755b4225ca4633e0eedc61c4e2248a30ed80b24918cb5ec731a6f1bfbe23425028dfb1f850457f11489759eb58de1a06b451fd2582297374f22ae9b1461fc43ba79ac8e627406089abc1f4438d4bd603abce02124acd18e700ea56a4f3f58d00b58382a1927f2fd01ee5cd17207b3b0bfe00420304dc301df522a86848e675de19c66d4bc9759a653d1247a702366bbfc4ba81870b019d7378d397e6641f16c59c1d4b5da05721adea8563cfc79b3d23976548d37364fa88491593486e7877eb12ccf059b7aed248da9466c18d38dd1609163be9390215c7b3f51f82a126ecb8e6d358b413d836a7850f76044bacb04723081749e78b032249746dfb23dd24ed0d8a21185891483271b60de85ef1bf30b22c7c73ca737a0310405169f78ac0781a15b746cf47c97ce741949d31abaf41f3c6500bcb0dfe0f022b133298b4b11f2be2c12e6f0f622259c46eca07dd57df13c9720da8d5253094020c9a6fc4140831e99c57acc7b52cda69170dd58ceb60841c7e826503d0580c227bf438fd2925094b9545d60d048c2b65e7d8895fb2dda28a38a6460b2b8344186e177cc3f8d00277795728caeed3331a11ac4bdceddd77afeabb4d2e6570b7e3a3d7dfd4c645921f4bf2316054dbfe919d25cecda56ee049667a1edb8b4e24fe067de6f90a9a232a0ec2921c445fca7d208e656e3ab439b42dc81c278bd068bebb97ec2732635d88af856198a9ae9aa0e4ac26b0b8110c1c2ed67152ef40694cc565a83e39962a56ada4a355371632cc10b8aa8c2cfb076a6ea704db19bec85ddfec66454f70bd79b395108f8cd0db287d8f60fdb0d901debc5a5d9fffedc7780e22553f7c450fc148ccddb24b889d75a53e705c7604ae8167641a6e0f1e2a62706cf3b97f8c31b58f85cd20dd956bd8249085f5fa17c9f48361146ae92bf5814dc17e3b55a860be4812390fb6c6188e46f52cfdcf8e7124bd13a7a893b3cd938606c62e83e06ee41cc88c1c402dd8680f37bd328aa84771aa1f9507ab8be11409c7b9af1eb7ff56fd3c271f7590cf7369f57c899c190d22bdaed445e0149a53f8c2cf36d4c038b76a57841d583d100701a8eae12339d997d43b2e2f1ee3bfedcb63818f93461eaf60265f2e511075452ac2c93503b455cbbf0f7ade7eb5fe762f58af97e15b90c79793ee7d6b6dc13a84a5ae21066d4f658aa011247eccf4da44a720dcf6a07c48f67c36259189d93fe63e75cf01a5da0ae856c1c92e1aa9ede062e173c204ae9a7de52c2a2f177da8be275b6b06aad158c12e9c561fbd00dfe576637423edfa1ce0089ef924431f97867c94650cd1760dc64b0e03783c24ad786fa1182d883a77f33d615fe515d8ec7960ebb6dc135b65964a8dae67d9f358eef343dbb2d010f143828234fd351bd8cc4f4d5a06be3c0469428d3d17dd99d565a450057ad6782765e0b4116b54c2de545dc7737849ef0d6a1fc07401b7346ce8c3c46e8d34e17221ba9244da866d9dc5a1e89d9ef1a536a925990c40e0d7bff27a7f2c673cd157ce95178107f3db887d5aaef29aed158a7267bc636fe0fd0c1767c5f70b7ac87a7593fbf6201dd0fa2037e35b5d2ea57ebbba1c72148a6b307b72ab0f449e492d0b36ba6a349163b7e2f7570e71bc068de097d3fff3f30eb0014ad4357fcc8eb99a9a144ecf53d85cc1edc100f22429c70679afd4d08e4d0f4b9008a3c7f360d99851308633fa36bffe608c01e008756611d193bd6a07b47453e4cc7b7c499741ae9703c433c87216976c52f4b656090d2b3988ba6ec625c2047e1e1e19a7a0b7e0dbb17af290b23d8d74f55149353425eb6be85e492272669842673bb5e7b91a68c8eaaba9ca8bf84769b82d127f0a555b328e6b2001488d0d9e812656320610f5210e31349ce056d0294e6afda9532aaa1620e55cbf7e2a292ce53a47ea0f35fee219e666f78628d0efd238a8f128e5f0e668f6fcbc5b214c69c0adfa072f3fba8f9d1150473e539e12dceb72615b04e99ff2d68e5491228edbe893f6218a1b0634ac1b5368dddb64d7979a2e07c62422add5c92731d261c83f584333525c2f7294b5d1ad5e68d952e0748228feb9695a6d20acdb26b7ad44c1860a519ce040dc2e154ef0d03c09a55da09094746cd2b8ad04e625090155bb838e1b6941919b38054e75e4dfc9042efed1353d7eaafa0f566ea092d6d2c0075cf5009763ab1e38f6239d54f85b4fcd25726b9aa98f4f1a05b672a7012ed603d0e14bbe8bf2456c630c8e7709799911eb736a48517dabcb3709a2986616c156e8f87244c523dd44314cacb70a74c743a447214c66e2bf862c0ea5270ec9f9e564f6632045ab74a9905fe93a292abe7500", + "lock_time": 0, "version": 2 } diff --git a/tests/txcache/zcash_testnet/5d8de67264b08eecc8e3bee19a11a7f54a2bce1dc4f2a699538e372ae92e9c0f.json b/tests/txcache/zcash_testnet/5d8de67264b08eecc8e3bee19a11a7f54a2bce1dc4f2a699538e372ae92e9c0f.json index 290e890c8..4624b6684 100644 --- a/tests/txcache/zcash_testnet/5d8de67264b08eecc8e3bee19a11a7f54a2bce1dc4f2a699538e372ae92e9c0f.json +++ b/tests/txcache/zcash_testnet/5d8de67264b08eecc8e3bee19a11a7f54a2bce1dc4f2a699538e372ae92e9c0f.json @@ -9,6 +9,8 @@ "script_pubkey": "76a91490ede9de4bed6e39008375eace793949de9a533288ac" } ], + "expiry": 10000000, + "extra_data": "0000000000000000000000", "inputs": [ { "prev_hash": "7a25323386b6bb5cc0e99779ffc323014c3672e16c09fdadcf5e680a207788f3", @@ -17,8 +19,7 @@ "sequence": 4294967295 } ], - "expiry": 10000000, - "extra_data": "0000000000000000000000", + "lock_time": 0, "version": 4, "version_group_id": 2301567109 } diff --git a/tests/txcache/zcash_testnet/aaf51e4606c264e47e5c42c958fe4cf1539c5172684721e38e69f4ef634d75dc.json b/tests/txcache/zcash_testnet/aaf51e4606c264e47e5c42c958fe4cf1539c5172684721e38e69f4ef634d75dc.json index 02227bb5e..ce00e3e8b 100644 --- a/tests/txcache/zcash_testnet/aaf51e4606c264e47e5c42c958fe4cf1539c5172684721e38e69f4ef634d75dc.json +++ b/tests/txcache/zcash_testnet/aaf51e4606c264e47e5c42c958fe4cf1539c5172684721e38e69f4ef634d75dc.json @@ -9,6 +9,8 @@ "script_pubkey": "76a914a579388225827d9f2fe9014add644487808c695d88ac" } ], + "expiry": 234352, + "extra_data": "00", "inputs": [ { "prev_hash": "01d175a5421206439525542f83d168577e92d59e8283e8862e236a1461d5938a", @@ -17,8 +19,6 @@ "sequence": 4294967294 } ], - "expiry": 234352, - "extra_data": "00", "lock_time": 234321, "version": 3, "version_group_id": 63210096 diff --git a/tests/txcache/zcash_testnet/e3820602226974b1dd87b7113cc8aea8c63e5ae29293991e7bfa80c126930368.json b/tests/txcache/zcash_testnet/e3820602226974b1dd87b7113cc8aea8c63e5ae29293991e7bfa80c126930368.json index d467d2fde..af9dac6e0 100644 --- a/tests/txcache/zcash_testnet/e3820602226974b1dd87b7113cc8aea8c63e5ae29293991e7bfa80c126930368.json +++ b/tests/txcache/zcash_testnet/e3820602226974b1dd87b7113cc8aea8c63e5ae29293991e7bfa80c126930368.json @@ -9,6 +9,8 @@ "script_pubkey": "76a91474374446b18916decd3292384ea73006ebd268ba88ac" } ], + "expiry": 261318, + "extra_data": "00", "inputs": [ { "prev_hash": "4e8e8c5a5524cb8b20d05aefd5b1fd004d6c8c584e3e314876f13edb5ba0eead", @@ -23,8 +25,6 @@ "sequence": 4294967294 } ], - "expiry": 261318, - "extra_data": "00", "lock_time": 261287, "version": 3, "version_group_id": 63210096 diff --git a/tests/txcache/zcash_testnet/f9418829d18140815f961c3f968b08700c283b616f3cb0f43413ae89e68ab76c.json b/tests/txcache/zcash_testnet/f9418829d18140815f961c3f968b08700c283b616f3cb0f43413ae89e68ab76c.json index 7e85234a9..af844c7a4 100644 --- a/tests/txcache/zcash_testnet/f9418829d18140815f961c3f968b08700c283b616f3cb0f43413ae89e68ab76c.json +++ b/tests/txcache/zcash_testnet/f9418829d18140815f961c3f968b08700c283b616f3cb0f43413ae89e68ab76c.json @@ -9,6 +9,8 @@ "script_pubkey": "76a914837451e69716a2dac13b6f98ace4d9405f64374488ac" } ], + "expiry": 208963, + "extra_data": "00", "inputs": [ { "prev_hash": "b980eeb137f0078603e187839ee03f1643154abbb96ac0d65bdcf09842688cc5", @@ -17,8 +19,6 @@ "sequence": 4294967294 } ], - "expiry": 208963, - "extra_data": "00", "lock_time": 208932, "version": 3, "version_group_id": 63210096 diff --git a/tests/txcache/zcash_testnet/fb91ae741b120125b6d5c33a62f50a201b6ffd1cdc470c378c1ac8c654808246.json b/tests/txcache/zcash_testnet/fb91ae741b120125b6d5c33a62f50a201b6ffd1cdc470c378c1ac8c654808246.json index 1f63cd827..88ef1aeb6 100644 --- a/tests/txcache/zcash_testnet/fb91ae741b120125b6d5c33a62f50a201b6ffd1cdc470c378c1ac8c654808246.json +++ b/tests/txcache/zcash_testnet/fb91ae741b120125b6d5c33a62f50a201b6ffd1cdc470c378c1ac8c654808246.json @@ -9,6 +9,7 @@ "script_pubkey": "76a914ed48aa1326c67f80bdd751acd54033efc41d4a6e88ac" } ], + "extra_data": "", "inputs": [ { "prev_hash": "57dc0b2b6d4fe89a3d652b11a3311ea01e0055599d7835a3c225c1d9a321097c", @@ -17,6 +18,6 @@ "sequence": 4294967295 } ], - "extra_data": "", + "lock_time": 0, "version": 1 } diff --git a/tests/upgrade_tests/test_passphrase_consistency.py b/tests/upgrade_tests/test_passphrase_consistency.py index 17b2eada4..71d447f7a 100644 --- a/tests/upgrade_tests/test_passphrase_consistency.py +++ b/tests/upgrade_tests/test_passphrase_consistency.py @@ -64,9 +64,9 @@ def test_passphrase_works(emulator): """Check that passphrase handling in trezorlib works correctly in all versions.""" if emulator.client.features.model == "T" and emulator.client.version < (2, 3, 0): expected_responses = [ - messages.PassphraseRequest(), - messages.Deprecated_PassphraseStateRequest(), - messages.Address(), + messages.PassphraseRequest, + messages.Deprecated_PassphraseStateRequest, + messages.Address, ] elif ( emulator.client.features.model == "T" and emulator.client.version < (2, 3, 3) @@ -74,15 +74,15 @@ def test_passphrase_works(emulator): emulator.client.features.model == "1" and emulator.client.version < (1, 9, 3) ): expected_responses = [ - messages.PassphraseRequest(), - messages.Address(), + messages.PassphraseRequest, + messages.Address, ] else: expected_responses = [ - messages.PassphraseRequest(), - messages.ButtonRequest(), - messages.ButtonRequest(), - messages.Address(), + messages.PassphraseRequest, + messages.ButtonRequest, + messages.ButtonRequest, + messages.Address, ] with emulator.client: @@ -101,11 +101,11 @@ def test_init_device(emulator): """ if emulator.client.features.model == "T" and emulator.client.version < (2, 3, 0): expected_responses = [ - messages.PassphraseRequest(), - messages.Deprecated_PassphraseStateRequest(), - messages.Address(), - messages.Features(), - messages.Address(), + messages.PassphraseRequest, + messages.Deprecated_PassphraseStateRequest, + messages.Address, + messages.Features, + messages.Address, ] elif ( emulator.client.features.model == "T" and emulator.client.version < (2, 3, 3) @@ -113,19 +113,19 @@ def test_init_device(emulator): emulator.client.features.model == "1" and emulator.client.version < (1, 9, 3) ): expected_responses = [ - messages.PassphraseRequest(), - messages.Address(), - messages.Features(), - messages.Address(), + messages.PassphraseRequest, + messages.Address, + messages.Features, + messages.Address, ] else: expected_responses = [ - messages.PassphraseRequest(), - messages.ButtonRequest(), - messages.ButtonRequest(), - messages.Address(), - messages.Features(), - messages.Address(), + messages.PassphraseRequest, + messages.ButtonRequest, + messages.ButtonRequest, + messages.Address, + messages.Features, + messages.Address, ] with emulator.client: