コード例 #1
0
async def require_confirm_tx(ctx, to, value):

    text = Text("Confirm sending", ui.ICON_SEND, ui.GREEN)
    text.bold(format_amount(value, helpers.DECIMALS) + " XRP")
    text.normal("to")
    text.mono(*split_address(to))
    return await require_hold_to_confirm(ctx, text, ButtonRequestType.SignTx)
コード例 #2
0
ファイル: layout.py プロジェクト: waaraawa/trezor-core
async def require_confirm_final(ctx, fee: int):
    text = Text("Final confirm", ui.ICON_SEND, icon_color=ui.GREEN)
    text.normal("Sign this transaction")
    text.bold("and pay %s XEM" % format_amount(fee, NEM_MAX_DIVISIBILITY))
    text.normal("for network fee?")
    # we use SignTx, not ConfirmOutput, for compatibility with T1
    await require_hold_to_confirm(ctx, text, ButtonRequestType.SignTx)
コード例 #3
0
async def require_confirm_fee(ctx, action: str, fee: int):
    content = (
        ui.NORMAL,
        action,
        ui.BOLD,
        '%s XEM' % format_amount(fee, NEM_MAX_DIVISIBILITY),
    )
    await require_confirm_content(ctx, 'Confirm fee', content)
コード例 #4
0
 def test_format_amount(self):
     VECTORS = [
         (123456, 3, "123.456"),
         (4242, 7, "0.0004242"),
         (-123456, 3, "-123.456"),
         (-4242, 7, "-0.0004242"),
     ]
     for v in VECTORS:
         self.assertEqual(utils.format_amount(v[0], v[1]), v[2])
コード例 #5
0
def _get_levy_msg(mosaic_definition, quantity: int, network: int) -> str:
    levy_definition = get_mosaic_definition(
        mosaic_definition['levy_namespace'], mosaic_definition['levy_mosaic'],
        network)
    if mosaic_definition['levy'] == NEMMosaicLevy.MosaicLevy_Absolute:
        levy_fee = mosaic_definition['fee']
    else:
        levy_fee = quantity * mosaic_definition[
            'fee'] / NEM_LEVY_PERCENTILE_DIVISOR_ABSOLUTE
    return format_amount(
        levy_fee, levy_definition['divisibility']) + levy_definition['ticker']
コード例 #6
0
ファイル: layout.py プロジェクト: mitsosf/trezor-firmware
def format_icon_amount(value: int, token, nid: int, tx_type=None):
    if token:
        if token is tokens.UNKNOWN_TOKEN:
            return "Unknown token value"
        suffix = token[2]
        decimals = token[3]
    else:
        suffix = networks.shortcut_by_nid(nid, tx_type)
        decimals = 18

    return "%s %s" % (format_amount(value, decimals), suffix)
コード例 #7
0
def _get_levy_msg(mosaic_definition, quantity: int, network: int) -> str:
    levy_definition = get_mosaic_definition(
        mosaic_definition["levy_namespace"], mosaic_definition["levy_mosaic"],
        network)
    if mosaic_definition["levy"] == NEMMosaicLevy.MosaicLevy_Absolute:
        levy_fee = mosaic_definition["fee"]
    else:
        levy_fee = (quantity * mosaic_definition["fee"] /
                    NEM_LEVY_PERCENTILE_DIVISOR_ABSOLUTE)
    return (format_amount(levy_fee, levy_definition["divisibility"]) +
            levy_definition["ticker"])
コード例 #8
0
ファイル: layout.py プロジェクト: yura-pakhuchiy/trezor-core
async def _require_confirm_transfer(ctx, recipient, value):
    content = Text('Confirm transfer',
                   ui.ICON_SEND,
                   ui.BOLD,
                   'Send %s XEM' % format_amount(value, NEM_MAX_DIVISIBILITY),
                   ui.NORMAL,
                   'to',
                   ui.MONO,
                   *split_address(recipient),
                   icon_color=ui.GREEN)
    await require_confirm(ctx, content, ButtonRequestType.ConfirmOutput)
