style: apply black 20.8b1

pull/1295/head
matejcik 4 years ago
parent 6dda240f5c
commit e4785d47e0

@ -8,7 +8,9 @@ def main(file: str = None):
config = configparser.ConfigParser() config = configparser.ConfigParser()
config.read_file(open("hardware.cfg")) config.read_file(open("hardware.cfg"))
t1 = TrezorOne( t1 = TrezorOne(
config["t1"]["location"], config["t1"]["port"], config["t1"]["arduino_serial"], config["t1"]["location"],
config["t1"]["port"],
config["t1"]["arduino_serial"],
) )
t1.update_firmware(file) t1.update_firmware(file)

@ -21,7 +21,7 @@ if False:
_MAX_COORDINATOR_LEN = const(18) _MAX_COORDINATOR_LEN = const(18)
async def authorize_coinjoin(ctx: wire.Context, msg: AuthorizeCoinJoin,) -> Success: async def authorize_coinjoin(ctx: wire.Context, msg: AuthorizeCoinJoin) -> Success:
# We cannot use the @with_keychain decorator here, because we need the keychain # We cannot use the @with_keychain decorator here, because we need the keychain
# to survive the function exit. The ownership of the keychain is transferred to # to survive the function exit. The ownership of the keychain is transferred to
# the CoinJoinAuthorization object, which takes care of its destruction. # the CoinJoinAuthorization object, which takes care of its destruction.

