diff --git a/src/apps/nem/signing.py b/src/apps/nem/signing.py index b8d53396e..915db90a0 100644 --- a/src/apps/nem/signing.py +++ b/src/apps/nem/signing.py @@ -24,6 +24,9 @@ async def nem_sign_tx(ctx, msg: NEMSignTx): elif msg.mosaic_creation: tx = await _mosaic_creation(ctx, node, msg) + elif msg.supply_change: + tx = await _supply_change(ctx, node, msg) + signature = ed25519.sign(node.private_key(), tx, helpers.NEM_HASH_ALG) resp = NEMSignedTx() @@ -32,9 +35,25 @@ async def nem_sign_tx(ctx, msg: NEMSignTx): return resp +async def _supply_change(ctx, node, msg: NEMSignTx): + # todo confirms! + return nem_transaction_create_mosaic_supply_change( + msg.transaction.network, + msg.transaction.timestamp, + _get_public_key(node), + msg.transaction.fee, + msg.transaction.deadline, + msg.supply_change.namespace, + msg.supply_change.mosaic, + msg.supply_change.type, + msg.supply_change.delta + ) + + async def _mosaic_creation(ctx, node, msg: NEMSignTx) -> bytearray: await require_confirm_action(ctx, 'Create mosaic "' + msg.mosaic_creation.definition.mosaic + '" under namespace "' + msg.mosaic_creation.definition.namespace + '"?') + # todo confirm levy! await require_confirm_properties(ctx, msg.mosaic_creation.definition) await require_confirm_final(ctx, 'mosaic', msg.transaction.fee) diff --git a/src/apps/nem/validators.py b/src/apps/nem/validators.py index baf759f6b..3b327916c 100644 --- a/src/apps/nem/validators.py +++ b/src/apps/nem/validators.py @@ -16,7 +16,7 @@ def validate(msg: NEMSignTx): if msg.transaction is None: raise ValueError('No common provided') - if msg.supply_change or msg.aggregate_modification \ + if msg.aggregate_modification \ or msg.importance_transfer: raise ValueError('Not yet implemented') # todo