mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-03-12 22:26:08 +00:00
fix(python): simplify UI callbacks
This commit is contained in:
parent
21b69d06c6
commit
7bcbe0aac4
@ -56,9 +56,11 @@ class ProtocolVersion(IntEnum):
|
||||
|
||||
|
||||
class TrezorClient:
|
||||
button_callback: t.Callable[[Session, t.Any], t.Any] | None = None
|
||||
passphrase_callback: t.Callable[[Session, t.Any], t.Any] | None = None
|
||||
pin_callback: t.Callable[[Session, t.Any], t.Any] | None = None
|
||||
button_callback: t.Callable[[Session, messages.ButtonRequest], t.Any] | None = None
|
||||
passphrase_callback: (
|
||||
t.Callable[[Session, messages.PassphraseRequest], t.Any] | None
|
||||
) = None
|
||||
pin_callback: t.Callable[[Session, messages.PinMatrixRequest], t.Any] | None = None
|
||||
|
||||
_seedless_session: Session | None = None
|
||||
_features: messages.Features | None = None
|
||||
|
@ -1065,9 +1065,6 @@ class SessionDebugWrapper(Session):
|
||||
t.Type[protobuf.MessageType],
|
||||
t.Callable[[protobuf.MessageType], protobuf.MessageType] | None,
|
||||
] = {}
|
||||
self.button_callback = self.client.button_callback
|
||||
self.pin_callback = self.client.pin_callback
|
||||
self.passphrase_callback = self._session.passphrase_callback
|
||||
|
||||
def __enter__(self) -> "SessionDebugWrapper":
|
||||
# For usage in with/expected_responses
|
||||
@ -1232,22 +1229,14 @@ class TrezorClientDebugLink(TrezorClient):
|
||||
self.ui: DebugUI = DebugUI(self.debug)
|
||||
self.in_with_statement = False
|
||||
|
||||
@property
|
||||
def button_callback(self):
|
||||
|
||||
def _callback_button(session: Session, msg: messages.ButtonRequest) -> t.Any:
|
||||
def button_callback(self, session: Session, msg: messages.ButtonRequest) -> t.Any:
|
||||
__tracebackhide__ = True # for pytest # pylint: disable=W0612
|
||||
# do this raw - send ButtonAck first, notify UI later
|
||||
session._write(messages.ButtonAck())
|
||||
self.ui.button_request(msg)
|
||||
return session._read()
|
||||
|
||||
return _callback_button
|
||||
|
||||
@property
|
||||
def pin_callback(self):
|
||||
|
||||
def _callback_pin(session: Session, msg: messages.PinMatrixRequest) -> t.Any:
|
||||
def pin_callback(self, session: Session, msg: messages.PinMatrixRequest) -> t.Any:
|
||||
try:
|
||||
pin = self.ui.get_pin(msg.type)
|
||||
except Cancelled:
|
||||
@ -1269,12 +1258,8 @@ class TrezorClientDebugLink(TrezorClient):
|
||||
else:
|
||||
return resp
|
||||
|
||||
return _callback_pin
|
||||
|
||||
@property
|
||||
def passphrase_callback(self):
|
||||
def _callback_passphrase(
|
||||
session: Session, msg: messages.PassphraseRequest
|
||||
def passphrase_callback(
|
||||
self, session: Session, msg: messages.PassphraseRequest
|
||||
) -> t.Any:
|
||||
available_on_device = (
|
||||
Capability.PassphraseEntry in session.features.capabilities
|
||||
@ -1327,8 +1312,6 @@ class TrezorClientDebugLink(TrezorClient):
|
||||
|
||||
return send_passphrase(passphrase, on_device=False)
|
||||
|
||||
return _callback_passphrase
|
||||
|
||||
def close_transport(self) -> None:
|
||||
self.transport.close()
|
||||
self.debug.close()
|
||||
|
@ -174,4 +174,13 @@ class SessionV1(Session):
|
||||
|
||||
|
||||
def default_button_callback(session: Session, msg: t.Any) -> t.Any:
|
||||
return session.call(messages.ButtonAck())
|
||||
return session.call_raw(messages.ButtonAck())
|
||||
|
||||
|
||||
def derive_seed(session: Session) -> None:
|
||||
|
||||
from ..btc import get_address
|
||||
from ..client import PASSPHRASE_TEST_PATH
|
||||
|
||||
get_address(session, "Testnet", PASSPHRASE_TEST_PATH)
|
||||
session.refresh_features()
|
||||
|
Loading…
Reference in New Issue
Block a user