def test_get_address(self):
     with self.client:
         self.setup_mnemonic_nopin_passphrase()
         self.client.set_expected_responses([
             proto.PassphraseRequest(),
             proto.PassphraseStateRequest(),
             proto.Address()
         ])
         self.client.get_address('Bitcoin', [])
 def test_get_public_key(self):
     with self.client:
         self.setup_mnemonic_nopin_passphrase()
         self.client.set_expected_responses([
             proto.PassphraseRequest(),
             proto.PassphraseStateRequest(),
             proto.PublicKey()
         ])
         self.client.get_public_node([])
 def test_ping(self):
     with self.client:
         self.setup_mnemonic_nopin_passphrase()
         self.client.set_expected_responses([
             proto.PassphraseRequest(),
             proto.PassphraseStateRequest(),
             proto.Success()
         ])
         self.client.ping('msg', True, True, True)
 def test_sign_message(self):
     with self.client:
         self.setup_mnemonic_nopin_passphrase()
         self.client.set_expected_responses([
             proto.PassphraseRequest(),
             proto.PassphraseStateRequest(),
             proto.MessageSignature()
         ])
         self.client.sign_message('Bitcoin', [], 'testing message')
Beispiel #5
0
    def test_passphrase_protection(self):
        self.setup_mnemonic_nopin_passphrase()

        with self.client:
            self.client.set_expected_responses([
                proto.PassphraseRequest(),
                proto.PassphraseStateRequest(),
                proto.Success()
            ])
            self._some_protected_call(False, True, True)
    def test_signtx(self):
        self.setup_mnemonic_nopin_passphrase()

        inp1 = proto.TxInputType(
            address_n=[0],  # 14LmW5k4ssUrtbAB4255zdqv3b4w1TuX9e
            prev_hash=TXHASH_d5f65e,
            prev_index=0,
        )

        out1 = proto.TxOutputType(
            address='1MJ2tj2ThBE62zXbBYA5ZaN3fdve5CPAz1',
            amount=390000 - 10000,
            script_type=proto.OutputScriptType.PAYTOADDRESS,
        )

        with self.client:

            self.client.set_expected_responses([
                proto.PassphraseRequest(),
                proto.PassphraseStateRequest(),
                proto.TxRequest(
                    request_type=proto.RequestType.TXINPUT,
                    details=proto.TxRequestDetailsType(request_index=0)),
                proto.TxRequest(
                    request_type=proto.RequestType.TXMETA,
                    details=proto.TxRequestDetailsType(tx_hash=TXHASH_d5f65e)),
                proto.TxRequest(request_type=proto.RequestType.TXINPUT,
                                details=proto.TxRequestDetailsType(
                                    request_index=0, tx_hash=TXHASH_d5f65e)),
                proto.TxRequest(request_type=proto.RequestType.TXINPUT,
                                details=proto.TxRequestDetailsType(
                                    request_index=1, tx_hash=TXHASH_d5f65e)),
                proto.TxRequest(request_type=proto.RequestType.TXOUTPUT,
                                details=proto.TxRequestDetailsType(
                                    request_index=0, tx_hash=TXHASH_d5f65e)),
                proto.TxRequest(
                    request_type=proto.RequestType.TXOUTPUT,
                    details=proto.TxRequestDetailsType(request_index=0)),
                proto.TxRequest(
                    request_type=proto.RequestType.TXINPUT,
                    details=proto.TxRequestDetailsType(request_index=0)),
                proto.TxRequest(
                    request_type=proto.RequestType.TXOUTPUT,
                    details=proto.TxRequestDetailsType(request_index=0)),
                proto.TxRequest(
                    request_type=proto.RequestType.TXOUTPUT,
                    details=proto.TxRequestDetailsType(request_index=0)),
                proto.TxRequest(request_type=proto.RequestType.TXFINISHED),
            ])
            self.client.sign_tx('Bitcoin', [
                inp1,
            ], [
                out1,
            ])
    def test_clearsession(self):
        self.setup_mnemonic_nopin_passphrase()
        self.client.set_passphrase('passphrase')

        with self.client:
            self.client.set_expected_responses([
                proto.PassphraseRequest(),
                proto.PassphraseStateRequest(),
                proto.Address()
            ])
            res = self.client.get_address('Bitcoin', [])
            assert res == '15fiTDFwZd2kauHYYseifGi9daH2wniDHH'

        with self.client:
            # passphrase are cached
            self.client.set_expected_responses([proto.Address()])
            res = self.client.get_address('Bitcoin', [])
            assert res == '15fiTDFwZd2kauHYYseifGi9daH2wniDHH'

        self.client.clear_session()

        # session cache is cleared
        with self.client:
            self.client.set_expected_responses([
                proto.PassphraseRequest(),
                proto.PassphraseStateRequest(),
                proto.Address()
            ])
            res = self.client.get_address('Bitcoin', [])
            assert res == '15fiTDFwZd2kauHYYseifGi9daH2wniDHH'

        with self.client:
            # pin and passphrase are cached
            self.client.set_expected_responses([proto.Address()])
            res = self.client.get_address('Bitcoin', [])
            assert res == '15fiTDFwZd2kauHYYseifGi9daH2wniDHH'