mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-05-06 17:09:11 +00:00
ripple: get address command including tests
This commit is contained in:
parent
8348d47fd7
commit
147e7e21cb
13
trezorctl
13
trezorctl
@ -1050,6 +1050,19 @@ def stellar_sign_transaction(connect, b64envelope, address, network_passphrase):
|
|||||||
|
|
||||||
return base64.b64encode(resp.signature)
|
return base64.b64encode(resp.signature)
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Ripple functions
|
||||||
|
#
|
||||||
|
@cli.command(help='Get Ripple address')
|
||||||
|
@click.option('-n', '--address', required=True, help="BIP-32 path to key, e.g. m/44'/144'/0'/0/0")
|
||||||
|
@click.option('-d', '--show-display', is_flag=True)
|
||||||
|
@click.pass_obj
|
||||||
|
def ripple_get_address(connect, address, show_display):
|
||||||
|
client = connect()
|
||||||
|
address_n = tools.parse_path(address)
|
||||||
|
return client.ripple_get_address(address_n, show_display)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Main
|
# Main
|
||||||
#
|
#
|
||||||
|
@ -1082,6 +1082,13 @@ class ProtocolMixin(object):
|
|||||||
|
|
||||||
return self.call(proto.SelfTest(payload=b'\x00\xFF\x55\xAA\x66\x99\x33\xCCABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\x00\xFF\x55\xAA\x66\x99\x33\xCC'))
|
return self.call(proto.SelfTest(payload=b'\x00\xFF\x55\xAA\x66\x99\x33\xCCABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\x00\xFF\x55\xAA\x66\x99\x33\xCC'))
|
||||||
|
|
||||||
|
@field('address')
|
||||||
|
@expect(proto.RippleAddress)
|
||||||
|
def ripple_get_address(self, address_n, show_display=False):
|
||||||
|
return self.call(
|
||||||
|
proto.RippleGetAddress(
|
||||||
|
address_n=address_n, show_display=show_display))
|
||||||
|
|
||||||
@field('public_key')
|
@field('public_key')
|
||||||
@expect(proto.StellarPublicKey)
|
@expect(proto.StellarPublicKey)
|
||||||
def stellar_get_public_key(self, address_n, show_display=False):
|
def stellar_get_public_key(self, address_n, show_display=False):
|
||||||
|
54
trezorlib/tests/device_tests/test_msg_ripple_get_address.py
Normal file
54
trezorlib/tests/device_tests/test_msg_ripple_get_address.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
# This file is part of the Trezor project.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2012-2018 SatoshiLabs and contributors
|
||||||
|
#
|
||||||
|
# This library is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License version 3
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# This library is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the License along with this library.
|
||||||
|
# If not, see <https://www.gnu.org/licenses/lgpl-3.0.html>.
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from .common import TrezorTest
|
||||||
|
from .conftest import TREZOR_VERSION
|
||||||
|
from binascii import hexlify
|
||||||
|
from trezorlib import messages as proto
|
||||||
|
from trezorlib.client import CallException
|
||||||
|
from trezorlib.tools import parse_path
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.ripple
|
||||||
|
@pytest.mark.skip_t1 # T1 support is not planned
|
||||||
|
@pytest.mark.xfail(TREZOR_VERSION == 2, reason="T2 support is not yet finished")
|
||||||
|
class TestMsgRippleGetAddress(TrezorTest):
|
||||||
|
|
||||||
|
def test_ripple_get_address(self):
|
||||||
|
# data from https://iancoleman.io/bip39/#english
|
||||||
|
self.setup_mnemonic_allallall()
|
||||||
|
|
||||||
|
address = self.client.ripple_get_address(parse_path("m/44'/144'/0'/0/0"))
|
||||||
|
assert address == 'rNaqKtKrMSwpwZSzRckPf7S96DkimjkF4H'
|
||||||
|
address = self.client.ripple_get_address(parse_path("m/44'/144'/0'/0/1"))
|
||||||
|
assert address == 'rBKz5MC2iXdoS3XgnNSYmF69K1Yo4NS3Ws'
|
||||||
|
address = self.client.ripple_get_address(parse_path("m/44'/144'/1'/0/0"))
|
||||||
|
assert address == 'rJX2KwzaLJDyFhhtXKi3htaLfaUH2tptEX'
|
||||||
|
|
||||||
|
def test_ripple_get_address_other(self):
|
||||||
|
# data from https://github.com/you21979/node-ripple-bip32/blob/master/test/test.js
|
||||||
|
self.client.load_device_by_mnemonic(
|
||||||
|
mnemonic='armed bundle pudding lazy strategy impulse where identify submit weekend physical antenna flight social acoustic absurd whip snack decide blur unfold fiction pumpkin athlete',
|
||||||
|
pin='',
|
||||||
|
passphrase_protection=False,
|
||||||
|
label='test',
|
||||||
|
language='english')
|
||||||
|
address = self.client.ripple_get_address(parse_path("m/44'/144'/0'/0/0"))
|
||||||
|
assert address == 'r4ocGE47gm4G4LkA9mriVHQqzpMLBTgnTY'
|
||||||
|
address = self.client.ripple_get_address(parse_path("m/44'/144'/0'/0/1"))
|
||||||
|
assert address == 'rUt9ULSrUvfCmke8HTFU1szbmFpWzVbBXW'
|
Loading…
Reference in New Issue
Block a user