コード例 #9
0
async def require_confirm_final(ctx, fee: int):
    content = Text('Final confirm',
                   ui.ICON_SEND,
                   ui.NORMAL,
                   'Sign this transaction',
                   ui.BOLD,
                   'and pay %s XEM' % format_amount(fee, NEM_MAX_DIVISIBILITY),
                   ui.NORMAL,
                   'for network fee?',
                   icon_color=ui.GREEN)
    # we use SignTx, not ConfirmOutput, for compatibility with T1
    await require_hold_to_confirm(ctx, content, ButtonRequestType.SignTx)
コード例 #10
0
async def require_confirm_order(ctx, msg: BinanceOrderMsg):
    page1 = Text("Confirm order 1/3", ui.ICON_SEND, icon_color=ui.GREEN)
    page1.normal("Sender address:")
    page1.bold(msg.sender)

    page2 = Text("Confirm order 2/3", ui.ICON_SEND, icon_color=ui.GREEN)
    page2.normal("Pair:")
    page2.bold(msg.symbol)
    page2.normal("Side:")
    if msg.side == BinanceOrderSide.BUY:
        page2.bold("Buy")
    elif msg.side == BinanceOrderSide.SELL:
        page2.bold("Sell")

    page3 = Text("Confirm order 3/3", ui.ICON_SEND, icon_color=ui.GREEN)
    page3.normal("Quantity:")
    page3.bold(format_amount(msg.quantity, helpers.DECIMALS))
    page3.normal("Price:")
    page3.bold(format_amount(msg.price, helpers.DECIMALS))

    return await hold_to_confirm(ctx, Paginated([page1, page2, page3]),
                                 ButtonRequestType.SignTx)
コード例 #11
0
def format_ethereum_amount(value, token, chain_id):
    value = int.from_bytes(value, 'big')
    if token:
        suffix = token['symbol']
        decimals = token['decimal']
    elif value < 1e18:
        suffix = 'Wei'
        decimals = 0
    else:
        decimals = 18
        suffix = networks.suffix_by_chain_id(chain_id)

    return '%s %s' % (format_amount(value, decimals), suffix)
コード例 #12
0
ファイル: omni.py プロジェクト: zcore-dev/trezor-firmware-1
def parse(data: bytes) -> bool:
    if not is_valid(data):
        return None
    tx_version, tx_type = unpack(">HH", data[4:8])
    if tx_version == 0 and tx_type == 0 and len(data) == 20:  # OMNI simple send
        currency, amount = unpack(">IQ", data[8:20])
        suffix, divisible = currencies.get(currency, ("UNKN", False))
        return "Simple send of %s %s" % (
            format_amount(amount, 8 if divisible else 0),
            suffix,
        )
    else:
        # unknown OMNI transaction
        return "Unknown transaction"
コード例 #13
0
    def make_input_output_pages(msg: BinanceInputOutput, direction):
        pages = []
        for coin in msg.coins:
            coin_page = Text("Confirm " + direction,
                             ui.ICON_SEND,
                             icon_color=ui.GREEN)
            coin_page.bold(
                format_amount(coin.amount, helpers.DECIMALS) + " " +
                coin.denom)
            coin_page.normal("to")
            coin_page.mono(*split_address(msg.address))
            pages.append(coin_page)

        return pages
コード例 #14
0
ファイル: layout.py プロジェクト: pmclassic/trezor-core
def format_ethereum_amount(value: int, token, chain_id: int, tx_type=None):
    if token:
        if token is tokens.UNKNOWN_TOKEN:
            return "Unknown token value"
        suffix = token[2]
        decimals = token[3]
    else:
        suffix = networks.shortcut_by_chain_id(chain_id, tx_type)
        decimals = 18

    if value <= 1e9:
        suffix = "Wei " + suffix
        decimals = 0

    return "%s %s" % (format_amount(value, decimals), suffix)
