From c2f1850abb709b14f7018882bbd62e190e8cf5f1 Mon Sep 17 00:00:00 2001 From: Andrew Kozlik Date: Fri, 5 Nov 2021 15:39:02 +0100 Subject: [PATCH] feat(common): Add no_script_type option to SignMessage. --- common/protob/messages-bitcoin.proto | 1 + core/src/trezor/messages.py | 2 ++ python/.changelog.d/1586.added | 1 + python/src/trezorlib/messages.py | 3 +++ 4 files changed, 7 insertions(+) create mode 100644 python/.changelog.d/1586.added diff --git a/common/protob/messages-bitcoin.proto b/common/protob/messages-bitcoin.proto index 9d5352af4..2676b2925 100644 --- a/common/protob/messages-bitcoin.proto +++ b/common/protob/messages-bitcoin.proto @@ -152,6 +152,7 @@ message SignMessage { required bytes message = 2; // message to be signed optional string coin_name = 3 [default='Bitcoin']; // coin to use for signing optional InputScriptType script_type = 4 [default=SPENDADDRESS]; // used to distinguish between various address formats (non-segwit, segwit, etc.) + optional bool no_script_type = 5; // don't include script type information in the recovery byte of the signature, same as in Bitcoin Core } /** diff --git a/core/src/trezor/messages.py b/core/src/trezor/messages.py index 46c7cfa91..ee600be3a 100644 --- a/core/src/trezor/messages.py +++ b/core/src/trezor/messages.py @@ -526,6 +526,7 @@ if TYPE_CHECKING: message: "bytes" coin_name: "str" script_type: "InputScriptType" + no_script_type: "bool | None" def __init__( self, @@ -534,6 +535,7 @@ if TYPE_CHECKING: address_n: "list[int] | None" = None, coin_name: "str | None" = None, script_type: "InputScriptType | None" = None, + no_script_type: "bool | None" = None, ) -> None: pass diff --git a/python/.changelog.d/1586.added b/python/.changelog.d/1586.added new file mode 100644 index 000000000..b740dbe15 --- /dev/null +++ b/python/.changelog.d/1586.added @@ -0,0 +1 @@ +Support no_script_type option in SignMessage. diff --git a/python/src/trezorlib/messages.py b/python/src/trezorlib/messages.py index d933a508f..e8f24869e 100644 --- a/python/src/trezorlib/messages.py +++ b/python/src/trezorlib/messages.py @@ -1067,6 +1067,7 @@ class SignMessage(protobuf.MessageType): 2: protobuf.Field("message", "bytes", repeated=False, required=True), 3: protobuf.Field("coin_name", "string", repeated=False, required=False), 4: protobuf.Field("script_type", "InputScriptType", repeated=False, required=False), + 5: protobuf.Field("no_script_type", "bool", repeated=False, required=False), } def __init__( @@ -1076,11 +1077,13 @@ class SignMessage(protobuf.MessageType): address_n: Optional[List["int"]] = None, coin_name: Optional["str"] = 'Bitcoin', script_type: Optional["InputScriptType"] = InputScriptType.SPENDADDRESS, + no_script_type: Optional["bool"] = None, ) -> None: self.address_n = address_n if address_n is not None else [] self.message = message self.coin_name = coin_name self.script_type = script_type + self.no_script_type = no_script_type class MessageSignature(protobuf.MessageType):