From a3542a6441882d95a54faadedc5e14c54bc1e000 Mon Sep 17 00:00:00 2001 From: Yura Pakhuchiy Date: Sun, 1 Jul 2018 20:16:53 +0700 Subject: [PATCH] wallet: use coin's .curve_name --- src/apps/wallet/get_address.py | 2 +- src/apps/wallet/get_public_key.py | 7 +++---- src/apps/wallet/sign_message.py | 2 +- src/apps/wallet/sign_tx/__init__.py | 6 ++++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/apps/wallet/get_address.py b/src/apps/wallet/get_address.py index 6a9c0ca25..72ddd7b2e 100644 --- a/src/apps/wallet/get_address.py +++ b/src/apps/wallet/get_address.py @@ -9,7 +9,7 @@ async def get_address(ctx, msg): coin_name = msg.coin_name or 'Bitcoin' coin = coins.by_name(coin_name) - node = await seed.derive_node(ctx, msg.address_n) + node = await seed.derive_node(ctx, msg.address_n, curve_name=coin.curve_name) address = addresses.get_address(msg.script_type, coin, node, msg.multisig) address_short = addresses.address_short(coin, address) diff --git a/src/apps/wallet/get_public_key.py b/src/apps/wallet/get_public_key.py index eb49b8b39..3abcf9280 100644 --- a/src/apps/wallet/get_public_key.py +++ b/src/apps/wallet/get_public_key.py @@ -11,13 +11,12 @@ from ubinascii import hexlify async def get_public_key(ctx, msg): coin_name = msg.coin_name or 'Bitcoin' + coin = coins.by_name(coin_name) curve_name = msg.ecdsa_curve_name if not curve_name: - node = await seed.derive_node(ctx, msg.address_n) - else: - node = await seed.derive_node(ctx, msg.address_n, curve_name=curve_name) - coin = coins.by_name(coin_name) + curve_name = coin.curve_name + node = await seed.derive_node(ctx, msg.address_n, curve_name=curve_name) node_xpub = node.serialize_public(coin.xpub_magic) pubkey = node.public_key() diff --git a/src/apps/wallet/sign_message.py b/src/apps/wallet/sign_message.py index 5cb48f090..4fb8355f3 100644 --- a/src/apps/wallet/sign_message.py +++ b/src/apps/wallet/sign_message.py @@ -18,7 +18,7 @@ async def sign_message(ctx, msg): await require_confirm_sign_message(ctx, message) - node = await seed.derive_node(ctx, address_n) + node = await seed.derive_node(ctx, address_n, curve_name=coin.curve_name) seckey = node.private_key() address = get_address(script_type, coin, node) diff --git a/src/apps/wallet/sign_tx/__init__.py b/src/apps/wallet/sign_tx/__init__.py index e167a80e8..47749667c 100644 --- a/src/apps/wallet/sign_tx/__init__.py +++ b/src/apps/wallet/sign_tx/__init__.py @@ -2,7 +2,7 @@ from trezor import ui, wire from trezor.messages.MessageType import TxAck from trezor.messages.TxRequest import TxRequest from trezor.messages.RequestType import TXFINISHED -from apps.common import seed +from apps.common import seed, coins from apps.wallet.sign_tx.helpers import UiConfirmOutput, UiConfirmTotal, UiConfirmFeeOverThreshold, UiConfirmForeignAddress @@ -10,8 +10,10 @@ from apps.wallet.sign_tx.helpers import UiConfirmOutput, UiConfirmTotal, UiConfi async def sign_tx(ctx, msg): from apps.wallet.sign_tx import layout, progress, signing + coin_name = msg.coin_name or 'Bitcoin' + coin = coins.by_name(coin_name) # TODO: rework this so we don't have to pass root to signing.sign_tx - root = await seed.derive_node(ctx, []) + root = await seed.derive_node(ctx, [], curve_name=coin.curve_name) signer = signing.sign_tx(msg, root) res = None