diff --git a/core/src/apps/bitcoin/common.py b/core/src/apps/bitcoin/common.py index 616d6de86..67f60b4c7 100644 --- a/core/src/apps/bitcoin/common.py +++ b/core/src/apps/bitcoin/common.py @@ -140,8 +140,12 @@ def decode_bech32_address(prefix: str, address: str) -> tuple[int, bytes]: def input_is_segwit(txi: TxInput) -> bool: + # Note that we don't investigate whether external inputs that are not presigned + # are SegWit or not. For practical purposes we count them as SegWit, because + # they behave as such, i.e. they don't use get_legacy_tx_digest(). return txi.script_type in SEGWIT_INPUT_SCRIPT_TYPES or ( - txi.script_type == InputScriptType.EXTERNAL and txi.witness is not None + txi.script_type == InputScriptType.EXTERNAL + and bool(txi.witness or not txi.script_sig) ) diff --git a/core/src/apps/bitcoin/sign_tx/bitcoin.py b/core/src/apps/bitcoin/sign_tx/bitcoin.py index f0aad8262..4d7c9733d 100644 --- a/core/src/apps/bitcoin/sign_tx/bitcoin.py +++ b/core/src/apps/bitcoin/sign_tx/bitcoin.py @@ -50,6 +50,8 @@ _SERIALIZED_TX_BUFFER = empty_bytearray(_MAX_SERIALIZED_CHUNK_SIZE) class Bitcoin: async def signer(self) -> None: + progress.init(self.tx_info.tx) + # Add inputs to sig_hasher and h_tx_check and compute the sum of input amounts. await self.step1_process_inputs() @@ -63,6 +65,17 @@ class Bitcoin: # Check fee, approve lock_time and total. await self.approver.approve_tx(self.tx_info, self.orig_txs) + progress.init_signing( + len(self.external), + len(self.segwit), + self.taproot_only, + self.has_presigned, + self.serialize, + self.coin, + self.tx_info.tx, + self.orig_txs, + ) + # Verify the transaction input amounts by requesting each previous transaction # and checking its output amount. Verify external inputs which have already # been signed or which come with a proof of non-ownership. @@ -133,8 +146,6 @@ class Bitcoin: # The index of the payment request being processed. self.payment_req_index: int | None = None - progress.init(tx.inputs_count, tx.outputs_count) - def create_hash_writer(self) -> HashWriter: return HashWriter(sha256()) @@ -146,6 +157,7 @@ class Bitcoin: for i in range(self.tx_info.tx.inputs_count): # STAGE_REQUEST_1_INPUT in legacy + progress.advance() txi = await helpers.request_tx_input(self.tx_req, i, self.coin) script_pubkey = self.input_derive_script(txi) self.tx_info.add_input(txi, script_pubkey) @@ -182,6 +194,7 @@ class Bitcoin: async def step2_approve_outputs(self) -> None: for i in range(self.tx_info.tx.outputs_count): # STAGE_REQUEST_2_OUTPUT in legacy + progress.advance() txo = await helpers.request_tx_output(self.tx_req, i, self.coin) script_pubkey = self.output_derive_script(txo) orig_txo: TxOutput | None = None @@ -209,8 +222,8 @@ class Bitcoin: if self.has_presigned: expected_digest = self.h_external_inputs for i in range(self.tx_info.tx.inputs_count): - progress.advance() if i in self.external: + progress.advance() txi = await helpers.request_tx_input(self.tx_req, i, self.coin) writers.write_tx_input_check(h_check, txi) if txi.witness or txi.script_sig: @@ -230,7 +243,6 @@ class Bitcoin: # multiple rounds of the attack. expected_digest = self.tx_info.h_inputs_check for i in range(self.tx_info.tx.inputs_count): - progress.advance() txi = await helpers.request_tx_input(self.tx_req, i, self.coin) writers.write_tx_input_check(h_check, txi) @@ -259,14 +271,16 @@ class Bitcoin: write_compact_size(self.serialized_tx, self.tx_info.tx.inputs_count) for i in range(self.tx_info.tx.inputs_count): - progress.advance() if i in self.external: if self.serialize: + progress.advance() await self.serialize_external_input(i) elif i in self.segwit: if self.serialize: + progress.advance() await self.serialize_segwit_input(i) else: + progress.advance() await self.sign_nonsegwit_input(i) async def step5_serialize_outputs(self) -> None: @@ -280,17 +294,17 @@ class Bitcoin: async def step6_sign_segwit_inputs(self) -> None: if not self.segwit: - progress.advance(self.tx_info.tx.inputs_count) return for i in range(self.tx_info.tx.inputs_count): - progress.advance() if i in self.segwit: if i in self.external: if self.serialize: + progress.advance() txi = await helpers.request_tx_input(self.tx_req, i, self.coin) self.serialized_tx.extend(txi.witness or b"\0") else: + progress.advance() await self.sign_segwit_input(i) else: # add empty witness for non-segwit inputs @@ -300,6 +314,8 @@ class Bitcoin: async def step7_finish(self) -> None: if self.serialize: self.write_tx_footer(self.serialized_tx, self.tx_info.tx) + if __debug__: + progress.assert_finished() await helpers.request_tx_finish(self.tx_req) async def process_internal_input(self, txi: TxInput) -> None: @@ -440,6 +456,7 @@ class Bitcoin: h_check = HashWriter(sha256()) for i in range(orig.tx.inputs_count): + progress.advance() txi = await helpers.request_tx_input( self.tx_req, i, self.coin, orig.orig_hash ) @@ -664,6 +681,7 @@ class Bitcoin: node = None for i in range(tx_info.tx.inputs_count): # STAGE_REQUEST_4_INPUT in legacy + progress.advance() txi = await helpers.request_tx_input(self.tx_req, i, self.coin, tx_hash) writers.write_tx_input_check(h_check, txi) # Only the previous UTXO's scriptPubKey is included in h_sign. @@ -700,6 +718,7 @@ class Bitcoin: for i in range(tx_info.tx.outputs_count): # STAGE_REQUEST_4_OUTPUT in legacy + progress.advance() txo = await helpers.request_tx_output(self.tx_req, i, self.coin, tx_hash) script_pubkey = self.output_derive_script(txo) self.write_tx_output(h_check, txo, script_pubkey) @@ -747,6 +766,7 @@ class Bitcoin: # STAGE_REQUEST_3_PREV_META in legacy tx = await helpers.request_tx_meta(self.tx_req, self.coin, prev_hash) + progress.init_prev_tx(tx.inputs_count, tx.outputs_count) if tx.outputs_count <= prev_index: raise wire.ProcessError("Not enough outputs in previous transaction.") @@ -759,6 +779,7 @@ class Bitcoin: for i in range(tx.inputs_count): # STAGE_REQUEST_3_PREV_INPUT in legacy + progress.advance_prev_tx() txi = await helpers.request_tx_prev_input( self.tx_req, i, self.coin, prev_hash ) @@ -769,6 +790,7 @@ class Bitcoin: script_pubkey: bytes | None = None for i in range(tx.outputs_count): # STAGE_REQUEST_3_PREV_OUTPUT in legacy + progress.advance_prev_tx() txo_bin = await helpers.request_tx_prev_output( self.tx_req, i, self.coin, prev_hash ) diff --git a/core/src/apps/bitcoin/sign_tx/decred.py b/core/src/apps/bitcoin/sign_tx/decred.py index f9718f218..d04cde345 100644 --- a/core/src/apps/bitcoin/sign_tx/decred.py +++ b/core/src/apps/bitcoin/sign_tx/decred.py @@ -280,6 +280,9 @@ class Decred(Bitcoin): pass async def step7_finish(self) -> None: + if __debug__: + progress.assert_finished() + await helpers.request_tx_finish(self.tx_req) def check_prevtx_output(self, txo_bin: PrevOutput) -> None: @@ -328,6 +331,7 @@ class Decred(Bitcoin): raise wire.DataError("Ticket has wrong number of outputs.") # SSTX submission + progress.advance() txo = await helpers.request_tx_output(self.tx_req, 0, self.coin) if txo.address is None: raise wire.DataError("Missing address.") @@ -338,6 +342,7 @@ class Decred(Bitcoin): self.write_tx_output(self.serialized_tx, txo, script_pubkey) # SSTX commitment + progress.advance() txo = await helpers.request_tx_output(self.tx_req, 1, self.coin) if txo.amount != self.approver.total_in: raise wire.DataError("Wrong sstxcommitment amount.") @@ -348,6 +353,7 @@ class Decred(Bitcoin): self.write_tx_output(self.serialized_tx, txo, script_pubkey) # SSTX change + progress.advance() txo = await helpers.request_tx_output(self.tx_req, 2, self.coin) if txo.address is None: raise wire.DataError("Missing address.") diff --git a/core/src/apps/bitcoin/sign_tx/progress.py b/core/src/apps/bitcoin/sign_tx/progress.py index 440eda463..d68f8f8f9 100644 --- a/core/src/apps/bitcoin/sign_tx/progress.py +++ b/core/src/apps/bitcoin/sign_tx/progress.py @@ -1,31 +1,134 @@ -from trezor import ui, utils, workflow +from typing import TYPE_CHECKING + +from trezor import ui + +if TYPE_CHECKING: + from trezor.messages import SignTx + from apps.common.coininfo import CoinInfo + from .tx_info import OriginalTxInfo + +# Checking previous transactions typically requires the following pieces of +# information to be fetched for each input: +# the input, prevtx metadata, prevtx input, prevtx output, prevtx change-output +_PREV_TX_MULTIPLIER = 5 _progress = 0 _steps = 0 +_signing = False +_prev_tx_step = 0 -def init(inputs: int, outputs: int) -> None: - global _progress, _steps +def init(tx: SignTx) -> None: + global _progress, _steps, _signing _progress = 0 - _steps = inputs + inputs + outputs + inputs + _signing = False + + # Step 1 and 2 - load inputs and outputs + _steps = tx.inputs_count + tx.outputs_count + + report_init() + report() + + +def init_signing( + external: int, + segwit: int, + taproot_only: bool, + has_presigned: bool, + serialize: bool, + coin: CoinInfo, + tx: SignTx, + orig_txs: list[OriginalTxInfo], +) -> None: + if __debug__: + assert_finished() + + global _progress, _steps, _signing + _progress = 0 + _steps = 0 + _signing = True + + # Step 3 - verify inputs + if taproot_only or (coin.overwintered and tx.version == 5): + if has_presigned: + _steps += external + else: + _steps = tx.inputs_count * _PREV_TX_MULTIPLIER + + for orig in orig_txs: + _steps += orig.tx.inputs_count + + # Steps 3 and 4 - get_legacy_tx_digest() for each legacy input. + if not (coin.force_bip143 or coin.overwintered or coin.decred): + _steps += (tx.inputs_count - segwit) * (tx.inputs_count + tx.outputs_count) + + if segwit != tx.inputs_count: + # The transaction has a legacy input. + + # Simplification: We assume that all original transaction inputs + # are legacy, since mixed script types are not supported in Suite. + for orig in orig_txs: + _steps += orig.tx.inputs_count * ( + orig.tx.inputs_count + orig.tx.outputs_count + ) + + # Steps 4 and 6 - serialize and sign inputs + if serialize: + _steps += tx.inputs_count + segwit + else: + _steps += tx.inputs_count - external + + # Step 5 - serialize outputs + if serialize and not coin.decred: + _steps += tx.outputs_count + report_init() report() -def advance(i: int = 1) -> None: +def init_prev_tx(inputs: int, outputs: int) -> None: + global _prev_tx_step + _prev_tx_step = _PREV_TX_MULTIPLIER / (inputs + outputs) + + +def advance() -> None: global _progress - _progress += i + _progress += 1 + report() + + +def advance_prev_tx() -> None: + global _progress + _progress += _prev_tx_step report() def report_init() -> None: + from trezor import workflow + workflow.close_others() ui.display.clear() - ui.header("Signing transaction") + if _signing: + ui.header("Signing transaction") + else: + ui.header("Loading transaction") def report() -> None: + from trezor import utils + if utils.DISABLE_ANIMATION: return - p = 1000 * _progress // _steps + p = int(1000 * _progress / _steps) ui.display.loader(p, False, 18, ui.WHITE, ui.BG) + + +if __debug__: + + def assert_finished() -> None: + if abs(_progress - _steps) > 0.5: + operation = "signing" if _signing else "loading" + from trezor import wire + raise wire.FirmwareError( + f"Transaction {operation} progress finished at {_progress}/{_steps}." + ) diff --git a/tests/device_tests/bitcoin/test_signtx_external.py b/tests/device_tests/bitcoin/test_signtx_external.py index 79d95abc9..1e0ddc401 100644 --- a/tests/device_tests/bitcoin/test_signtx_external.py +++ b/tests/device_tests/bitcoin/test_signtx_external.py @@ -624,6 +624,7 @@ def test_p2wpkh_with_proof(client: Client): request_input(1), request_output(0), request_output(1), + request_input(0), request_input(1), request_finished(), ] @@ -701,6 +702,7 @@ def test_p2tr_with_proof(client: Client): request_input(0), request_input(1), request_output(0), + request_input(0), request_input(1), request_finished(), ] diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json index 97ffcbf5a..1a7525105 100644 --- a/tests/ui_tests/fixtures.json +++ b/tests/ui_tests/fixtures.json @@ -623,33 +623,34 @@ "TT_bitcoin-test_authorize_coinjoin.py::test_get_address": "6874f2f758936d7f21fbcf941e0953a74133650307d5c5c559eec2eef3438f1d", "TT_bitcoin-test_authorize_coinjoin.py::test_get_public_key": "b1b4b17120b7131e7be00e59254e7afaf43afde1e547c5b0cc1ecd105e802654", "TT_bitcoin-test_authorize_coinjoin.py::test_multisession_authorization": "65c9435e10e3dede19169a9b02d373bd5acb22eba0ba3b31324271025d65d5a7", -"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx": "87b81a29fe6e27fdfedfdbb1953b3d0178786749eadbb0fe01509c1af8075de5", -"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx_spend": "dc1ae93408d2c0956f9824011167045124de5a7e871b36cfc22fdfc71032f3f6", +"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx": "83859a6429f212c1fb72ce3248ddf7eb04a76eae830808298a02b7def8534889", +"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx_large": "80d576289c53da7e18e8f18f13a054cdb048968ae1f3938f63e93c35cbee7308", +"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx_spend": "0f4f7f2c41f9945e9c55e2be39f6ccffb7bfd40ffd4098ab18d4ca2c8c58115f", "TT_bitcoin-test_authorize_coinjoin.py::test_wrong_account_type": "2e5cffe7bd0dc6034852d21612fba8cf1ee3c45a14e76140a4c2786f360f54f0", "TT_bitcoin-test_authorize_coinjoin.py::test_wrong_coordinator": "2e5cffe7bd0dc6034852d21612fba8cf1ee3c45a14e76140a4c2786f360f54f0", -"TT_bitcoin-test_bcash.py::test_attack_change_input": "9d0012dd39987cc13cb2b15da0b58068782b7c2267ea6d214881325a449516bb", -"TT_bitcoin-test_bcash.py::test_send_bch_change": "9d0012dd39987cc13cb2b15da0b58068782b7c2267ea6d214881325a449516bb", -"TT_bitcoin-test_bcash.py::test_send_bch_external_presigned": "4ea82258a094d49829ab7240465de9cb06198d7b0bb1a56b66bfbda5ccc676c1", -"TT_bitcoin-test_bcash.py::test_send_bch_multisig_change": "ebcc1cc22bf3c1f039d8d665a81c4a5eb17ddc16afa1b0c3cd2d38f8f10969e5", -"TT_bitcoin-test_bcash.py::test_send_bch_multisig_wrongchange": "abc79adcbf4509993bb3e87165343604aae43994af9bacbf75357368727be934", -"TT_bitcoin-test_bcash.py::test_send_bch_nochange": "16e99f3b96f69376198fa8d082ccf60f4eb694feec37e86add77983fe2465af1", -"TT_bitcoin-test_bcash.py::test_send_bch_oldaddr": "170560168cec379249617b12c31b225639d8c4628f67ff747850ace6cc187cc5", -"TT_bitcoin-test_bgold.py::test_attack_change_input": "e1bf4a90cd9f2d53894300f4200ff50c40e76859681708e6b58b93af422e79d8", -"TT_bitcoin-test_bgold.py::test_send_bitcoin_gold_change": "e1bf4a90cd9f2d53894300f4200ff50c40e76859681708e6b58b93af422e79d8", -"TT_bitcoin-test_bgold.py::test_send_bitcoin_gold_nochange": "78747589773bd75c8c7ff102b816f0648dc1ca6f9aeae11b32dcc86165daa99f", -"TT_bitcoin-test_bgold.py::test_send_btg_external_presigned": "26edf762cee23502a3f09ed99a27f77e7a94d95ac6d1fddabba9c36b708157f8", -"TT_bitcoin-test_bgold.py::test_send_btg_multisig_change": "5b9bf3ea996abe56f1b1dfd578556105abff59d6e4cecfbcd9a59e20247338f0", -"TT_bitcoin-test_bgold.py::test_send_mixed_inputs": "a4664cbbdcc339fd883d8078045219bc5810cd08352063d3c0e3c88487a060f6", -"TT_bitcoin-test_bgold.py::test_send_multisig_1": "a210e861315c6c2020fccfe6560d3c8f2a5f51e00bacbccee54fcf654b891b50", -"TT_bitcoin-test_bgold.py::test_send_p2sh": "c1cd6a0592e07ed267c818283a0b9b8853c322035346f879e2ee689ef1e5baf7", -"TT_bitcoin-test_bgold.py::test_send_p2sh_witness_change": "5a91bc516db4ddead42892d3ae72277c076246e3033c0dd80c3d4d769077f6a0", -"TT_bitcoin-test_dash.py::test_send_dash": "bd2fbd3b7ef6ac2c54627365ba434c0e5ce6473dc65e7ba9f3e5b7587c5327c1", -"TT_bitcoin-test_dash.py::test_send_dash_dip2_input": "aec5a54a638ad5f5033027849096b71b5d26919fcea53b8bd1dd7912d22ba11a", -"TT_bitcoin-test_decred.py::test_decred_multisig_change": "792f91c7ffa37c4eaab8e0e837fd28c5eaff2b9d47b7bc50e98d99f46a355d57", -"TT_bitcoin-test_decred.py::test_purchase_ticket_decred": "16b7fd6d4b88711b0932768432288df5357d16030de45c8520238322ab1d6a66", -"TT_bitcoin-test_decred.py::test_send_decred": "3e0a562192cd7bd1222ba4d54e33233684c35b02f3fc8bd238b33bbee82d4318", -"TT_bitcoin-test_decred.py::test_send_decred_change": "4c677314faf2f11925d41502d34994a2d788e03eb65539e8e668de381227e17a", -"TT_bitcoin-test_decred.py::test_spend_from_stake_generation_and_revocation_decred": "679342fafab0b37b394b28648327696edde4b47389ea35635197928fb02e2ea3", +"TT_bitcoin-test_bcash.py::test_attack_change_input": "a7b230e002cc350c3e94b81cd730f9ba39e3e59ecd4bce264348af4304422ade", +"TT_bitcoin-test_bcash.py::test_send_bch_change": "a7b230e002cc350c3e94b81cd730f9ba39e3e59ecd4bce264348af4304422ade", +"TT_bitcoin-test_bcash.py::test_send_bch_external_presigned": "3b9b05f284da4af74552c552524ddd54be96bff8968b71f519bc684f1fda2d01", +"TT_bitcoin-test_bcash.py::test_send_bch_multisig_change": "ebb941b05a9766ae31056ab597bcada9c830d8a5ceaa4d8a0ff2fbc4ee77b6d2", +"TT_bitcoin-test_bcash.py::test_send_bch_multisig_wrongchange": "a17426d9821531b01ac37aa8ba69d45ea8a393183e865b81aa0da7d4525b315a", +"TT_bitcoin-test_bcash.py::test_send_bch_nochange": "db8c6074f17f77fb3cd323cf93fbc70ddccd5fd30f5c960d559fa253ade51f89", +"TT_bitcoin-test_bcash.py::test_send_bch_oldaddr": "20d56adcf4ecc9734e705b208a3b848f6d3d1d2819078aa9f9aa7e9276572609", +"TT_bitcoin-test_bgold.py::test_attack_change_input": "91e8d54402e680fa12637831a4a715e3c95fc2445e528e928783cf6dc0128bf5", +"TT_bitcoin-test_bgold.py::test_send_bitcoin_gold_change": "91e8d54402e680fa12637831a4a715e3c95fc2445e528e928783cf6dc0128bf5", +"TT_bitcoin-test_bgold.py::test_send_bitcoin_gold_nochange": "fb68ccee3b295f8e5cb7841f9b71815b2b8019a12cd22dbaa77c4c06ae777990", +"TT_bitcoin-test_bgold.py::test_send_btg_external_presigned": "ff873b4fcb2887fdcfc0d2c7972b294dd2d99c5d35e1b3d634197b479ec2b487", +"TT_bitcoin-test_bgold.py::test_send_btg_multisig_change": "568c62418c2b6343cf6df67bfd49a6694b618c2f70864a45aee6da486ec723e1", +"TT_bitcoin-test_bgold.py::test_send_mixed_inputs": "218a831642be4fd6b359866814ef058a2e6a19c7d663936f5f8f731889c0cb4c", +"TT_bitcoin-test_bgold.py::test_send_multisig_1": "24af23c0ae8a38d837d1c726a194ba5def375e0b7edfc76778f46c8d0ebf731e", +"TT_bitcoin-test_bgold.py::test_send_p2sh": "92ed15a5efac339ba64d759307d52ae87a8b2c215dcd9c489e3591b4c075b817", +"TT_bitcoin-test_bgold.py::test_send_p2sh_witness_change": "9e9c0bd4de361a9d4e7193061e5a2e3037d75111c9cf849b9b86188441634a61", +"TT_bitcoin-test_dash.py::test_send_dash": "f2d54c85d4feb8bbf6d9f9b616802ac68f70d1344213a66ab42f91f693f1136e", +"TT_bitcoin-test_dash.py::test_send_dash_dip2_input": "0a672126c2ad90d1d57f96be52185731cca980fa662e6e09ba15a5273b2a582e", +"TT_bitcoin-test_decred.py::test_decred_multisig_change": "415096928f666da8667973bbf967e375c893fbafd740d91661c7f35bf95fba7c", +"TT_bitcoin-test_decred.py::test_purchase_ticket_decred": "14fffaa74166fbb57cc7e02fe9fa6a89ec1f9ddf823d570dfff48d42956d7b48", +"TT_bitcoin-test_decred.py::test_send_decred": "f38c64d5d4653b514e9b01242a1cf023cca2f102f1aa8fc890cbfb855509733a", +"TT_bitcoin-test_decred.py::test_send_decred_change": "868236318cba493363305ab254e24c460a268ec66912d8f7415a4ff94fbabb2e", +"TT_bitcoin-test_decred.py::test_spend_from_stake_generation_and_revocation_decred": "86d7482d5fbdec7dba2128b986d17432365be6cd78105887d90fed6febf02cda", "TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDADDRESS-pkh([5-7a80e3db": "24290396b20f26b49204a5551676d6f3c831009e30582d92d5b44fcc3c12fdb7", "TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDP2SHWITNESS-sh-03d56ac2": "8977c539f5680a5196ad0a4c6e16c44ca1bbdb79235dbf97e33aad8d47fe5d0c", "TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDTAPROOT-tr([5c-22751b2f": "3c31e8f9e396a1313c22480aac32f901086df23d8edf3f808d2f46a0d063034b", @@ -666,8 +667,8 @@ "TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDP2SHWITNESS-sh-e8c5303c": "6261537d1445ce1fb637760f8ec77aae8650ee4f0f5ab919ba1a41f039a02b1f", "TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDTAPROOT-tr([5c-ddc924d3": "fe4691af27c7221ac650927a4ee64aeb17ba323f746a03763d053a8311f6633b", "TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDWITNESS-wpkh([-996ae319": "3181b25e844eb1047d2904abb1099029c5f5ae4ba4d333be21336d1a745aafe0", -"TT_bitcoin-test_firo.py::test_spend_lelantus": "de199320e37e0a9d41e228138f674f2139744b9fa5b85bcace947e3458d8b794", -"TT_bitcoin-test_fujicoin.py::test_send_p2tr": "ab2358502425ae446202ff00b52f31d692c3c7f3a9bf77e549406991aba19d36", +"TT_bitcoin-test_firo.py::test_spend_lelantus": "91263b1668f91a15049ececb4ad4de9b8275dca147ead64442b2c87f0f377041", +"TT_bitcoin-test_fujicoin.py::test_send_p2tr": "8eb51946a4e662e920cf644ecaa63791d39039c0dfcf64e78541c39f6d05c3f2", "TT_bitcoin-test_getaddress.py::test_address_mac": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", "TT_bitcoin-test_getaddress.py::test_altcoin_address_mac": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", "TT_bitcoin-test_getaddress.py::test_bch": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", @@ -776,27 +777,27 @@ "TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[nist256p1-path3-03b93f7e6c777143ad-2d6b178b": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", "TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[secp256k1-path0-02f65ce170451f66f4-9c982c22": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", "TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[secp256k1-path1-0212f4629f4f224db0-0209bb73": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", -"TT_bitcoin-test_grs.py::test_legacy": "0684f69e7dcee2df0638164fd8572a4229ebdc04f50a749b7d7f8c76be030fc3", -"TT_bitcoin-test_grs.py::test_legacy_change": "03137135974aa423ab0c108fa8b4061c13709ee98f5df839ff7cdb21e4010e5b", -"TT_bitcoin-test_grs.py::test_send_p2tr": "afa031c73b3aaf82bd83edf9732bc518ce91963df444764f7eb8846a0dfd6ef5", -"TT_bitcoin-test_grs.py::test_send_segwit_native": "ffe10b37c7cebacf941fba76c33191a921b739d7fd14c71c080664d141681602", -"TT_bitcoin-test_grs.py::test_send_segwit_native_change": "7c1af889bd313c56fa19ec4cbae246787f7d7200ef3640f9483585f3039068af", -"TT_bitcoin-test_grs.py::test_send_segwit_p2sh": "dec2bea31da18b25aa31e30d78fe2cb06c2780b81c3108b470a9efeccb7718ed", -"TT_bitcoin-test_grs.py::test_send_segwit_p2sh_change": "5316a5056a46e655d8feb72bf9bf5f8831016f0b1fc22a9b108ca84589790e20", -"TT_bitcoin-test_komodo.py::test_one_one_fee_sapling": "b03a9f054193f234211cb4c10bbbdcb18f1f0c576db96ab173f7df8fdad20a1d", -"TT_bitcoin-test_komodo.py::test_one_one_rewards_claim": "b3c056df25d639927faaf16dc18c281c1a36b790ea4e77f954f681fb27d3fa1a", -"TT_bitcoin-test_multisig.py::test_15_of_15": "f14896f55015c4a3a00911d1d4ed11b5e0e45a4b82ad9f03e7089cb451bac516", -"TT_bitcoin-test_multisig.py::test_2_of_3": "19cf0914dde0573be031763473eb191ddb172a18d79dc888a7fd8eef32344540", -"TT_bitcoin-test_multisig.py::test_attack_change_input": "27739120850d31c8de2638bf156ec79472d872ac64c93ed9a09e78103afbf4e2", -"TT_bitcoin-test_multisig.py::test_missing_pubkey": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_multisig_change.py::test_external_external": "bb5c5e48c67e8e67613ec70198cab434ef609903f0bf163c8a95dba814224a5b", -"TT_bitcoin-test_multisig_change.py::test_external_internal": "7bbe5acedb002a703f4451f82f53fd06ac2da1a5d0198aa1308892c966c234df", -"TT_bitcoin-test_multisig_change.py::test_internal_external": "ea764dd63fb5b14b4fb009b7b45999780557fb7669acfa510ba6963ff81f0775", -"TT_bitcoin-test_multisig_change.py::test_multisig_change_match_first": "b26b6e6ce81c7a993a364d56e00cb82971773850f53e1689944ac7c2e4bc63d8", -"TT_bitcoin-test_multisig_change.py::test_multisig_change_match_second": "9414230d0402801e45696d75c5e94583d026fd151f8c5c44bfb95d778d0f8687", -"TT_bitcoin-test_multisig_change.py::test_multisig_external_external": "c5e72c7a393a1bdf0d00d5224ac428a03618065e7ee08de1abe9e030c8c17bba", -"TT_bitcoin-test_multisig_change.py::test_multisig_mismatch_change": "c5a1c3a7e75e15a5a8ffc2bbcf244058ed3348226c2e7d88bb37df7ef67ebeed", -"TT_bitcoin-test_multisig_change.py::test_multisig_mismatch_inputs": "059c84ac76627ea82f7a8199ea18156ab010339f3c4aeeecc1c6c354abe6c5ba", +"TT_bitcoin-test_grs.py::test_legacy": "7e2423a338e496c74756ae67ab3d5489551540297e943d5371f08fb709cf0838", +"TT_bitcoin-test_grs.py::test_legacy_change": "8868db1bf7b1944170637b8ca8ed17d8483329e30b34650fdc330e260be14166", +"TT_bitcoin-test_grs.py::test_send_p2tr": "5f78504b631c4625fddc8bf3bc662b8fd2bca1a567acbb00c7c65580aa8297ab", +"TT_bitcoin-test_grs.py::test_send_segwit_native": "cd02f6794a814541efc633666cd04f7d598f9632c92b6e1241cc03cdafd64d87", +"TT_bitcoin-test_grs.py::test_send_segwit_native_change": "691298c25648ecb1325ed7b5c3423208f0b03dc5ca3c499c74863f82325223e4", +"TT_bitcoin-test_grs.py::test_send_segwit_p2sh": "629c56f057d16408606f66998abd7b4d1bb9fbf6227170c1e0f7bad5eb74ea17", +"TT_bitcoin-test_grs.py::test_send_segwit_p2sh_change": "af5ed656720c72df30f5e1a69f96bd34e1edf246dd68418eda242e2104d0c886", +"TT_bitcoin-test_komodo.py::test_one_one_fee_sapling": "b242766ea938f2c28d7009313423537736fcedc65d7e973a5efcd2722a90601b", +"TT_bitcoin-test_komodo.py::test_one_one_rewards_claim": "aca6cc1035de32b7530fe54e9f51191fc44b5e92e0a68d246756b1532a076df2", +"TT_bitcoin-test_multisig.py::test_15_of_15": "6670b0bc877c565f2f8e5c1c006fd8750d6a0a4ea93cdfd09035485dbbe2db85", +"TT_bitcoin-test_multisig.py::test_2_of_3": "f8149c147f877775276aeb6552596aec85f7885f4637547a3964e87f7ede4a4b", +"TT_bitcoin-test_multisig.py::test_attack_change_input": "a27b6364f73f907adcd0cff0ecb19688f834d945702acac02f31b4045b0694c9", +"TT_bitcoin-test_multisig.py::test_missing_pubkey": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_multisig_change.py::test_external_external": "c2642ad729bd7af556f7ccc1f374274b1fb35c0b86e7ed1bb9839d5c24266d38", +"TT_bitcoin-test_multisig_change.py::test_external_internal": "a9f25240618349c80326cdaf6ab04843b30fa7bad49f6649625a511459d91393", +"TT_bitcoin-test_multisig_change.py::test_internal_external": "f77ec768dece008582e4264fa113e54161745d6337ca3f4e374119ad4bd91eb2", +"TT_bitcoin-test_multisig_change.py::test_multisig_change_match_first": "a4fbadb0c2b37a5054265311938f18ffda8504ea7dd28bfd6e4bcffb43099799", +"TT_bitcoin-test_multisig_change.py::test_multisig_change_match_second": "9628dddcd9ebd26306bbc65ffd99daa5fe80d2be7b1946d01f04cd69f42087fe", +"TT_bitcoin-test_multisig_change.py::test_multisig_external_external": "e92f6b004913df4b28e58bfc43a26f85ef93cc343f73ba4d02b33ba5c7fd4b13", +"TT_bitcoin-test_multisig_change.py::test_multisig_mismatch_change": "d1930ec373873b01a5471217074ddb2b93a89a0e50de02633129f871954af0d9", +"TT_bitcoin-test_multisig_change.py::test_multisig_mismatch_inputs": "60a3ab7036f823d9166fa717d9804d0c4f23b9391284491bbb25afbcd4315fa1", "TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-1195487518-6-255-script_types3]": "7914107977c576bdf24120466a7f6c4dccef31ee24bd8133657cc8310a89891b", "TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-1195487518-script_types2]": "756a9cfc6b6c1c70859737ed1466d0495c0a0b148fb16f60e193e5b4784df66e", "TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-3h-100h-4-255-script_types1]": "b1f2a522eec51325ede3d518fc177e4ded3e15409aa5b1374067a05ab5a60bde", @@ -819,24 +820,24 @@ "TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-3h-100h-4-255-script_types1]": "4f73135d2ec9add695e0a22d855816558b4ba9329a2828f9c9930be6245bdc2d", "TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-4-255-script_types0]": "0988cc8bdc5879744bd33190fddc5b5aa137fdd7214abb003c8000a871d98f14", "TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-49-0-63-0-255-script_types4]": "540df94c73a4eed8fe88cdb475e2b31df752dca9e47b102792c01064ee432752", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-1195487518-6-255-script_types3]": "a90506a9d9407beb378962f1b68faaa1c383e94de825d2bed61b8b35f2d96ac5", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-1195487518-script_types2]": "443d46f758a63964ebf436dd5e8f83d8c7109a9f267c4de369b297f4a73648fe", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-3h-100h-4-255-script_types1]": "c18c460564ed22cac67963e312d5382cc3a6b972b15a2215299bcb3ab88feb23", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-4-255-script_types0]": "c18c460564ed22cac67963e312d5382cc3a6b972b15a2215299bcb3ab88feb23", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-49-0-63-0-255-script_types4]": "287f07da3ea9f2bc42292a8923f1b0e4e93e401ad2ebb7a18a322bb938fbbd7d", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths0-address_index0]": "5b7f75a4766304722ff86f5cbf555d7e1b932f76a425a606da3107ea574f7f34", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths1-address_index1]": "5b7f75a4766304722ff86f5cbf555d7e1b932f76a425a606da3107ea574f7f34", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths2-address_index2]": "d14e7cae0ec7a1f1a1e1d7cd17e98a5faca2f441e7ddca1f3052ff4c641c7d75", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths3-address_index3]": "8b50d4650d7670f71535ac484f605425047976466955cfd17bc23b6331ecd64f", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths4-address_index4]": "5b7f75a4766304722ff86f5cbf555d7e1b932f76a425a606da3107ea574f7f34", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths5-address_index5]": "5b7f75a4766304722ff86f5cbf555d7e1b932f76a425a606da3107ea574f7f34", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths6-address_index6]": "5b7f75a4766304722ff86f5cbf555d7e1b932f76a425a606da3107ea574f7f34", -"TT_bitcoin-test_op_return.py::test_nonzero_opreturn": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_op_return.py::test_opreturn": "870cb6fa52df98754e54e7191dd66a1009890880b42846234ce332613205be91", -"TT_bitcoin-test_op_return.py::test_opreturn_address": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_peercoin.py::test_timestamp_included": "648edcbafd3a27b8ed36a2f4314de029d7a821ce6670ca2f6629eb8fb450700f", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-1195487518-6-255-script_types3]": "f51bf2a826bf2ae791296e3417ce9ee9b807fc9d3bd692293d29ec6c3f200a1c", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-1195487518-script_types2]": "9947c715ee1231b02dad2d0c741960c041463b7436438632d6beec8770062af5", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-3h-100h-4-255-script_types1]": "a74c0ed4d4ad2804093ebdac4c0fd354a152f5261893b0d7e3dccbb49ce390b3", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-4-255-script_types0]": "a74c0ed4d4ad2804093ebdac4c0fd354a152f5261893b0d7e3dccbb49ce390b3", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-49-0-63-0-255-script_types4]": "220eb73b788c8caf51dd5eb204b53235f9c164e54682a6ff93dec54d119b04d1", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths0-address_index0]": "d81c987c98f00a8482a5adfc8dc187a77264d086ae0a8d00543afe0c6218848a", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths1-address_index1]": "d81c987c98f00a8482a5adfc8dc187a77264d086ae0a8d00543afe0c6218848a", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths2-address_index2]": "da070d42b59f3a64a303a33ea9358d5b1254293835101ca8470bec5638c5be43", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths3-address_index3]": "95123fab2c4d8e3e328ed3b521a0f2ba40aa750d26db9fd5aed223bee7c1b624", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths4-address_index4]": "d81c987c98f00a8482a5adfc8dc187a77264d086ae0a8d00543afe0c6218848a", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths5-address_index5]": "d81c987c98f00a8482a5adfc8dc187a77264d086ae0a8d00543afe0c6218848a", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths6-address_index6]": "d81c987c98f00a8482a5adfc8dc187a77264d086ae0a8d00543afe0c6218848a", +"TT_bitcoin-test_op_return.py::test_nonzero_opreturn": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_op_return.py::test_opreturn": "4a0ae478adfe6c8c1c64a56cac944d6c6182f5351bd17b0d701175d99c321bde", +"TT_bitcoin-test_op_return.py::test_opreturn_address": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_peercoin.py::test_timestamp_included": "2a4ce745ab43fa137a57cf6da9441711c8899a2c7eab7a9e25b283b53747a908", "TT_bitcoin-test_peercoin.py::test_timestamp_missing": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", -"TT_bitcoin-test_peercoin.py::test_timestamp_missing_prevtx": "3d1cb78590e69c5772d21405fc3f904730862b3a47b7762596be66fcede52c7c", +"TT_bitcoin-test_peercoin.py::test_timestamp_missing_prevtx": "a1d21219b7c39acdb22f626b8e26c23c4d8a35189a6aaba01f108c5a5ec9f209", "TT_bitcoin-test_signmessage.py::test_signmessage[NFC message]": "4c41515a7f5fe9ffd5805ed060cb9e3ca8e578c92fefa79479df738ca1636235", "TT_bitcoin-test_signmessage.py::test_signmessage[NFKD message]": "4c41515a7f5fe9ffd5805ed060cb9e3ca8e578c92fefa79479df738ca1636235", "TT_bitcoin-test_signmessage.py::test_signmessage[bcash]": "096a2d5f0c75af22be673fd1550e86987a61bb348b0102eec4913fe9cc8fbcf7", @@ -866,144 +867,144 @@ "TT_bitcoin-test_signmessage.py::test_signmessage_pagination[utf_text]": "4ac1d8e2491164d442b700ea65e430867d74a941ac0d0dc8d4f51f4494fd0bb0", "TT_bitcoin-test_signmessage.py::test_signmessage_pagination_trailing_newline": "3ecd60468981b8c59cae21ae1189ad42b9d69b87e86c17e51b40185e31a5c52d", "TT_bitcoin-test_signmessage.py::test_signmessage_path_warning": "2c8369a05493ccdd6a368f3428050f22fc5aa42cf5c34e4995c47c3c7bf764fc", -"TT_bitcoin-test_signtx.py::test_attack_change_input_address": "9ceadd6997aed08445e9878a6ec657ca6aaa7f765296e423889afbc1ce2ebc70", -"TT_bitcoin-test_signtx.py::test_attack_change_outputs": "bee8876d696520edaa48847d062e0707576d9e3b14f3c0289ec0b5ecdba2c93f", -"TT_bitcoin-test_signtx.py::test_attack_modify_change_address": "0ba8136fb2078c08f1059ad099fe2ca69a49d76c8aa846367b605f9f42493663", -"TT_bitcoin-test_signtx.py::test_change_on_main_chain_allowed": "0ba8136fb2078c08f1059ad099fe2ca69a49d76c8aa846367b605f9f42493663", -"TT_bitcoin-test_signtx.py::test_fee_high_hardfail": "d3eb72c019aa6394f2eda31a04ee17dcfadb412fc8ef036a9e0be42cb7c84f42", -"TT_bitcoin-test_signtx.py::test_fee_high_warning": "994effa78332e480271a57f951c68cd1b0d88874de6d169ccd6adc1e310a180f", -"TT_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.EXTERNAL]": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.SPENDADDRESS]": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOADDRESS]": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOSCRIPTHASH]": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx.py::test_lock_time[1-4294967295]": "4e31e5f4598791802e40708adda1a2c34b7ab8231feafe99e46b17600ff3d4bc", -"TT_bitcoin-test_signtx.py::test_lock_time[499999999-4294967294]": "dbb82aa1fb38ccac0cf3b44a6f8b5b17872ec4dd4c2e4eaefa5179979f2ee867", -"TT_bitcoin-test_signtx.py::test_lock_time[500000000-4294967294]": "dad909c8f1ba3eaafde963dfff56756f860509f9d22d89ff3551a6934dce96b6", -"TT_bitcoin-test_signtx.py::test_lock_time_blockheight": "dbb82aa1fb38ccac0cf3b44a6f8b5b17872ec4dd4c2e4eaefa5179979f2ee867", -"TT_bitcoin-test_signtx.py::test_lock_time_datetime[1985-11-05 00:53:20]": "dad909c8f1ba3eaafde963dfff56756f860509f9d22d89ff3551a6934dce96b6", -"TT_bitcoin-test_signtx.py::test_lock_time_datetime[2048-08-16 22:14:00]": "d5ca55c91edc5a6c08565d2961d3b1597bdbc01fda5cb9f097484f19e99ca978", -"TT_bitcoin-test_signtx.py::test_lots_of_change": "1ece8f608dbdebdda95a448c7baba7c6c72e35a219dae60655e7312497cd98e7", -"TT_bitcoin-test_signtx.py::test_lots_of_inputs": "66318a6e48ef0ca2cf06ea1512bea3461bd5e5d8487183f2b756997ae8d6e857", -"TT_bitcoin-test_signtx.py::test_lots_of_outputs": "6ab1c0fc57839bbf2f1d25ddbbd27e99cd0f713a184fc703b9c6ec3c8734a6cb", -"TT_bitcoin-test_signtx.py::test_not_enough_funds": "615ee88f8293754c8c58d2ce021d534045e8583628e8270baf41e7124c29c4cb", -"TT_bitcoin-test_signtx.py::test_not_enough_vouts": "e3997702eceed8e0f0807104e301e03630d0cbdc109d09dfa99a13c7f32825c4", -"TT_bitcoin-test_signtx.py::test_one_one_fee": "f227fdd9ff1c5a266ad6aa876321325cda3c8be1939c757b4c67dd7d5467c9cf", -"TT_bitcoin-test_signtx.py::test_one_three_fee": "7b0f4b0308604e3eb8eebf83a3c5ae2be4a382f53ee86677a4cf13313befea03", -"TT_bitcoin-test_signtx.py::test_one_two_fee": "edb48791ac8685a63288dea53e80d4af7fbeee99921514cb528676811f0e4f8e", -"TT_bitcoin-test_signtx.py::test_p2sh": "912e70232f20d358ea9a7d6fa585251c3887c402929e305569b2e94ec0e667e5", -"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[branch_id-13]": "279776ffe9f9ebc4f3b354c5c69b97d31817b43ad6b1dba67a44c791cd6d6f24", -"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[expiry-9]": "279776ffe9f9ebc4f3b354c5c69b97d31817b43ad6b1dba67a44c791cd6d6f24", -"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[extra_data-hello world]": "279776ffe9f9ebc4f3b354c5c69b97d31817b43ad6b1dba67a44c791cd6d6f24", -"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[timestamp-42]": "279776ffe9f9ebc4f3b354c5c69b97d31817b43ad6b1dba67a44c791cd6d6f24", -"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[version_group_id-69]": "279776ffe9f9ebc4f3b354c5c69b97d31817b43ad6b1dba67a44c791cd6d6f24", +"TT_bitcoin-test_signtx.py::test_attack_change_input_address": "4c8b0a21771c7141eb8d9af6c71dcee9da417570e5842bf6a410f32521eee868", +"TT_bitcoin-test_signtx.py::test_attack_change_outputs": "f081488f69d7ffd97079e65ae8bd64475d43ecdbf4da70ca16f0cac12ddb7094", +"TT_bitcoin-test_signtx.py::test_attack_modify_change_address": "287109384810cabb7c28adb7ddb4aa3ce28a410ae5cc959d62ad93624f73dbe5", +"TT_bitcoin-test_signtx.py::test_change_on_main_chain_allowed": "287109384810cabb7c28adb7ddb4aa3ce28a410ae5cc959d62ad93624f73dbe5", +"TT_bitcoin-test_signtx.py::test_fee_high_hardfail": "8ec1eefccd3e616ae07753e038c70323a03de323664cc87139ac4e3b5ad7d9b6", +"TT_bitcoin-test_signtx.py::test_fee_high_warning": "fcef68718fa6b1243e7f2e7a2d61f3d14756980c1f0f44eb53bf21530bcdd436", +"TT_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.EXTERNAL]": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.SPENDADDRESS]": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOADDRESS]": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOSCRIPTHASH]": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx.py::test_lock_time[1-4294967295]": "f29e8db0876f867070e08fd2dbbee3f09d3e1c4f2f2f6a6f72dc7b5c3bfd95fa", +"TT_bitcoin-test_signtx.py::test_lock_time[499999999-4294967294]": "831a42db4e87b776bba0842d7c94347e41fc8b6a4fe4192bc5060b2a9464ab80", +"TT_bitcoin-test_signtx.py::test_lock_time[500000000-4294967294]": "b0cc567cd0322883ab69445d116562cb415576c815e02e490fcabda42cb497a8", +"TT_bitcoin-test_signtx.py::test_lock_time_blockheight": "831a42db4e87b776bba0842d7c94347e41fc8b6a4fe4192bc5060b2a9464ab80", +"TT_bitcoin-test_signtx.py::test_lock_time_datetime[1985-11-05 00:53:20]": "b0cc567cd0322883ab69445d116562cb415576c815e02e490fcabda42cb497a8", +"TT_bitcoin-test_signtx.py::test_lock_time_datetime[2048-08-16 22:14:00]": "3ca6dd6fd502a8972df731badf131f66f3dd2e13be72f46e66465ecab44b5705", +"TT_bitcoin-test_signtx.py::test_lots_of_change": "45671814b0374f4636e36ea9570205bba926357cb38bdf9f4a1ad7b0c9e6d009", +"TT_bitcoin-test_signtx.py::test_lots_of_inputs": "37d82299f8242edae674cf79ddbfc873c5f8d0c64c11c3bf6cbb7f881da8bace", +"TT_bitcoin-test_signtx.py::test_lots_of_outputs": "15aced0e211fa1cbdb3f2b6c4513748049c94dded816a3c7eed833650ccbb7ee", +"TT_bitcoin-test_signtx.py::test_not_enough_funds": "2d40ece741bda82c2b78f05832e30244f29753b78e030ce599faa74b80b5b2f7", +"TT_bitcoin-test_signtx.py::test_not_enough_vouts": "3eeab480843b766d4c0748b92f9e001b759fecfc81adae5a4a1d6deab41c6f9f", +"TT_bitcoin-test_signtx.py::test_one_one_fee": "ac51cff6c69149abdaaabecfed9d27df996e4237f57870563aa4b4e516513535", +"TT_bitcoin-test_signtx.py::test_one_three_fee": "f7fc5094e9fac2aba50269846deee6107de8ca1e1c67e907786b7d218affb279", +"TT_bitcoin-test_signtx.py::test_one_two_fee": "e1b2e3758c58e7c014d54639d08e64881242c9b8476151ea150a442560454901", +"TT_bitcoin-test_signtx.py::test_p2sh": "760ef7b2304613be4ce1317b06ad8cc13b0baa45322e925c61b70b2ac5a7b446", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[branch_id-13]": "44bd3a6cfd533d5682f44bd4f4f9c19bec78392c22152e3c4358f8dc5c9c556b", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[expiry-9]": "44bd3a6cfd533d5682f44bd4f4f9c19bec78392c22152e3c4358f8dc5c9c556b", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[extra_data-hello world]": "44bd3a6cfd533d5682f44bd4f4f9c19bec78392c22152e3c4358f8dc5c9c556b", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[timestamp-42]": "44bd3a6cfd533d5682f44bd4f4f9c19bec78392c22152e3c4358f8dc5c9c556b", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[version_group_id-69]": "44bd3a6cfd533d5682f44bd4f4f9c19bec78392c22152e3c4358f8dc5c9c556b", "TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[branch_id-13]": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", "TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[expiry-9]": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", "TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[timestamp-42]": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", "TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[version_group_id-69]": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", -"TT_bitcoin-test_signtx.py::test_spend_coinbase": "5eb21da7f0df53e1cb91090d6cb199e01bb03facde95e57ae3d8aa3df9da3ca4", -"TT_bitcoin-test_signtx.py::test_testnet_big_amount": "66bc8b4f94383017a6c348ee7efcc6c82e4703ff3542cdaa46fd578adee2d9f2", -"TT_bitcoin-test_signtx.py::test_testnet_fee_high_warning": "3dcebbed8d63089624e19d859a6acfb2aca368d03797144873b4206b5d82b5f8", -"TT_bitcoin-test_signtx.py::test_testnet_one_two_fee": "0ba8136fb2078c08f1059ad099fe2ca69a49d76c8aa846367b605f9f42493663", -"TT_bitcoin-test_signtx.py::test_two_changes": "0b9072f425c58bb12f7eb96bf99da624fc1fb0bca4927385489fe93717c52b1b", -"TT_bitcoin-test_signtx.py::test_two_two": "422ee61e55fb4132d4900f9ac10ea27e45b56e1f36b7df533b320f86d7ca886f", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.BITCOIN]": "f227fdd9ff1c5a266ad6aa876321325cda3c8be1939c757b4c67dd7d5467c9cf", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.MICROBITCOIN]": "54bec4d63f211bfe76c89e48ddee5ad277af3e9b4b2d28c1e42ae4144453537b", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.MILLIBITCOIN]": "e56cc3ebebe34637fdfa543f422bfe964b2d695c0bbac1c11ae04327772f54ba", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.SATOSHI]": "30dd433c586eef18e5e4134f3243ad8222b2d0ea093b18559043ba5e756aed33", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[None]": "f227fdd9ff1c5a266ad6aa876321325cda3c8be1939c757b4c67dd7d5467c9cf", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.BITCOIN]": "6be7e3871f03fe7c8c34b2d20a43a2650595c938e7ccc4169f173bef3de677d8", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.MICROBITCOIN]": "00e46e724ada6a9622868fd0bc7e493587b3fd280b10423a708684483a26d7ad", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.MILLIBITCOIN]": "2950f443980e934672fcc11d9be5128282446466e3d0b6d0b1a754cf16295721", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.SATOSHI]": "99189ac7a561ded344b460216680d326bb0486dfe27adf40b8c570dd9e0dbdb9", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[None]": "6be7e3871f03fe7c8c34b2d20a43a2650595c938e7ccc4169f173bef3de677d8", -"TT_bitcoin-test_signtx_external.py::test_p2pkh_presigned": "8dd8089941ceb0d82c9425c69d54240f99e3ae7932ef24acd49313d28389b683", +"TT_bitcoin-test_signtx.py::test_spend_coinbase": "a479805cd7cdf662d608efe1d9be381871400f0cbe18ecd61d8dcf06c0d9368d", +"TT_bitcoin-test_signtx.py::test_testnet_big_amount": "3e228386362f4cce36333866eed8c6180c85af5cd3014e38ced4b91a8d0a4ff5", +"TT_bitcoin-test_signtx.py::test_testnet_fee_high_warning": "1f75a5f02cf68c7a9fe8c2ceacd803435cccbd21d1995b1ec92e05b502efeed1", +"TT_bitcoin-test_signtx.py::test_testnet_one_two_fee": "287109384810cabb7c28adb7ddb4aa3ce28a410ae5cc959d62ad93624f73dbe5", +"TT_bitcoin-test_signtx.py::test_two_changes": "28967a67bbe4fee263aebb2d2b11eeab55ff28017b59e01de44123f2521550de", +"TT_bitcoin-test_signtx.py::test_two_two": "f26bff4732775e2172d8bf808940ff81c5cf64b40c40acbcd7423ecdd7e52557", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.BITCOIN]": "ac51cff6c69149abdaaabecfed9d27df996e4237f57870563aa4b4e516513535", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.MICROBITCOIN]": "a8ecc8b689d9b5d6c15ae894b82fc654a6e7ba311709d14375906f6a5f237976", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.MILLIBITCOIN]": "14313301c554e47b405d8e9bbe15281e4c3fdd8864d679aae140dccd0e80722b", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.SATOSHI]": "48db1695c971530094ffba6fa875c125db8d5c11a43a7bd308ac3e7082b47ec0", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[None]": "ac51cff6c69149abdaaabecfed9d27df996e4237f57870563aa4b4e516513535", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.BITCOIN]": "f7f52edeb114096c7db09a4754193ed022413eedec16ead8c2cbcc8f46ce0ef7", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.MICROBITCOIN]": "9d226a7ba5cd32725610125046c9b545b381a6861c99b386fba42de25e4e8cf7", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.MILLIBITCOIN]": "3a00cd4c12f37a50c813b5e71822ad341fa4248330a5b205cc3786b2eebb5e01", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.SATOSHI]": "e3300d92255e187d777521fe33e84313feb02db47cc3df0fa539fa78e032efc8", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[None]": "f7f52edeb114096c7db09a4754193ed022413eedec16ead8c2cbcc8f46ce0ef7", +"TT_bitcoin-test_signtx_external.py::test_p2pkh_presigned": "2b82b72b0b98bcdf89835c844883831e4c02f7e454f419c824de0e2a1ba8d08c", "TT_bitcoin-test_signtx_external.py::test_p2pkh_with_proof": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", -"TT_bitcoin-test_signtx_external.py::test_p2tr_external_presigned": "c714c4a4ea8b98dfbdd8185925adafbafc62570f415688972d6003a19d7b4d23", -"TT_bitcoin-test_signtx_external.py::test_p2tr_external_unverified": "57938429cc9af038841d10303300ad09db765f2b56fc36bd7331fa148ed2f361", -"TT_bitcoin-test_signtx_external.py::test_p2tr_with_proof": "d6723e2243bc38231ec4eb9ed63afd39610460c0d859b4c576b12db1f7915d02", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_external_unverified": "a59d4430bf2e3be91ee7810e93b9a0550b694a59e054ab8c7c5ec40bc7b09e5b", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_in_p2sh_presigned": "8313bff77e41aef142c3b25818ab58dcc7e9d658d38e2e8fc50629ebbe05869b", +"TT_bitcoin-test_signtx_external.py::test_p2tr_external_presigned": "cc9b10f8cf136cae5b500f605f7a2fb5b725c8a34fbee2e6d6b8a7792ab8668f", +"TT_bitcoin-test_signtx_external.py::test_p2tr_external_unverified": "03c36e192bc278e8c033a47fb168ea93a35de6055f6f1a52277eecef26e27e52", +"TT_bitcoin-test_signtx_external.py::test_p2tr_with_proof": "a1b26afe79dc892adb4b9cdbdae4ef7c8c3d3eeb459082e5cd79392f48c28106", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_external_unverified": "a34ed066862ffc9288b1d181ddc0f4996acdf362b6b15776d5857641a34ec006", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_in_p2sh_presigned": "4152594dc357c64a682af26a3c9c750dcd15b944bcc0a869e01fd2f2a06e8678", "TT_bitcoin-test_signtx_external.py::test_p2wpkh_in_p2sh_with_proof": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_presigned": "4608478b1d61415cf0ec93a0ea4397c35d17a91d4b6d25e9c024b77330e398eb", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_with_false_proof": "ca3bdc82d0ddd668d50635ddbc91019095311e0c165094a89b9ae6eda53abdd6", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_with_proof": "f5f2f9bc3c50908ce41046096586387b0db86796c54cb70216e4fedbb68995c6", -"TT_bitcoin-test_signtx_external.py::test_p2wsh_external_presigned": "cd1a603df8ce086697c290aa63b9d922f8360ee5b34ff0dbe5eec4f9c4dd8636", -"TT_bitcoin-test_signtx_invalid_path.py::test_attack_path_segwit": "f58bd4cdcf02be59294ac238913bbd4068f728ac9c2d2adb5cd03cced413ba18", -"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_fail": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_fail_asap": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_pass_forkid": "35765c453a575f613f31270c512b788303397039a5b2e65b62406012712999b8", -"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_prompt": "b26a5148b20ec841a8682ceae46277d6901a17b90235d010c0d9d4376ad16428", -"TT_bitcoin-test_signtx_mixed_inputs.py::test_non_segwit_segwit_inputs": "46e8ee40952b104555a1db7757c3b57991ad5d72893c5b15136f3dd322946df7", -"TT_bitcoin-test_signtx_mixed_inputs.py::test_non_segwit_segwit_non_segwit_inputs": "df1de5d365652b452cb8f671119d71024ef199849b7c245253c1884e3aae0a4c", -"TT_bitcoin-test_signtx_mixed_inputs.py::test_segwit_non_segwit_inputs": "46e8ee40952b104555a1db7757c3b57991ad5d72893c5b15136f3dd322946df7", -"TT_bitcoin-test_signtx_mixed_inputs.py::test_segwit_non_segwit_segwit_inputs": "e40b2422bfada0bfe14c8d33a7f5f2e1ba2093c5d7270c8b987a6856e76ffbcb", -"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_amount": "1d0da9c044d6aa5523f94e91e882f8839457d51097093fc2e5938285341a1949", -"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_mac_purchase": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_mac_refund": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_output": "887f26b4ddbb365d903b27fb9c2fab54760b2ba6f5f5252a82d8e5b4fc611fbf", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out0+out1]": "f59fb2256eab6a23e9d1ac3e0226da69798e255d97d2e59161bec9d0253d9936", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out012]": "8ddeb8d1bd29e033a87516c98cfc5b21992430ebd9fe3cb6f725b5ad86bf7b0a", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out01]": "c88b654d2e632b56728aeffcad018530237fcdb6e51e6ddcea30bc9167ed630d", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out0]": "1115ce17c5a51a57fc4ca1a4ce599d9ee8281f5d7f7913f3d3290ceb14cf7898", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out12]": "d84df1ee9d39aa1919ea57fe6734f848e93f157a1aeb8c69a9b3cbd1e5bba9bd", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out1]": "44703c8dc2ded69d704d7ae2ab65a905b0c41b4e09f71c33e1294ad794a4a15d", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out2]": "b641cbb16c414081f7f9e8fc6d813175aceaff4439fb089917aef4a489e1da80", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request_details": "0ed8ad1c727cca770469b4984d2a183e9c218ee7f594e32c1c0cb6889454105d", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[]": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[hello world]": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[x]": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[]": "b3218467fd32af13d056ecaf1252cfd280aee25e9319dffb3e86e65c0e6b3a15", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[hello world]": "b3218467fd32af13d056ecaf1252cfd280aee25e9319dffb3e86e65c0e6b3a15", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[x]": "b3218467fd32af13d056ecaf1252cfd280aee25e9319dffb3e86e65c0e6b3a15", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "b3218467fd32af13d056ecaf1252cfd280aee25e9319dffb3e86e65c0e6b3a15", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[]": "8bd57f4a2f7ebb388810b224cd17f00a248894e1e4926984e7453161fd044a9e", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[hello world]": "8bd57f4a2f7ebb388810b224cd17f00a248894e1e4926984e7453161fd044a9e", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[x]": "8bd57f4a2f7ebb388810b224cd17f00a248894e1e4926984e7453161fd044a9e", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "8bd57f4a2f7ebb388810b224cd17f00a248894e1e4926984e7453161fd044a9e", -"TT_bitcoin-test_signtx_replacement.py::test_attack_fake_ext_input_amount": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_replacement.py::test_attack_fake_int_input_amount": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_replacement.py::test_attack_false_internal": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_replacement.py::test_attack_steal_change": "04ba3e05862eef616957f9f0c67f7a1d841a3bc7278c5fd999dfba4ebeee5314", -"TT_bitcoin-test_signtx_replacement.py::test_p2pkh_fee_bump": "cfd258bfda629705ce055428b7a6d296d4a96eccf26dee516de2a40efbbb6937", -"TT_bitcoin-test_signtx_replacement.py::test_p2tr_fee_bump": "5c6b7cf766476c68455bbbabf8cfff24ac053efca9d2d43d7e47ad241436bea0", -"TT_bitcoin-test_signtx_replacement.py::test_p2tr_invalid_signature": "5c6b7cf766476c68455bbbabf8cfff24ac053efca9d2d43d7e47ad241436bea0", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_finalize": "ad3e62fe3fffae576b98ebafaca19f870271a4af0f47791f5061a97398d60bdf", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_in_p2sh_fee_bump_from_external": "2e1986726c176efa569ad7a2b5b81b4ee1dea6f8ddf87c15789df81909a5ba2b", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_in_p2sh_remove_change": "93bd24bb6fc24c8bb43222d83536ee3557a661635eac6b23d898f93e7329cbba", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_invalid_signature": "ad3e62fe3fffae576b98ebafaca19f870271a4af0f47791f5061a97398d60bdf", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_op_return_fee_bump": "a65bb3df6ba4f68c6060efe5eef5fd1e66d6e9457becf6c4e8112fec028d153b", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909659-90000-02483045022100aa1b91-c9b963ae": "da3ec44de0435cca3828752a0ba44483b2f087d1ae02c99530be4bcd01b80e57", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909718-90000-024730440220753f5304-ecb983d1": "da3ec44de0435cca3828752a0ba44483b2f087d1ae02c99530be4bcd01b80e57", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909800-89859-0248304502210097a42b-7a89e474": "da3ec44de0435cca3828752a0ba44483b2f087d1ae02c99530be4bcd01b80e57", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909859-89800-02483045022100af3a87-80428fad": "dd877653d915f04f7da7370ebe3b166773eb8c04ba50f332b2dbbb307907d48b", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909859-89859-02483045022100eb74ab-881c7bef": "da3ec44de0435cca3828752a0ba44483b2f087d1ae02c99530be4bcd01b80e57", -"TT_bitcoin-test_signtx_replacement.py::test_tx_meld": "8c7644e2b3622cde70069716a9669772ab2add220204bd4e468a84fb9fd75c89", -"TT_bitcoin-test_signtx_segwit.py::test_attack_change_input_address": "f2096a8da153a61cef11be2e5935b20d8dc94c15ea14fad9bce2e4eefaf6ea9d", -"TT_bitcoin-test_signtx_segwit.py::test_attack_mixed_inputs": "5d5cd7ad1a8bcefbd0f9b82fd0223ad63d6436c730e6c42be742bcaa00f9d508", -"TT_bitcoin-test_signtx_segwit.py::test_send_multisig_1": "5627e49c098d18deccb59b74c1a8bc8e32eb36941f03c24cf3cd3b4d99b60d30", -"TT_bitcoin-test_signtx_segwit.py::test_send_p2sh": "18cefbb8625b157646c80546c599ca8d0f12a2cb096e7cf4f002de9a44021fbb", -"TT_bitcoin-test_signtx_segwit.py::test_send_p2sh_change": "025e46a381adbeaef4b6b7b86f8ef16c80760ad2371a92f4a85174548e3d9782", -"TT_bitcoin-test_signtx_segwit.py::test_testnet_segwit_big_amount": "9db6c35162b766dd828aa996473bfb07376a5d9705ac9de65d992d7a4a8108d3", -"TT_bitcoin-test_signtx_segwit_native.py::test_multisig_mismatch_inputs_single": "e0de5489dc73eeb177cc69024386a39812af9ba8fb3730384bed80f7fa76bb1c", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_both": "3d2415f2175000db1b48e2f6b94a539dce9fe6f59ea626dd0f58726bb134a003", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_1": "a0ce76c011921a4c743e84f1feb65aff4fc026892d21e6b936858fcdcee25675", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_2": "08143b5a47b2c519e239cda6431a0b5e84fbc447e11f1151048aaf6ed62f1438", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_3_change": "e1e6d3e1f2c99838dabe637b52e00f2a1ad03371b7d99d49a5dba506b7712e18", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_4_change": "437e30f86f9af2865f5b504323235ffc7c7a4e62487e4044971a61d2603ddfdb", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_native": "6be7e3871f03fe7c8c34b2d20a43a2650595c938e7ccc4169f173bef3de677d8", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_native_change": "79eb1830a852268418860175c9e4d7e710d37fc17233cbca0a64f319c2883f49", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_p2sh": "c867407a437f21cdcb7fe963deb696fb0ef3e156b97e0c41f0b8c4dc5210965e", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_p2sh_change": "14b3a2a82930d478cebd66a27ad632e5b331d339e591f28daf8d177af092e2d0", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_to_taproot": "2e444f1ac369e8c0dc3e634f7f535148f9de91721734ac83678aff27af816c48", -"TT_bitcoin-test_signtx_taproot.py::test_attack_script_type": "4b9c6147c3340b0a9e810990df7e8429d31b1925b35dfcb67025a2be31a945df", -"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1pam775nxmvam4pfpqlm5q06k0y84e3-a257be51": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1plllllllllllllllllllllllllllll-aaa668e3": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1plycg5qvjtrp3qjf5f7zl382j9x6nr-5447628e": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1zlycg5qvjtrp3qjf5f7zl382j9x6nr-880d4a6b": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_bitcoin-test_signtx_taproot.py::test_send_mixed": "6e664f837b805f06a329810449af860fc247672bdc637ad67280041944af7b6b", -"TT_bitcoin-test_signtx_taproot.py::test_send_p2tr": "1c4df7e736815d063f729cab0e214fd0dac1e670f5471f7ee8cd30ac5b33e1b4", -"TT_bitcoin-test_signtx_taproot.py::test_send_two_with_change": "6c09c8bed294c912e4f504ce9ec6d786ca933a6e652b288d9c2140ccbfbe83a3", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_presigned": "06d4094a9c00ad4d2bdbb735c5d5a2fef2699ff14370f0713b1fe0f604207a2a", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_with_false_proof": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_with_proof": "3b74434a1ac9d09f3b69cc550884045d01c052953d8b0c9104ac277877d0d679", +"TT_bitcoin-test_signtx_external.py::test_p2wsh_external_presigned": "65b82c2725a5a7e7e34d77b61b5904e5575400f99c4c0a678502bb4d1d91c993", +"TT_bitcoin-test_signtx_invalid_path.py::test_attack_path_segwit": "cca98d2f9f922f362a7257d7bd2904dcd4b02030c80a74126e6cd57718df2d49", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_fail": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_fail_asap": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_pass_forkid": "1f8bb7df08d50b14e39991d9373e6aaf6a79f630c62a001d6096b3bfde0e73a7", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_prompt": "fc45b70974f42d3f4a5f2aeb4fdb52349a4266e86c5a909dae1a5702245c383c", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_non_segwit_segwit_inputs": "757c96d6add55da1af05d3bded30fef435e6fab3af5de9b527b21663944a3639", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_non_segwit_segwit_non_segwit_inputs": "dca292364a171956959f3ee13135da6c8749de9a53c7aeeb9d92382d88feab3c", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_segwit_non_segwit_inputs": "757c96d6add55da1af05d3bded30fef435e6fab3af5de9b527b21663944a3639", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_segwit_non_segwit_segwit_inputs": "266ce827b0001d49c9eb16f9249e08b24c22268a7a598560a28e63579679c31f", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_amount": "5b71fe6336c37d6693b58aba3435b49116fdf84796958202edb3ccaea62afe5a", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_mac_purchase": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_mac_refund": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_output": "0ab16c6a749d4554d0a8d49e2c6378ff640bc2969977e86100619b40c7b90c0c", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out0+out1]": "055c967d2cb61243c3b4bd6561744de12c3c306455143289cb7a8c2110845ad4", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out012]": "51944756afe60a54eca444d18005f2bf9e3b37183446384e90e442b2b063bc18", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out01]": "99cf90778973e3905761ea5d6342e9fb4339351dbc64a09a6b6f625bc1602bd3", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out0]": "3ea1cf1b2e9ea446b80385f0c5b1137998f5667d32361643c753b917ec431e0d", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out12]": "088b4057a7f9945fa2efa6cc4d7d8badc4e2425bdc784de67a4ce6aca71ce5b9", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out1]": "5630b7b6d480d9704b81b3b0e820040c73a81de1bd85bf8a3fe4fbd4520dba03", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out2]": "a046bd1881273e2ca112dcc0b710800261122e5d79bb235ab5a2f8c9c058f49c", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request_details": "0e3fa5cb1a082a1ebd0d820dbfa5d468852475cc3ed60bca9171b6bc33b5cc67", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[]": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[hello world]": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[x]": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[]": "610f5ad4090bb5bc8f21238057825a8710d2a24efc92ac688c03dbb1dd84d512", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[hello world]": "610f5ad4090bb5bc8f21238057825a8710d2a24efc92ac688c03dbb1dd84d512", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[x]": "610f5ad4090bb5bc8f21238057825a8710d2a24efc92ac688c03dbb1dd84d512", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "610f5ad4090bb5bc8f21238057825a8710d2a24efc92ac688c03dbb1dd84d512", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[]": "4a0622ab296de5a0c759a7f22769c9ac04bd55f8ee6cebc0ae07c77d74ba7014", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[hello world]": "4a0622ab296de5a0c759a7f22769c9ac04bd55f8ee6cebc0ae07c77d74ba7014", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[x]": "4a0622ab296de5a0c759a7f22769c9ac04bd55f8ee6cebc0ae07c77d74ba7014", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "4a0622ab296de5a0c759a7f22769c9ac04bd55f8ee6cebc0ae07c77d74ba7014", +"TT_bitcoin-test_signtx_replacement.py::test_attack_fake_ext_input_amount": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_replacement.py::test_attack_fake_int_input_amount": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_replacement.py::test_attack_false_internal": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_replacement.py::test_attack_steal_change": "6681da4d70d43899fbf1cf6e8e4ed6abf3568dcf4231d556b50c9eaa2f783ac7", +"TT_bitcoin-test_signtx_replacement.py::test_p2pkh_fee_bump": "94cd6139cdc60eb430753ead8c40892d9abb33c0255cbf39d5441839b70352b7", +"TT_bitcoin-test_signtx_replacement.py::test_p2tr_fee_bump": "9f40f71259a0012d6ecea803f8bee16208771a7934da263a3e5f7b3dda7b6809", +"TT_bitcoin-test_signtx_replacement.py::test_p2tr_invalid_signature": "9f40f71259a0012d6ecea803f8bee16208771a7934da263a3e5f7b3dda7b6809", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_finalize": "b9c548297f02d82cd07f8705d967aae8d12c7ca715f074b9db1d90e2409913ce", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_in_p2sh_fee_bump_from_external": "78351e4cbafc8b045af4285620f38d9563da5f0daeee13919ecd06584bbea339", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_in_p2sh_remove_change": "e31170c94d25198ff2ed58fa02cac5c0de3441a33e5b659727f3513b79948a75", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_invalid_signature": "b9c548297f02d82cd07f8705d967aae8d12c7ca715f074b9db1d90e2409913ce", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_op_return_fee_bump": "2793399f143cab86b0a8cc7009bc69380a0b87e626dc4c84d31044aee96a3735", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909659-90000-02483045022100aa1b91-c9b963ae": "d8070055da5c7e9feb2ea5a1c90379b9ad11fc37cfd31dd8f83a61006fb19dfa", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909718-90000-024730440220753f5304-ecb983d1": "d8070055da5c7e9feb2ea5a1c90379b9ad11fc37cfd31dd8f83a61006fb19dfa", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909800-89859-0248304502210097a42b-7a89e474": "d8070055da5c7e9feb2ea5a1c90379b9ad11fc37cfd31dd8f83a61006fb19dfa", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909859-89800-02483045022100af3a87-80428fad": "d6cb5dbe5d76fd885b09084011bafea0891980867f7b9ac7bf24a3420e58ab66", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909859-89859-02483045022100eb74ab-881c7bef": "d8070055da5c7e9feb2ea5a1c90379b9ad11fc37cfd31dd8f83a61006fb19dfa", +"TT_bitcoin-test_signtx_replacement.py::test_tx_meld": "e0e8000d53e2779c52b1681c9bf56130c4fd39358402d97761bfad4420127ad2", +"TT_bitcoin-test_signtx_segwit.py::test_attack_change_input_address": "f693631c31c4200b91eaf06478b9d055e965f992d685144bb4109eff8167e80c", +"TT_bitcoin-test_signtx_segwit.py::test_attack_mixed_inputs": "03f6d3da304efa63cf8b2e4a89be3dfa5cd42dd1db0bb60f3dfb11d22d1dad97", +"TT_bitcoin-test_signtx_segwit.py::test_send_multisig_1": "4f03dad89635e8cf626a79196409084cb65f5b4bc2e84531b36d65462b95358b", +"TT_bitcoin-test_signtx_segwit.py::test_send_p2sh": "16635a0d68582caaa8a133942ba2e9a5568ab7f5a23053a2264cae32f649430f", +"TT_bitcoin-test_signtx_segwit.py::test_send_p2sh_change": "3d1d575e2b33c54a9f1fe053e16a24db37462183205b0599b7a1716b731611a7", +"TT_bitcoin-test_signtx_segwit.py::test_testnet_segwit_big_amount": "a49e5750166d9241aa4216cbd71f437ec02b1d8a6c4310aae924a940d593b81c", +"TT_bitcoin-test_signtx_segwit_native.py::test_multisig_mismatch_inputs_single": "74543b19824b1dcb400fec50176e1648544f39006246a232809d88ad5aee3cbc", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_both": "1a868d2dc43a63b00714239a72ecb7844c5b75aba71f23b31fab3f8259937e41", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_1": "8b9562d71e7176f296051235a8b3055a8a800e8a4bf49b5648c7bd216dd9aac0", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_2": "f63d1c961a2740284f8fcbf4ba1bdb5fb92cf3cb60a3789114923be0f2b230fb", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_3_change": "52ae7544005a64b200bc204610398710d9b347f6846f1926a9539d13df2e4cb2", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_4_change": "86fe20780a2685652ac5c084cbf2d185e5ad0eb1753927c82d5d392b0ee5b693", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_native": "f7f52edeb114096c7db09a4754193ed022413eedec16ead8c2cbcc8f46ce0ef7", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_native_change": "41d196a0c71907a8f3c85fea019fa994a1e0c86236f134cde9e23637b8d78611", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_p2sh": "3aea5b82cd046eb946036000a83d66ac5340bc665a022f5db1b19d64abeb8883", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_p2sh_change": "6c7d310667c74ddc121305533487bdf7a2a85d04f3d99313aebd150ff9a7338d", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_to_taproot": "b10f36bf2a3b0aa1c93e47bbfe2e8e75eb38dc3c4b89dc5bd666b0dafe837724", +"TT_bitcoin-test_signtx_taproot.py::test_attack_script_type": "144715780a0689dca891d67250155b09c758390ba3e0c2367eb811e8b33fbc5b", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1pam775nxmvam4pfpqlm5q06k0y84e3-a257be51": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1plllllllllllllllllllllllllllll-aaa668e3": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1plycg5qvjtrp3qjf5f7zl382j9x6nr-5447628e": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1zlycg5qvjtrp3qjf5f7zl382j9x6nr-880d4a6b": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_bitcoin-test_signtx_taproot.py::test_send_mixed": "2df8078906e3d573e5446df981af8ee8a916204eb5abe077d71b89bcf214c85b", +"TT_bitcoin-test_signtx_taproot.py::test_send_p2tr": "98d3f52d2fa1b084a17c08ebb1d2a3f1e8531c946be859db16f4e9b806fc8370", +"TT_bitcoin-test_signtx_taproot.py::test_send_two_with_change": "f4f9bb6eb58506646ec04d483872b7010400e3c98e5d2a4ebbff8ae6b8efb01a", "TT_bitcoin-test_verifymessage.py::test_message_grs": "efba87e334f62f3ee18ce6ac2f6e8ba3738fc53434ad8d4027643d2047945620", "TT_bitcoin-test_verifymessage.py::test_message_long": "ddd376c7ce7731d990f231a81532dfa13d6a03bc88e5a77278d6eef514b496a2", "TT_bitcoin-test_verifymessage.py::test_message_testnet": "af4598881e7afbfb81313622d7186cd90e8bdcfdada4a0c0f31ca5f0af5f8d5d", @@ -1019,10 +1020,10 @@ "TT_bitcoin-test_verifymessage_segwit_native.py::test_message_testnet": "f36a0eaed6ff6d64c37fc147a05ec24637aea9a81360d5ba14d6c87db35a6e3a", "TT_bitcoin-test_verifymessage_segwit_native.py::test_message_verify": "912a94f466108c9d6b67a1cc9aa8b6a2a7d29ab9003c39e9f70aa10b0ff7b5e8", "TT_bitcoin-test_verifymessage_segwit_native.py::test_verify_utf": "faf3fddc43290a424243562f3ed7598d5127b71b1680aee40e56f0b01d22664a", -"TT_bitcoin-test_zcash.py::test_external_presigned": "08a22a49793201f8387a085a554f006387d1df1b37ed8a34bef7aa79b363b44b", -"TT_bitcoin-test_zcash.py::test_one_one_fee_sapling": "ad8453495a316a0f01126bf882a5502f51e1ee622e56c7c175ba74fdba5dbc51", -"TT_bitcoin-test_zcash.py::test_spend_old_versions": "a58d7407f20caf14f9075618d09e5329eff592e9e432964487fe90954b9c2b21", -"TT_bitcoin-test_zcash.py::test_v3_not_supported": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", +"TT_bitcoin-test_zcash.py::test_external_presigned": "e46a3f36cd8455b265e90f7031c7e17a6b48bdfd5e0d21aafbea8783be76ef2e", +"TT_bitcoin-test_zcash.py::test_one_one_fee_sapling": "9e7d4fdccda37917aaa1b4b1acee68f934fa01f44c4aeeb2664446a66d35d34f", +"TT_bitcoin-test_zcash.py::test_spend_old_versions": "4cd417416e3b8ac366194ae4b09f1bde69a73d50394164c3b5c1c4bde3831526", +"TT_bitcoin-test_zcash.py::test_v3_not_supported": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", "TT_bitcoin-test_zcash.py::test_version_group_id_missing": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", "TT_cardano-test_address_public_key.py::test_cardano_get_address[icarus-derivation]": "61bf57f65a018283d5e314f95f5580fe751eb3f09cd175a8f9e47f677419cbf2", "TT_cardano-test_address_public_key.py::test_cardano_get_address[icarus-trezor-derivation]": "d2b12b3a3fe426785e5dad64d7b48e8e266983011f8a837abccc2f4a8f9c43e6", @@ -1622,7 +1623,7 @@ "TT_test_protection_levels.py::test_passphrase_reporting[True]": "d9e9bdb39d15d6737ed6234f16c36bb7ad95ca54067ff8f10cffccaa3caa96cb", "TT_test_protection_levels.py::test_ping": "5551c263e8e09c8ae683f4dec3dd9d7ecc05ebbd3f2556604b27479c8f1fbc82", "TT_test_protection_levels.py::test_sign_message": "045d2faee841a79441683a6fdc912c3c69ecc0289b6c9801580942d47af7f0de", -"TT_test_protection_levels.py::test_signtx": "9ade9ed2b2a02f31e116bd01e3b6213420912c4d4635ce8af85c3d3052270766", +"TT_test_protection_levels.py::test_signtx": "4e25293cf3860a06e2e858272450fc747f1a11c8c2426c0028c38b7ce97b5856", "TT_test_protection_levels.py::test_unlocked": "f2be4c8c13c6a201770966438ffa9bcfe0eb031683920f93a55fa92921a28b51", "TT_test_protection_levels.py::test_verify_message_t2": "0cf43552a15684fbf506cd56871ca07795f62ec5f57176705aa968c9f97ef3d8", "TT_test_protection_levels.py::test_wipe_device": "a30d958dda50b06e8bfc1c861c0ff2c0eb4acd0656bdf1dcd6474660882e3cd5", @@ -1664,14 +1665,14 @@ "TT_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "cadca03c9ce7db592663bc0224364c0d4bf99fcae60e0982b4a844ce629e500c", "TT_webauthn-test_msg_webauthn.py::test_add_remove": "3219e5ad2719319e74b5c75b1096ca7e3d30467215c15f57e57e475afdaa188f", "TT_webauthn-test_u2f_counter.py::test_u2f_counter": "19f77e2d284431da5fadac938f5822c1a6b17c07ee6c801085efd84974f3163f", -"TT_zcash-test_sign_tx.py::test_external_presigned": "08a22a49793201f8387a085a554f006387d1df1b37ed8a34bef7aa79b363b44b", -"TT_zcash-test_sign_tx.py::test_one_two": "c9e1737f4637c6f84f1c3d987b0b8f1b43a530275d0bc57239b1e180b3209809", -"TT_zcash-test_sign_tx.py::test_refuse_replacement_tx": "1c100ce4b7c1e47e72428f390de0846c1ff933e9f07894872644a369a9422738", -"TT_zcash-test_sign_tx.py::test_send_to_multisig": "38d0fc457944c0b00a32f13dd979712aa7a929adfda3fdc37e88f6db94ec4873", -"TT_zcash-test_sign_tx.py::test_spend_multisig": "5791832c8a887dbd217a0079ad0c610f459695cdd9119a54dfa7b2d93ec9efc8", -"TT_zcash-test_sign_tx.py::test_spend_v4_input": "3ced9fa75f7be7ee2314bff9c4244adf0048837c5d778e221c65d4a6587645ae", -"TT_zcash-test_sign_tx.py::test_spend_v5_input": "4eb400c6524af00b7fabf707a66345380356bb22c055ef7548f9417dea8a6e4f", -"TT_zcash-test_sign_tx.py::test_unified_address": "6e82a3afa1bb20a5c7dfdf744a3bdec3c2d7413332add2285639979b6f0816f6", +"TT_zcash-test_sign_tx.py::test_external_presigned": "e46a3f36cd8455b265e90f7031c7e17a6b48bdfd5e0d21aafbea8783be76ef2e", +"TT_zcash-test_sign_tx.py::test_one_two": "7aeeb24caba9d74015bb3ba49c8de6b82e967e21c2ecf4d3be4d3926f67ef8e7", +"TT_zcash-test_sign_tx.py::test_refuse_replacement_tx": "2f4ce27cb15b1188099e005499209e19ddc34187555600842d368f69c59448f1", +"TT_zcash-test_sign_tx.py::test_send_to_multisig": "bedb30872fb21d6d59f966de9557ab232b2ce1ff968731e3d6610b637a52a709", +"TT_zcash-test_sign_tx.py::test_spend_multisig": "c279c721d2a0f1b5fd18be6872f45f0c4a79560a71d083bd3fb7ffac34873760", +"TT_zcash-test_sign_tx.py::test_spend_v4_input": "94aad064970fc337c2a0b61162ee858d1d6735834ca9e1c0eb0dc4a443ff294a", +"TT_zcash-test_sign_tx.py::test_spend_v5_input": "dac4a7441f8102dc9d39eb748516b93adb1c12c6554712e97df604db82e74994", +"TT_zcash-test_sign_tx.py::test_unified_address": "27924ef4e296805293684a047c6d36d716ca18fe2bda41a06394e2c6aa70e900", "TT_zcash-test_sign_tx.py::test_version_group_id_missing": "c09de07fbbf1e047442180e2facb5482d06a1a428891b875b7dd93c9e4704ae1", "TTui2_binance-test_get_address.py::test_binance_get_address[m-44h-714h-0h-0-0-bnb1hgm0p7khfk85zpz-68e2cb5a": "971ffb5a1a9a39e5308efd89f51be986e8143608d1c6638b1171c02011abb141", "TTui2_binance-test_get_address.py::test_binance_get_address[m-44h-714h-0h-0-1-bnb1egswqkszzfc2uq7-1adfb691": "2547b2dc528bc3090219f13286d832939f3a5a89c6f1f219a60658ba00b83bdd",