From 2e6587ec6c312b7937acef6cdaa07ece5415f48a Mon Sep 17 00:00:00 2001 From: Tomas Susanka Date: Thu, 22 Mar 2018 15:31:10 +0100 Subject: [PATCH] nem: transaction create mosaic supply change --- src/apps/nem/transaction.py | 21 ++++++ ...t_apps.nem.transaction.mosaic_creation.py} | 0 ...ps.nem.transaction.mosaic_supply_change.py | 69 +++++++++++++++++++ 3 files changed, 90 insertions(+) rename tests/{test_apps.nem.transaction.mosaic.creation.py => test_apps.nem.transaction.mosaic_creation.py} (100%) create mode 100644 tests/test_apps.nem.transaction.mosaic_supply_change.py diff --git a/src/apps/nem/transaction.py b/src/apps/nem/transaction.py index ac353c322..d8fdf33d9 100644 --- a/src/apps/nem/transaction.py +++ b/src/apps/nem/transaction.py @@ -105,6 +105,27 @@ def nem_transaction_create_mosaic_creation(network: int, timestamp: int, signer_ return w +def nem_transaction_create_mosaic_supply_change(network: int, timestamp: int, signer_public_key: bytes, fee: int, + deadline: int, namespace: str, mosaic: str, type: int, delta: int): + + w = _nem_transaction_write_common(NEM_TRANSACTION_TYPE_MOSAIC_SUPPLY_CHANGE, + _nem_get_version(network), + timestamp, + signer_public_key, + fee, + deadline) + + identifier_length = 4 + len(namespace) + 4 + len(mosaic) + write_uint32(w, identifier_length) + write_bytes_with_length(w, bytearray(namespace)) + write_bytes_with_length(w, bytearray(mosaic)) + + write_uint32(w, type) + write_uint64(w, delta) + + return w + + def nem_write_mosaic(w: bytearray, name: str, value): if type(value) == bool: if value: diff --git a/tests/test_apps.nem.transaction.mosaic.creation.py b/tests/test_apps.nem.transaction.mosaic_creation.py similarity index 100% rename from tests/test_apps.nem.transaction.mosaic.creation.py rename to tests/test_apps.nem.transaction.mosaic_creation.py diff --git a/tests/test_apps.nem.transaction.mosaic_supply_change.py b/tests/test_apps.nem.transaction.mosaic_supply_change.py new file mode 100644 index 000000000..c5e3affba --- /dev/null +++ b/tests/test_apps.nem.transaction.mosaic_supply_change.py @@ -0,0 +1,69 @@ +from common import * + +from apps.nem.transaction import * +from trezor.crypto import hashlib + + +class TestNemTransactionMosaicCreation(unittest.TestCase): + + def test_nem_transaction_create_mosaic_supply_change(self): + + # http://bigalice2.nem.ninja:7890/transaction/get?hash=33a50fdd4a54913643a580b2af08b9a5b51b7cee922bde380e84c573a7969c50 + t = nem_transaction_create_mosaic_supply_change(NEM_NETWORK_TESTNET, + 14071648, + unhexlify("994793ba1c789fa9bdea918afc9b06e2d0309beb1081ac5b6952991e4defd324"), + 108000000, + 14075248, + "gimre.games.pong", + "paddles", + 1, + 1234) + + self.assertEqual(hashlib.sha3_256(t).digest(True), + unhexlify('33a50fdd4a54913643a580b2af08b9a5b51b7cee922bde380e84c573a7969c50')) + + # http://bigalice2.nem.ninja:7890/transaction/get?hash=1ce8e8894d077a66ff22294b000825d090a60742ec407efd80eb8b19657704f2 + t = nem_transaction_create_mosaic_supply_change(NEM_NETWORK_TESTNET, + 14126909, + unhexlify("84afa1bbc993b7f5536344914dde86141e61f8cbecaf8c9cefc07391f3287cf5"), + 108000000, + 14130509, + "jabo38_ltd.fuzzy_kittens_cafe", + "coupons", + 2, + 1) + + self.assertEqual(hashlib.sha3_256(t).digest(True), + unhexlify('1ce8e8894d077a66ff22294b000825d090a60742ec407efd80eb8b19657704f2')) + + # http://bigalice3.nem.ninja:7890/transaction/get?hash=694e493e9576d2bcf60d85747e302ac2e1cc27783187947180d4275a713ff1ff + t = nem_transaction_create_mosaic_supply_change(NEM_NETWORK_MAINNET, + 53377685, + unhexlify("b7ccc27b21ba6cf5c699a8dc86ba6ba98950442597ff9fa30e0abe0f5f4dd05d"), + 20000000, + 53464085, + "abvapp", + "abv", + 1, + 9000000) + + self.assertEqual(hashlib.sha3_256(t).digest(True), + unhexlify('694e493e9576d2bcf60d85747e302ac2e1cc27783187947180d4275a713ff1ff')) + + # http://bigalice3.nem.ninja:7890/transaction/get?hash=09836334e123970e068d5b411e4d1df54a3ead10acf1ad5935a2cdd9f9680185 + t = nem_transaction_create_mosaic_supply_change(NEM_NETWORK_MAINNET, + 55176304, + unhexlify("75f001a8641e2ce5c4386883dda561399ed346177411b492a677b73899502f13"), + 20000000, + 55262704, + "sushi", + "wasabi", + 2, + 20) + + self.assertEqual(hashlib.sha3_256(t).digest(True), + unhexlify('09836334e123970e068d5b411e4d1df54a3ead10acf1ad5935a2cdd9f9680185')) + + +if __name__ == '__main__': + unittest.main()