parent
4ef79ca48b
commit
375a95c214
@ -1,7 +1,7 @@
|
||||
async def apply_flags(ctx, msg):
|
||||
from trezor.messages.Success import Success
|
||||
from ..common import storage
|
||||
from trezor.messages.Success import Success
|
||||
from apps.common import storage
|
||||
|
||||
storage.set_flags(msg.flags)
|
||||
|
||||
async def apply_flags(ctx, msg):
|
||||
storage.set_flags(msg.flags)
|
||||
return Success(message='Flags applied')
|
||||
|
@ -1,58 +1,62 @@
|
||||
from micropython import const
|
||||
from trezor import ui
|
||||
from trezor.messages import ButtonRequestType, InputScriptType
|
||||
from trezor.messages.Address import Address
|
||||
from trezor.ui.container import Container
|
||||
from trezor.ui.qr import Qr
|
||||
from trezor.ui.text import Text
|
||||
from trezor.utils import chunks
|
||||
from apps.common import coins, seed
|
||||
from apps.common.confirm import confirm
|
||||
from apps.wallet.sign_tx import addresses
|
||||
|
||||
|
||||
async def get_address(ctx, msg):
|
||||
from trezor.messages.Address import Address
|
||||
from trezor.messages.InputScriptType import SPENDWITNESS
|
||||
from ..common import coins
|
||||
from ..common import seed
|
||||
from ..wallet.sign_tx import addresses
|
||||
|
||||
address_n = msg.address_n or ()
|
||||
coin_name = msg.coin_name or 'Bitcoin'
|
||||
coin = coins.by_name(coin_name)
|
||||
|
||||
node = await seed.derive_node(ctx, address_n)
|
||||
node = await seed.derive_node(ctx, msg.address_n)
|
||||
address = addresses.get_address(msg.script_type, coin, node, msg.multisig)
|
||||
|
||||
if msg.show_display:
|
||||
while True:
|
||||
if await _show_address(ctx, address):
|
||||
break
|
||||
if await _show_qr(ctx, address if msg.script_type != SPENDWITNESS else address.upper()):
|
||||
if await _show_qr(ctx, address, msg.script_type):
|
||||
break
|
||||
|
||||
return Address(address=address)
|
||||
|
||||
|
||||
async def _show_address(ctx, address):
|
||||
from trezor.messages.ButtonRequestType import Address
|
||||
from trezor.ui.text import Text
|
||||
from ..common.confirm import confirm
|
||||
|
||||
async def _show_address(ctx, address: str):
|
||||
lines = _split_address(address)
|
||||
content = Text('Confirm address', ui.ICON_DEFAULT, ui.MONO, *lines)
|
||||
return await confirm(ctx, content, code=Address, cancel='QR', cancel_style=ui.BTN_KEY)
|
||||
return await confirm(
|
||||
ctx,
|
||||
content,
|
||||
code=ButtonRequestType.Address,
|
||||
cancel='QR',
|
||||
cancel_style=ui.BTN_KEY)
|
||||
|
||||
|
||||
async def _show_qr(ctx, address):
|
||||
from trezor.messages.ButtonRequestType import Address
|
||||
from trezor.ui.text import Text
|
||||
from trezor.ui.qr import Qr
|
||||
from trezor.ui.container import Container
|
||||
from ..common.confirm import confirm
|
||||
|
||||
async def _show_qr(ctx, address: str, script_type: int):
|
||||
qr_x = const(120)
|
||||
qr_y = const(115)
|
||||
qr_coef = const(4)
|
||||
|
||||
if script_type == InputScriptType.SPENDWITNESS:
|
||||
address = address.upper()
|
||||
|
||||
content = Container(
|
||||
Qr(address, (qr_x, qr_y), qr_coef),
|
||||
Text('Confirm address', ui.ICON_DEFAULT, ui.MONO))
|
||||
return await confirm(ctx, content, code=Address, cancel='Address', cancel_style=ui.BTN_KEY)
|
||||
return await confirm(
|
||||
ctx,
|
||||
content,
|
||||
code=ButtonRequestType.Address,
|
||||
cancel='Address',
|
||||
cancel_style=ui.BTN_KEY)
|
||||
|
||||
|
||||
def _split_address(address):
|
||||
from trezor.utils import chunks
|
||||
def _split_address(address: str):
|
||||
return chunks(address, 17)
|
||||
|
@ -1,24 +1,20 @@
|
||||
from trezor import ui
|
||||
from trezor.crypto import random
|
||||
from trezor.messages import ButtonRequestType
|
||||
from trezor.messages.Entropy import Entropy
|
||||
from trezor.ui.text import Text
|
||||
from apps.common.confirm import require_confirm
|
||||
|
||||
|
||||
async def get_entropy(ctx, msg):
|
||||
from trezor.messages.Entropy import Entropy
|
||||
from trezor.crypto import random
|
||||
|
||||
l = min(msg.size, 1024)
|
||||
|
||||
await _show_entropy(ctx)
|
||||
|
||||
return Entropy(entropy=random.bytes(l))
|
||||
|
||||
|
||||
async def _show_entropy(ctx):
|
||||
from trezor.messages.ButtonRequestType import ProtectCall
|
||||
from trezor.ui.text import Text
|
||||
from ..common.confirm import require_confirm
|
||||
|
||||
await require_confirm(ctx, Text(
|
||||
'Confirm entropy', ui.ICON_DEFAULT,
|
||||
ui.BOLD, 'Do you really want', 'to send entropy?',
|
||||
ui.NORMAL, 'Continue only if you', 'know what you are doing!'),
|
||||
code=ProtectCall)
|
||||
code=ButtonRequestType.ProtectCall)
|
||||
|
||||
size = min(msg.size, 1024)
|
||||
entropy = random.bytes(size)
|
||||
|
||||
return Entropy(entropy=entropy)
|
||||
|
Loading…
Reference in new issue