コード例 #15
0
ファイル: layout.py プロジェクト: zcore-dev/trezor-firmware-1
def format_ethereum_amount(value: int, token, chain_id: int, tx_type=None):
    if token:
        if token is tokens.UNKNOWN_TOKEN:
            return "Unknown token value"
        suffix = token[2]
        decimals = token[3]
    else:
        suffix = networks.shortcut_by_chain_id(chain_id, tx_type)
        decimals = 18

    # Don't want to display wei values for tokens with small decimal numbers
    if decimals > 9 and value < 10 ** (decimals - 9):
        suffix = "Wei " + suffix
        decimals = 0

    return "%s %s" % (format_amount(value, decimals), suffix)
コード例 #16
0
async def ask_transfer_mosaic(ctx, common: NEMTransactionCommon,
                              transfer: NEMTransfer, mosaic: NEMMosaic):
    if is_nem_xem_mosaic(mosaic.namespace, mosaic.mosaic):
        return

    definition = get_mosaic_definition(mosaic.namespace, mosaic.mosaic,
                                       common.network)
    mosaic_quantity = mosaic.quantity * transfer.amount / NEM_MOSAIC_AMOUNT_DIVISOR

    if definition:
        msg = Text("Confirm mosaic", ui.ICON_SEND, ui.GREEN)
        msg.normal("Confirm transfer of")
        msg.bold(
            format_amount(mosaic_quantity, definition["divisibility"]) +
            definition["ticker"])
        msg.normal("of")
        msg.bold(definition["name"])
        await require_confirm(ctx, msg, ButtonRequestType.ConfirmOutput)

        if "levy" in definition and "fee" in definition:
            levy_msg = _get_levy_msg(definition, mosaic_quantity,
                                     common.network)
            msg = Text("Confirm mosaic", ui.ICON_SEND, ui.GREEN)
            msg.normal("Confirm mosaic", "levy fee of")
            msg.bold(levy_msg)
            await require_confirm(ctx, msg, ButtonRequestType.ConfirmOutput)

    else:
        msg = Text("Confirm mosaic", ui.ICON_SEND, ui.RED)
        msg.bold("Unknown mosaic!")
        msg.normal("Divisibility and levy")
        msg.normal("cannot be shown for")
        msg.normal("unknown mosaics")
        await require_confirm(ctx, msg, ButtonRequestType.ConfirmOutput)

        msg = Text("Confirm mosaic", ui.ICON_SEND, ui.GREEN)
        msg.normal("Confirm transfer of")
        msg.bold("%s raw units" % mosaic_quantity)
        msg.normal("of")
        msg.bold("%s.%s" % (mosaic.namespace, mosaic.mosaic))
        await require_confirm(ctx, msg, ButtonRequestType.ConfirmOutput)
