From fb1f1acad62922ff5f9887102b43060a9e8dc5ce Mon Sep 17 00:00:00 2001 From: Andrew Kozlik Date: Fri, 10 Jul 2020 17:20:50 +0200 Subject: [PATCH] tests: Add device test for nLockTime in Bitcoin. --- tests/device_tests/test_msg_signtx.py | 51 +++++++++++++++++++++++++++ tests/ui_tests/fixtures.json | 3 ++ 2 files changed, 54 insertions(+) diff --git a/tests/device_tests/test_msg_signtx.py b/tests/device_tests/test_msg_signtx.py index 8814c4528d..80bf494272 100644 --- a/tests/device_tests/test_msg_signtx.py +++ b/tests/device_tests/test_msg_signtx.py @@ -1310,3 +1310,54 @@ class TestMsgSigntx: btc.sign_tx( client, "Testnet", [inp1], [out1, out2], prev_txes=TX_CACHE_TESTNET ) + + @pytest.mark.parametrize( + "lock_time, sequence", + ((499999999, 0xFFFFFFFE), (500000000, 0xFFFFFFFE), (1, 0xFFFFFFFF)), + ) + def test_lock_time(self, client, lock_time, sequence): + # tx: d5f65ee80147b4bcc70b75e4bbf2d7382021b871bd8867ef8fa525ef50864882 + # input 0: 0.0039 BTC + + inp1 = messages.TxInputType( + address_n=parse_path("44h/0h/0h/0/0"), + # amount=390000, + prev_hash=TXHASH_d5f65e, + prev_index=0, + sequence=sequence, + ) + + out1 = messages.TxOutputType( + address="1MJ2tj2ThBE62zXbBYA5ZaN3fdve5CPAz1", + amount=390000 - 10000, + script_type=messages.OutputScriptType.PAYTOADDRESS, + ) + + with client: + client.set_expected_responses( + [ + request_input(0), + request_meta(TXHASH_d5f65e), + request_input(0, TXHASH_d5f65e), + request_input(1, TXHASH_d5f65e), + request_output(0, TXHASH_d5f65e), + request_output(0), + messages.ButtonRequest(code=B.ConfirmOutput), + messages.ButtonRequest(code=B.SignTx), + messages.ButtonRequest(code=B.SignTx), + request_input(0), + request_output(0), + request_output(0), + request_finished(), + ] + ) + + details = messages.SignTx(lock_time=lock_time) + btc.sign_tx( + client, + "Bitcoin", + [inp1], + [out1], + details=details, + prev_txes=TX_CACHE_MAINNET, + ) diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json index 8f56c7c0f2..8893e6c6df 100644 --- a/tests/ui_tests/fixtures.json +++ b/tests/ui_tests/fixtures.json @@ -289,6 +289,9 @@ "test_msg_signtx.py-test_change_on_main_chain_allowed": "cfd5c83510c044c456622298138e222aee135a6df607bb6e5603228535f0762f", "test_msg_signtx.py-test_fee_high_hardfail": "b450a59808fb20cbd01d34e8d24bf1a5814e9b2a10109710240c617b68e247b6", "test_msg_signtx.py-test_fee_high_warning": "8cb3b31dce25fa36cd5c8322c71611dc7bc9d2290579ffd88dd67d21058bde04", +"test_msg_signtx.py-test_lock_time[1-4294967295]": "d805244ea557c3695101a6f79f13045f22bc16d5608744e0321eab7f3a98d8b0", +"test_msg_signtx.py-test_lock_time[499999999-4294967294]": "23a154e7b40680161bb099cfc6702d75909c222056867515647123573eef1716", +"test_msg_signtx.py-test_lock_time[500000000-4294967294]": "2ac61446c20785e45223a20ae90660905fedf20d2a383a65fcbc1edd5fe87ad1", "test_msg_signtx.py-test_lots_of_change": "9e143458b399d187b6a3060fc95b998822f5a7ed67d6915610fd02c0ccab791e", "test_msg_signtx.py-test_not_enough_funds": "dbaa027aa1f4b08b138a5965245593dab2a662b0f4d88dd28b82a64f88f5d7fe", "test_msg_signtx.py-test_one_one_fee": "f6b6662fa1384f20640522a169575f8ca26185fca8ca3bc2a3a5ccd1fa9d2f68",