diff --git a/core/src/apps/nem/mosaic/layout.py b/core/src/apps/nem/mosaic/layout.py index c270de4c5..ca1f18c09 100644 --- a/core/src/apps/nem/mosaic/layout.py +++ b/core/src/apps/nem/mosaic/layout.py @@ -1,5 +1,6 @@ -from trezor import ui, wire +from trezor import ui from trezor.messages import ( + ButtonRequestType, NEMMosaicCreation, NEMMosaicDefinition, NEMMosaicLevy, @@ -7,7 +8,6 @@ from trezor.messages import ( NEMSupplyChangeType, NEMTransactionCommon, ) -from trezor.ui.confirm import CONFIRMED, Confirm from trezor.ui.scroll import Paginated from trezor.ui.text import Text @@ -18,17 +18,14 @@ from ..layout import ( require_confirm_text, ) -from apps.common.layout import split_address - -if __debug__: - from apps.debug import confirm_signal +from apps.common.layout import require_confirm, split_address async def ask_mosaic_creation( ctx, common: NEMTransactionCommon, creation: NEMMosaicCreation ): await require_confirm_content(ctx, "Create mosaic", _creation_message(creation)) - await _require_confirm_properties(ctx, creation.definition) + await require_confirm_properties(ctx, creation.definition) await require_confirm_fee(ctx, "Confirm creation fee", creation.fee) await require_confirm_final(ctx, common.fee) @@ -75,21 +72,7 @@ def _supply_message(supply_change): ] -async def _require_confirm_properties(ctx, definition: NEMMosaicDefinition): - # TODO: we should send a button request here - pages = _get_mosaic_properties(definition) - pages[-1] = Confirm(pages[-1]) - paginated = Paginated(pages) - - if __debug__: - result = await ctx.wait(paginated, confirm_signal) - else: - result = await ctx.wait(paginated) - if result is not CONFIRMED: - raise wire.ActionCancelled("Action cancelled") - - -def _get_mosaic_properties(definition: NEMMosaicDefinition): +async def require_confirm_properties(ctx, definition: NEMMosaicDefinition): properties = [] # description @@ -156,4 +139,5 @@ def _get_mosaic_properties(definition: NEMMosaicDefinition): t.normal(levy_type) properties.append(t) - return properties + paginated = Paginated(properties) + await require_confirm(ctx, paginated, ButtonRequestType.ConfirmOutput) diff --git a/python/trezorlib/tests/device_tests/test_msg_nem_signtx_mosaics_t2.py b/python/trezorlib/tests/device_tests/test_msg_nem_signtx_mosaics_t2.py index b019a8bd6..5089a4a86 100644 --- a/python/trezorlib/tests/device_tests/test_msg_nem_signtx_mosaics_t2.py +++ b/python/trezorlib/tests/device_tests/test_msg_nem_signtx_mosaics_t2.py @@ -14,7 +14,6 @@ # You should have received a copy of the License along with this library. # If not, see . -import time import pytest @@ -177,10 +176,9 @@ class TestMsgNEMSignTxMosaics(TrezorTest): self.client.debug.press_yes() # Swipe and confirm - time.sleep(1) - for i in range(num_of_swipes): + yield + for _ in range(num_of_swipes): self.client.debug.swipe_down() - time.sleep(1) self.client.debug.press_yes() # Confirm Action @@ -196,6 +194,7 @@ class TestMsgNEMSignTxMosaics(TrezorTest): with self.client: self.client.set_expected_responses( [ + proto.ButtonRequest(code=B.ConfirmOutput), proto.ButtonRequest(code=B.ConfirmOutput), proto.ButtonRequest(code=B.ConfirmOutput), proto.ButtonRequest(code=B.SignTx),