コード例 #17
0
async def ask_transfer_mosaic(ctx, common: NEMTransactionCommon,
                              transfer: NEMTransfer, mosaic: NEMMosaic):
    if is_nem_xem_mosaic(mosaic.namespace, mosaic.mosaic):
        return

    definition = get_mosaic_definition(mosaic.namespace, mosaic.mosaic,
                                       common.network)
    mosaic_quantity = mosaic.quantity * transfer.amount / NEM_MOSAIC_AMOUNT_DIVISOR

    if definition:
        msg = Text('Confirm mosaic', ui.ICON_SEND, icon_color=ui.GREEN)
        msg.normal('Confirm transfer of')
        msg.bold(
            format_amount(mosaic_quantity, definition['divisibility']) +
            definition['ticker'])
        msg.normal('of')
        msg.bold(definition['name'])
        await require_confirm(ctx, msg, ButtonRequestType.ConfirmOutput)

        if 'levy' in definition and 'fee' in definition:
            levy_msg = _get_levy_msg(definition, mosaic_quantity,
                                     common.network)
            msg = Text('Confirm mosaic', ui.ICON_SEND, icon_color=ui.GREEN)
            msg.normal('Confirm mosaic', 'levy fee of')
            msg.bold(levy_msg)
            await require_confirm(ctx, msg, ButtonRequestType.ConfirmOutput)

    else:
        msg = Text('Confirm mosaic', ui.ICON_SEND, icon_color=ui.RED)
        msg.bold('Unknown mosaic!')
        msg.normal(*split_words(
            'Divisibility and levy cannot be shown for unknown mosaics', 22))
        await require_confirm(ctx, msg, ButtonRequestType.ConfirmOutput)

        msg = Text('Confirm mosaic', ui.ICON_SEND, icon_color=ui.GREEN)
        msg.normal('Confirm transfer of')
        msg.bold('%s raw units' % mosaic_quantity)
        msg.normal('of')
        msg.bold('%s.%s' % (mosaic.namespace, mosaic.mosaic))
        await require_confirm(ctx, msg, ButtonRequestType.ConfirmOutput)
コード例 #18
0
def format_amount(value):
    return "%s XMR" % utils.format_amount(value, 12)
コード例 #19
0
def format_amount(amount: int, ticker=True) -> str:
    t = ""
    if ticker:
        t = " XLM"
    return utils.format_amount(amount, consts.AMOUNT_DECIMALS) + t
コード例 #20
0
def format_coin_amount(amount, coin):
    return "%s %s" % (format_amount(amount, coin.decimals), coin.coin_shortcut)
コード例 #21
0
def format_coin_amount(amount, coin):
    return "%s %s" % (format_amount(amount,
                                    coin.divisibility), coin.coin_shortcut)
コード例 #22
0
ファイル: common.py プロジェクト: tatdig/trezor-core
def format_amount(value):
    return "%s BCN" % utils.format_amount(value, 8)
コード例 #23
0
def format_amount(amount: int, ticker=True) -> str:
    t = ""
    if ticker:
        t = " XLM"
    return utils.format_amount(amount, consts.AMOUNT_DIVISIBILITY) + t
コード例 #24
0
ファイル: layout.py プロジェクト: wilsonmeier/trezor-core
def format_coin_amount(amount, coin):
    return '%s %s' % (format_amount(amount, 8), coin.coin_shortcut)
コード例 #25
0
ファイル: layout.py プロジェクト: zcore-dev/trezor-firmware-1
def format_coin_amount(value):
    return "%s LSK" % format_amount(value, 8)
コード例 #26
0
def format_tezos_amount(value):
    formatted_value = format_amount(value, TEZOS_AMOUNT_DIVISIBILITY)
    return formatted_value + " XTZ"
コード例 #27
0
ファイル: __init__.py プロジェクト: stopstopstop/emu
def format_coin_amount(amount):
    return "%s %s" % (format_amount(amount, 6), "ADA")
コード例 #28
0
async def _require_confirm_transfer(ctx, recipient, value):
    text = Text("Confirm transfer", ui.ICON_SEND, ui.GREEN)
    text.bold("Send %s XEM" % format_amount(value, NEM_MAX_DIVISIBILITY))
    text.normal("to")
    text.mono(*split_address(recipient))
    await require_confirm(ctx, text, ButtonRequestType.ConfirmOutput)
コード例 #29
0
async def require_confirm_fee(ctx, fee):
    text = Text("Confirm fee", ui.ICON_SEND, ui.GREEN)
    text.normal("Transaction fee:")
    text.bold(format_amount(fee, helpers.DECIMALS) + " XRP")
    await require_confirm(ctx, text, ButtonRequestType.ConfirmOutput)
コード例 #30
0
def format_tezos_amount(value):
    formatted_value = format_amount(value, TEZOS_AMOUNT_DECIMALS)
    return formatted_value + " XTZ"