@ -364,7 +364,8 @@ class Bitcoin:
if txi.script_type == InputScriptType.SPENDMULTISIG: if txi.script_type == InputScriptType.SPENDMULTISIG:
assert txi.multisig is not None # checked in sanitize_tx_input assert txi.multisig is not None # checked in sanitize_tx_input
script_pubkey = scripts.output_script_multisig( script_pubkey = scripts.output_script_multisig(
multisig.multisig_get_pubkeys(txi.multisig), txi.multisig.m, multisig.multisig_get_pubkeys(txi.multisig),
txi.multisig.m,
) )
elif txi.script_type == InputScriptType.SPENDADDRESS: elif txi.script_type == InputScriptType.SPENDADDRESS:
script_pubkey = scripts.output_script_p2pkh( script_pubkey = scripts.output_script_p2pkh(
@ -478,17 +479,26 @@ class Bitcoin:
return self.get_sighash_type(txi) & 0xFF return self.get_sighash_type(txi) & 0xFF
def write_tx_input( def write_tx_input(
self, w: writers.Writer, txi: Union[TxInput, PrevInput], script: bytes, self,
w: writers.Writer,
txi: Union[TxInput, PrevInput],
script: bytes,
) -> None: ) -> None:
writers.write_tx_input(w, txi, script) writers.write_tx_input(w, txi, script)
def write_tx_output( def write_tx_output(
self, w: writers.Writer, txo: Union[TxOutput, PrevOutput], script_pubkey: bytes, self,
w: writers.Writer,
txo: Union[TxOutput, PrevOutput],
script_pubkey: bytes,
) -> None: ) -> None:
writers.write_tx_output(w, txo, script_pubkey) writers.write_tx_output(w, txo, script_pubkey)
def write_tx_header( def write_tx_header(
self, w: writers.Writer, tx: Union[SignTx, PrevTx], witness_marker: bool, self,
w: writers.Writer,
tx: Union[SignTx, PrevTx],
witness_marker: bool,
) -> None: ) -> None:
writers.write_uint32(w, tx.version) # nVersion writers.write_uint32(w, tx.version) # nVersion
if witness_marker: if witness_marker:

@ -62,7 +62,10 @@ class Bitcoinlike(Bitcoin):
return hashtype return hashtype
def write_tx_header( def write_tx_header(
self, w: writers.Writer, tx: Union[SignTx, PrevTx], witness_marker: bool, self,
w: writers.Writer,
tx: Union[SignTx, PrevTx],
witness_marker: bool,
) -> None: ) -> None:
writers.write_uint32(w, tx.version) # nVersion writers.write_uint32(w, tx.version) # nVersion
if self.coin.timestamp: if self.coin.timestamp:

@ -155,7 +155,10 @@ class Decred(Bitcoin):
self.write_tx_output(self.h_prefix, txo, script_pubkey) self.write_tx_output(self.h_prefix, txo, script_pubkey)
def write_tx_input( def write_tx_input(
self, w: writers.Writer, txi: Union[TxInput, PrevInput], script: bytes, self,
w: writers.Writer,
txi: Union[TxInput, PrevInput],
script: bytes,
) -> None: ) -> None:
writers.write_bytes_reversed(w, txi.prev_hash, writers.TX_HASH_SIZE) writers.write_bytes_reversed(w, txi.prev_hash, writers.TX_HASH_SIZE)
writers.write_uint32(w, txi.prev_index or 0) writers.write_uint32(w, txi.prev_index or 0)
@ -163,7 +166,10 @@ class Decred(Bitcoin):
writers.write_uint32(w, txi.sequence) writers.write_uint32(w, txi.sequence)
def write_tx_output( def write_tx_output(
self, w: writers.Writer, txo: Union[TxOutput, PrevOutput], script_pubkey: bytes, self,
w: writers.Writer,
txo: Union[TxOutput, PrevOutput],
script_pubkey: bytes,
) -> None: ) -> None:
writers.write_uint64(w, txo.amount) writers.write_uint64(w, txo.amount)
if isinstance(txo, PrevOutput): if isinstance(txo, PrevOutput):
@ -175,7 +181,10 @@ class Decred(Bitcoin):
writers.write_bytes_prefixed(w, script_pubkey) writers.write_bytes_prefixed(w, script_pubkey)
def write_tx_header( def write_tx_header(
self, w: writers.Writer, tx: Union[SignTx, PrevTx], witness_marker: bool, self,
w: writers.Writer,
tx: Union[SignTx, PrevTx],
witness_marker: bool,
) -> None: ) -> None:
# The upper 16 bits of the transaction version specify the serialization # The upper 16 bits of the transaction version specify the serialization
# format and the lower 16 bits specify the version number. # format and the lower 16 bits specify the version number.

@ -38,7 +38,7 @@ def write_bytes_prefixed(w: Writer, b: bytes) -> None:
write_bytes_unchecked(w, b) write_bytes_unchecked(w, b)
def write_tx_input(w: Writer, i: Union[TxInput, PrevInput], script: bytes,) -> None: def write_tx_input(w: Writer, i: Union[TxInput, PrevInput], script: bytes) -> None:
write_bytes_reversed(w, i.prev_hash, TX_HASH_SIZE) write_bytes_reversed(w, i.prev_hash, TX_HASH_SIZE)
write_uint32(w, i.prev_index) write_uint32(w, i.prev_index)
write_bytes_prefixed(w, script) write_bytes_prefixed(w, script)

@ -196,7 +196,9 @@ def _derive_byron_address(
def _derive_shelley_address( def _derive_shelley_address(
keychain: seed.Keychain, parameters: CardanoAddressParametersType, network_id: int, keychain: seed.Keychain,
parameters: CardanoAddressParametersType,
network_id: int,
) -> bytes: ) -> bytes:
if not is_shelley_path(parameters.address_n): if not is_shelley_path(parameters.address_n):
raise wire.DataError("Invalid path for shelley address!") raise wire.DataError("Invalid path for shelley address!")
@ -213,7 +215,10 @@ def _derive_shelley_address(
address = _derive_enterprise_address(keychain, parameters.address_n, network_id) address = _derive_enterprise_address(keychain, parameters.address_n, network_id)
elif parameters.address_type == CardanoAddressType.POINTER: elif parameters.address_type == CardanoAddressType.POINTER:
address = _derive_pointer_address( address = _derive_pointer_address(
keychain, parameters.address_n, parameters.certificate_pointer, network_id, keychain,
parameters.address_n,
parameters.certificate_pointer,
network_id,
) )
elif parameters.address_type == CardanoAddressType.REWARD: elif parameters.address_type == CardanoAddressType.REWARD:
address = _derive_reward_address(keychain, parameters.address_n, network_id) address = _derive_reward_address(keychain, parameters.address_n, network_id)
@ -249,7 +254,8 @@ def _derive_base_address(
def _validate_base_address_staking_info( def _validate_base_address_staking_info(
staking_path: List[int], staking_key_hash: bytes, staking_path: List[int],
staking_key_hash: bytes,
) -> None: ) -> None:
if (staking_key_hash is None) == (not staking_path): if (staking_key_hash is None) == (not staking_path):
raise wire.DataError( raise wire.DataError(
@ -311,7 +317,9 @@ def _encode_certificate_pointer(pointer: CardanoBlockchainPointerType) -> bytes:
def _derive_enterprise_address( def _derive_enterprise_address(
keychain: seed.Keychain, path: List[int], network_id: int, keychain: seed.Keychain,
path: List[int],
network_id: int,
) -> bytes: ) -> bytes:
header = _create_address_header(CardanoAddressType.ENTERPRISE, network_id) header = _create_address_header(CardanoAddressType.ENTERPRISE, network_id)
spending_key_hash = get_public_key_hash(keychain, path) spending_key_hash = get_public_key_hash(keychain, path)
@ -320,7 +328,9 @@ def _derive_enterprise_address(
def _derive_reward_address( def _derive_reward_address(
keychain: seed.Keychain, path: List[int], network_id: int, keychain: seed.Keychain,
path: List[int],
network_id: int,
) -> bytes: ) -> bytes:
if not is_staking_path(path): if not is_staking_path(path):
raise wire.DataError("Invalid path for reward address!") raise wire.DataError("Invalid path for reward address!")

@ -20,7 +20,11 @@ async def get_public_key(
ctx: wire.Context, msg: CardanoGetPublicKey, keychain: seed.Keychain ctx: wire.Context, msg: CardanoGetPublicKey, keychain: seed.Keychain
): ):
await paths.validate_path( await paths.validate_path(
ctx, _validate_path_for_get_public_key, keychain, msg.address_n, CURVE, ctx,
_validate_path_for_get_public_key,
keychain,
msg.address_n,
CURVE,
) )
try: try:

@ -80,7 +80,9 @@ async def show_warning_tx_no_staking_info(
async def show_warning_tx_pointer_address( async def show_warning_tx_pointer_address(
ctx: wire.Context, pointer: CardanoBlockchainPointerType, amount: int, ctx: wire.Context,
pointer: CardanoBlockchainPointerType,
amount: int,
): ):
page1 = Text("Confirm transaction", ui.ICON_SEND, ui.GREEN) page1 = Text("Confirm transaction", ui.ICON_SEND, ui.GREEN)
page1.normal("Change address has a") page1.normal("Change address has a")
@ -100,7 +102,9 @@ async def show_warning_tx_pointer_address(
async def show_warning_tx_different_staking_account( async def show_warning_tx_different_staking_account(
ctx: wire.Context, staking_account_path: List[int], amount: int, ctx: wire.Context,
staking_account_path: List[int],
amount: int,
): ):
page1 = Text("Confirm transaction", ui.ICON_SEND, ui.GREEN) page1 = Text("Confirm transaction", ui.ICON_SEND, ui.GREEN)
page1.normal("Change address staking") page1.normal("Change address staking")
@ -117,7 +121,9 @@ async def show_warning_tx_different_staking_account(
async def show_warning_tx_staking_key_hash( async def show_warning_tx_staking_key_hash(
ctx: wire.Context, staking_key_hash: bytes, amount: int, ctx: wire.Context,
staking_key_hash: bytes,
amount: int,
): ):
page1 = Text("Confirm transaction", ui.ICON_SEND, ui.GREEN) page1 = Text("Confirm transaction", ui.ICON_SEND, ui.GREEN)
page1.normal("Change address staking") page1.normal("Change address staking")
@ -282,7 +288,9 @@ async def show_warning_address_foreign_staking_key(
staking_key_message = ("Staking key:", hexlify(staking_key_hash).decode()) staking_key_message = ("Staking key:", hexlify(staking_key_hash).decode())
await show_warning( await show_warning(
ctx, staking_key_message, button="Ok", ctx,
staking_key_message,
button="Ok",
) )

@ -286,7 +286,8 @@ def _build_withdrawals(
reward_address = derive_address_bytes( reward_address = derive_address_bytes(
keychain, keychain,
CardanoAddressParametersType( CardanoAddressParametersType(
address_type=CardanoAddressType.REWARD, address_n=withdrawal.path, address_type=CardanoAddressType.REWARD,
address_n=withdrawal.path,
), ),
protocol_magic, protocol_magic,
network_id, network_id,
@ -465,16 +466,22 @@ async def _show_change_output_staking_warnings(
await show_warning_tx_no_staking_info(ctx, address_type, amount) await show_warning_tx_no_staking_info(ctx, address_type, amount)
elif staking_use_case == staking_use_cases.POINTER_ADDRESS: elif staking_use_case == staking_use_cases.POINTER_ADDRESS:
await show_warning_tx_pointer_address( await show_warning_tx_pointer_address(
ctx, address_parameters.certificate_pointer, amount, ctx,
address_parameters.certificate_pointer,
amount,
) )
elif staking_use_case == staking_use_cases.MISMATCH: elif staking_use_case == staking_use_cases.MISMATCH:
if address_parameters.address_n_staking: if address_parameters.address_n_staking:
await show_warning_tx_different_staking_account( await show_warning_tx_different_staking_account(
ctx, to_account_path(address_parameters.address_n_staking), amount, ctx,
to_account_path(address_parameters.address_n_staking),
amount,
) )
else: else:
await show_warning_tx_staking_key_hash( await show_warning_tx_staking_key_hash(
ctx, address_parameters.staking_key_hash, amount, ctx,
address_parameters.staking_key_hash,
amount,
) )

@ -113,7 +113,10 @@ class Keychain:
raise FORBIDDEN_KEY_PATH raise FORBIDDEN_KEY_PATH
def _derive_with_cache( def _derive_with_cache(
self, prefix_len: int, path: paths.PathType, new_root: Callable[[], NodeType], self,
prefix_len: int,
path: paths.PathType,
new_root: Callable[[], NodeType],
) -> NodeType: ) -> NodeType:
cached_prefix = tuple(path[:prefix_len]) cached_prefix = tuple(path[:prefix_len])
cached_root = self._cache.get(cached_prefix) # type: Optional[NodeType] cached_root = self._cache.get(cached_prefix) # type: Optional[NodeType]
@ -141,7 +144,9 @@ class Keychain:
raise FORBIDDEN_KEY_PATH raise FORBIDDEN_KEY_PATH
return self._derive_with_cache( return self._derive_with_cache(
prefix_len=1, path=path, new_root=lambda: Slip21Node(seed=self.seed), prefix_len=1,
path=path,
new_root=lambda: Slip21Node(seed=self.seed),
) )
def __enter__(self) -> "Keychain": def __enter__(self) -> "Keychain":

@ -153,7 +153,7 @@ async def require_confirm_change_autolock_delay(ctx, delay_ms):
await require_confirm(ctx, text, ButtonRequestType.ProtectCall) await require_confirm(ctx, text, ButtonRequestType.ProtectCall)
async def require_confirm_safety_checks(ctx, level: EnumTypeSafetyCheckLevel,) -> None: async def require_confirm_safety_checks(ctx, level: EnumTypeSafetyCheckLevel) -> None:
if level == SafetyCheckLevel.PromptAlways: if level == SafetyCheckLevel.PromptAlways:
text = Text("Safety override", ui.ICON_CONFIG) text = Text("Safety override", ui.ICON_CONFIG)
text.normal( text.normal(

@ -55,7 +55,9 @@ async def all_outputs_set(state: State) -> MoneroTransactionAllOutSetAck:
# Initializes RCTsig structure (fee, tx prefix hash, type) # Initializes RCTsig structure (fee, tx prefix hash, type)
rv_pb = MoneroRingCtSig( rv_pb = MoneroRingCtSig(
txn_fee=state.fee, message=state.tx_prefix_hash, rv_type=state.tx_type, txn_fee=state.fee,
message=state.tx_prefix_hash,
rv_type=state.tx_type,
) )
_out_pk(state) _out_pk(state)

@ -198,7 +198,9 @@ def sign_tx(
and cannot be overriden by kwargs. and cannot be overriden by kwargs.
""" """
signtx = messages.SignTx( signtx = messages.SignTx(
coin_name=coin_name, inputs_count=len(inputs), outputs_count=len(outputs), coin_name=coin_name,
inputs_count=len(inputs),
outputs_count=len(outputs),
) )
for name, value in kwargs.items(): for name, value in kwargs.items():
if hasattr(signtx, name): if hasattr(signtx, name):

@ -152,7 +152,8 @@ def create_certificate(certificate) -> messages.CardanoTxCertificateType:
or certificate_type == messages.CardanoCertificateType.STAKE_DEREGISTRATION or certificate_type == messages.CardanoCertificateType.STAKE_DEREGISTRATION
): ):
return messages.CardanoTxCertificateType( return messages.CardanoTxCertificateType(
type=certificate_type, path=tools.parse_path(path), type=certificate_type,
path=tools.parse_path(path),
) )
else: else:
raise ValueError("Unknown certificate type") raise ValueError("Unknown certificate type")
@ -164,7 +165,8 @@ def create_withdrawal(withdrawal) -> messages.CardanoTxWithdrawalType:
path = withdrawal["path"] path = withdrawal["path"]
return messages.CardanoTxWithdrawalType( return messages.CardanoTxWithdrawalType(
path=tools.parse_path(path), amount=int(withdrawal["amount"]), path=tools.parse_path(path),
amount=int(withdrawal["amount"]),
) )

@ -145,7 +145,10 @@ def configure_logging(verbose: int):
"-j", "--json", "is_json", is_flag=True, help="Print result as JSON object" "-j", "--json", "is_json", is_flag=True, help="Print result as JSON object"
) )
@click.option( @click.option(
"-P", "--passphrase-on-host", is_flag=True, help="Enter passphrase on host.", "-P",
"--passphrase-on-host",
is_flag=True,
help="Enter passphrase on host.",
) )
@click.option( @click.option(
"-s", "-s",

@ -83,7 +83,10 @@ class TrezorClient:
""" """
def __init__( def __init__(
self, transport, ui, session_id=None, self,
transport,
ui,
session_id=None,
): ):
LOG.info("creating client instance for device: {}".format(transport.get_path())) LOG.info("creating client instance for device: {}".format(transport.get_path()))
self.transport = transport self.transport = transport
@ -326,7 +329,9 @@ class TrezorClient:
@tools.expect(messages.Success, field="message") @tools.expect(messages.Success, field="message")
def ping( def ping(
self, msg, button_protection=False, self,
msg,
button_protection=False,
): ):
# We would like ping to work on any valid TrezorClient instance, but # We would like ping to work on any valid TrezorClient instance, but
# due to the protection modes, we need to go through self.call, and that will # due to the protection modes, we need to go through self.call, and that will
@ -345,7 +350,7 @@ class TrezorClient:
finally: finally:
self.close() self.close()
msg = messages.Ping(message=msg, button_protection=button_protection,) msg = messages.Ping(message=msg, button_protection=button_protection)
return self.call(msg) return self.call(msg)
def get_device_id(self): def get_device_id(self):

@ -110,8 +110,8 @@ def verify(
def pubkey_from_privkey(privkey: Ed25519PrivateKey) -> Ed25519PublicPoint: def pubkey_from_privkey(privkey: Ed25519PrivateKey) -> Ed25519PublicPoint:
"""Interpret 32 bytes of data as an Ed25519 private key. """Interpret 32 bytes of data as an Ed25519 private key.
Calculate and return the corresponding public key. Calculate and return the corresponding public key.
""" """
return Ed25519PublicPoint(_ed25519.publickey_unsafe(privkey)) return Ed25519PublicPoint(_ed25519.publickey_unsafe(privkey))

@ -397,7 +397,9 @@ def validate_code_hashes(fw: c.Container, version: FirmwareFormat) -> None:
def validate_onev2(fw: c.Container, allow_unsigned: bool = False) -> None: def validate_onev2(fw: c.Container, allow_unsigned: bool = False) -> None:
try: try:
check_sig_v1( check_sig_v1(
digest_onev2(fw), fw.header.v1_key_indexes, fw.header.v1_signatures, digest_onev2(fw),
fw.header.v1_key_indexes,
fw.header.v1_signatures,
) )
except Unsigned: except Unsigned:
if not allow_unsigned: if not allow_unsigned:

@ -67,11 +67,11 @@ class PinButton(QPushButton):
class PinMatrixWidget(QWidget): class PinMatrixWidget(QWidget):
""" """
Displays widget with nine blank buttons and password box. Displays widget with nine blank buttons and password box.
Encodes button clicks into sequence of numbers for passing Encodes button clicks into sequence of numbers for passing
into PinAck messages of Trezor. into PinAck messages of Trezor.
show_strength=True may be useful for entering new PIN show_strength=True may be useful for entering new PIN
""" """
def __init__(self, show_strength=True, parent=None): def __init__(self, show_strength=True, parent=None):
@ -142,7 +142,7 @@ class PinMatrixWidget(QWidget):
if __name__ == "__main__": if __name__ == "__main__":
""" """
Demo application showing PinMatrix widget in action Demo application showing PinMatrix widget in action
""" """
app = QApplication(sys.argv) app = QApplication(sys.argv)

@ -54,8 +54,7 @@ DEFAULT_NETWORK_PASSPHRASE = "Public Global Stellar Network ; September 2015"
def address_from_public_key(pk_bytes): def address_from_public_key(pk_bytes):
"""Returns the base32-encoded version of pk_bytes (G...) """Returns the base32-encoded version of pk_bytes (G...)"""
"""
final_bytes = bytearray() final_bytes = bytearray()
# version # version
@ -80,8 +79,8 @@ def address_to_public_key(address_str):
def parse_transaction_bytes(tx_bytes): def parse_transaction_bytes(tx_bytes):
"""Parses base64data into a map with the following keys: """Parses base64data into a map with the following keys:
tx - a StellarSignTx describing the transaction header tx - a StellarSignTx describing the transaction header
operations - an array of protobuf message objects for each operation operations - an array of protobuf message objects for each operation
""" """
tx = messages.StellarSignTx() tx = messages.StellarSignTx()
unpacker = xdrlib.Unpacker(tx_bytes) unpacker = xdrlib.Unpacker(tx_bytes)

@ -19,7 +19,8 @@ def request_output(n, tx_hash=None):
def request_meta(tx_hash): def request_meta(tx_hash):
return messages.TxRequest( return messages.TxRequest(
request_type=T.TXMETA, details=messages.TxRequestDetailsType(tx_hash=tx_hash), request_type=T.TXMETA,
details=messages.TxRequestDetailsType(tx_hash=tx_hash),
) )

@ -83,7 +83,8 @@ def test_apply_auto_lock_delay_valid(client, seconds):
@pytest.mark.skip_ui @pytest.mark.skip_ui
@pytest.mark.parametrize( @pytest.mark.parametrize(
"seconds", [0, 1, 9, 536871, 2 ** 22], "seconds",
[0, 1, 9, 536871, 2 ** 22],
) )
def test_apply_auto_lock_delay_out_of_range(client, seconds): def test_apply_auto_lock_delay_out_of_range(client, seconds):
with client: with client:

@ -957,7 +957,11 @@ class TestMsgSigntx:
# Now run the attack, must trigger the exception # Now run the attack, must trigger the exception
with pytest.raises(TrezorFailure) as exc: with pytest.raises(TrezorFailure) as exc:
btc.sign_tx( btc.sign_tx(
client, "Testnet", [inp1], [out1, out2], prev_txes=TX_CACHE_TESTNET, client,
"Testnet",
[inp1],
[out1, out2],
prev_txes=TX_CACHE_TESTNET,
) )
assert exc.value.code == messages.FailureType.ProcessError assert exc.value.code == messages.FailureType.ProcessError

@ -299,7 +299,11 @@ def test_p2wpkh_presigned(client):
# Test with second input as pre-signed external. # Test with second input as pre-signed external.
with client: with client:
_, serialized_tx = btc.sign_tx( _, serialized_tx = btc.sign_tx(
client, "Testnet", [inp1, inp2], [out1, out2], prev_txes=TX_CACHE_TESTNET, client,
"Testnet",
[inp1, inp2],
[out1, out2],
prev_txes=TX_CACHE_TESTNET,
) )
assert ( assert (
@ -311,7 +315,11 @@ def test_p2wpkh_presigned(client):
inp2.witness[10] ^= 1 inp2.witness[10] ^= 1
with pytest.raises(TrezorFailure, match="Invalid signature"): with pytest.raises(TrezorFailure, match="Invalid signature"):
btc.sign_tx( btc.sign_tx(
client, "Testnet", [inp1, inp2], [out1, out2], prev_txes=TX_CACHE_TESTNET, client,
"Testnet",
[inp1, inp2],
[out1, out2],
prev_txes=TX_CACHE_TESTNET,
) )
@ -482,7 +490,11 @@ def test_p2wpkh_with_proof(client):
] ]
) )
_, serialized_tx = btc.sign_tx( _, serialized_tx = btc.sign_tx(
client, "Testnet", [inp1, inp2], [out1, out2], prev_txes=TX_CACHE_TESTNET, client,
"Testnet",
[inp1, inp2],
[out1, out2],
prev_txes=TX_CACHE_TESTNET,
) )
assert ( assert (
@ -494,7 +506,11 @@ def test_p2wpkh_with_proof(client):
inp1.ownership_proof[10] ^= 1 inp1.ownership_proof[10] ^= 1
with pytest.raises(TrezorFailure, match="Invalid signature"): with pytest.raises(TrezorFailure, match="Invalid signature"):
btc.sign_tx( btc.sign_tx(
client, "Testnet", [inp1, inp2], [out1, out2], prev_txes=TX_CACHE_TESTNET, client,
"Testnet",
[inp1, inp2],
[out1, out2],
prev_txes=TX_CACHE_TESTNET,
) )
@ -551,5 +567,9 @@ def test_p2wpkh_with_false_proof(client):
with pytest.raises(TrezorFailure, match="Invalid external input"): with pytest.raises(TrezorFailure, match="Invalid external input"):
btc.sign_tx( btc.sign_tx(
client, "Testnet", [inp1, inp2], [out1], prev_txes=TX_CACHE_TESTNET, client,
"Testnet",
[inp1, inp2],
[out1],
prev_txes=TX_CACHE_TESTNET,
) )

@ -408,7 +408,11 @@ class TestMsgSigntxSegwit:
# "Fee over threshold" warning is displayed - fee is the whole TRUE_AMOUNT # "Fee over threshold" warning is displayed - fee is the whole TRUE_AMOUNT
client.set_expected_responses(expected_responses) client.set_expected_responses(expected_responses)
btc.sign_tx( btc.sign_tx(
client, "Testnet", [inp1, inp2], [out1], prev_txes=TX_API, client,
"Testnet",
[inp1, inp2],
[out1],
prev_txes=TX_API,
) )
# In Phase 1 make the user confirm a lower value of the segwit input. # In Phase 1 make the user confirm a lower value of the segwit input.
@ -427,7 +431,11 @@ class TestMsgSigntxSegwit:
with pytest.raises(TrezorFailure) as e, client: with pytest.raises(TrezorFailure) as e, client:
client.set_expected_responses(expected_responses) client.set_expected_responses(expected_responses)
btc.sign_tx( btc.sign_tx(
client, "Testnet", [inp1, inp2], [out1], prev_txes=TX_API, client,
"Testnet",
[inp1, inp2],
[out1],
prev_txes=TX_API,
) )
assert e.value.failure.message.endswith("Invalid amount specified") assert e.value.failure.message.endswith("Invalid amount specified")

@ -159,7 +159,12 @@ class TestMsgSigntxZcash:
with pytest.raises(TrezorFailure, match="Version group ID must be set."): with pytest.raises(TrezorFailure, match="Version group ID must be set."):
btc.sign_tx( btc.sign_tx(
client, "Zcash Testnet", [inp1], [out1], version=4, prev_txes=TX_API, client,
"Zcash Testnet",
[inp1],
[out1],
version=4,
prev_txes=TX_API,
) )
def test_spend_old_versions(self, client): def test_spend_old_versions(self, client):

@ -83,7 +83,10 @@ class EmulatorWrapper:
if gen == "legacy": if gen == "legacy":
self.emulator = LegacyEmulator( self.emulator = LegacyEmulator(
executable, self.profile_dir.name, storage=storage, headless=True, executable,
self.profile_dir.name,
storage=storage,
headless=True,
) )
elif gen == "core": elif gen == "core":
self.emulator = CoreEmulator( self.emulator = CoreEmulator(

@ -178,7 +178,11 @@ def create_reports():
"Folder does not exist, has it been recorded?", current_screens "Folder does not exist, has it been recorded?", current_screens
) )
diff( diff(
master_screens, current_screens, test_name, master_hash, current_hash, master_screens,
current_screens,
test_name,
master_hash,
current_hash,
) )

@ -46,7 +46,9 @@ def emulator(gen, tag):
with EmulatorWrapper(gen, tag) as emu: with EmulatorWrapper(gen, tag) as emu:
# set up a passphrase-protected device # set up a passphrase-protected device
device.reset( device.reset(
emu.client, pin_protection=False, skip_backup=True, emu.client,
pin_protection=False,
skip_backup=True,
) )
resp = emu.client.call( resp = emu.client.call(
ApplySettingsCompat(use_passphrase=True, passphrase_source=SOURCE_HOST) ApplySettingsCompat(use_passphrase=True, passphrase_source=SOURCE_HOST)

Loading…
Cancel
Save