From c0d0b191d68cb9f7125f3827ba456694af4b6d13 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Wed, 10 Dec 2014 18:03:54 +0100 Subject: [PATCH] test_msg_getaddress_show test now supports multisig --- tests/test_msg_getaddress_show.py | 17 +++++++++++++++++ trezorlib/client.py | 7 +++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/tests/test_msg_getaddress_show.py b/tests/test_msg_getaddress_show.py index aea6c53..6e160a4 100644 --- a/tests/test_msg_getaddress_show.py +++ b/tests/test_msg_getaddress_show.py @@ -1,6 +1,8 @@ import unittest import common import trezorlib.ckd_public as bip32 +import trezorlib.types_pb2 as proto_types +import binascii class TestMsgGetaddress(common.TrezorTest): @@ -10,5 +12,20 @@ class TestMsgGetaddress(common.TrezorTest): self.assertEqual(self.client.get_address('Bitcoin', [2], show_display=True), '15AeAhtNJNKyowK8qPHwgpXkhsokzLtUpG') self.assertEqual(self.client.get_address('Bitcoin', [3], show_display=True), '1CmzyJp9w3NafXMSEFH4SLYUPAVCSUrrJ5') + def test_show_multisig(self): + self.setup_mnemonic_nopin_nopassphrase() + + multisig = proto_types.MultisigRedeemScriptType( + pubkeys=[binascii.unhexlify('0338d78612e990f2eea0c426b5e48a8db70b9d7ed66282b3b26511e0b1c75515a6'), + binascii.unhexlify('038caebd6f753bbbd2bb1f3346a43cd32140648583673a31d62f2dfb56ad0ab9e3'), + binascii.unhexlify('03477b9f0f34ae85434ce795f0c5e1e90c9420e5b5fad084d7cce9a487b94a7902')], + signatures=['', '', ''], + m=2, + ) + + self.assertEqual(self.client.get_address('Bitcoin', [1], show_display=True, multisig=multisig), '3E7GDtuHqnqPmDgwH59pVC7AvySiSkbibz') + self.assertEqual(self.client.get_address('Bitcoin', [2], show_display=True, multisig=multisig), '3E7GDtuHqnqPmDgwH59pVC7AvySiSkbibz') + self.assertEqual(self.client.get_address('Bitcoin', [3], show_display=True, multisig=multisig), '3E7GDtuHqnqPmDgwH59pVC7AvySiSkbibz') + if __name__ == '__main__': unittest.main() diff --git a/trezorlib/client.py b/trezorlib/client.py index c6b6e7f..37aa264 100644 --- a/trezorlib/client.py +++ b/trezorlib/client.py @@ -388,9 +388,12 @@ class ProtocolMixin(object): @field('address') @expect(proto.Address) - def get_address(self, coin_name, n, show_display=False): + def get_address(self, coin_name, n, show_display=False, multisig=None): n = self._convert_prime(n) - return self.call(proto.GetAddress(address_n=n, coin_name=coin_name, show_display=show_display)) + if multisig: + return self.call(proto.GetAddress(address_n=n, coin_name=coin_name, show_display=show_display, multisig=multisig)) + else: + return self.call(proto.GetAddress(address_n=n, coin_name=coin_name, show_display=show_display)) @field('entropy') @expect(proto.Entropy)