From cb32da52c67718a3e2e617d7cb28421d6bddd23f Mon Sep 17 00:00:00 2001 From: Lorenz Herzberger Date: Thu, 26 Jan 2023 10:10:39 +0100 Subject: [PATCH 1/2] added decompose test cases to assets and web Signed-off-by: Lorenz Herzberger --- tests/assets/test_digital_assets.py | 13 +++++++++++++ tests/web/test_transactions.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/tests/assets/test_digital_assets.py b/tests/assets/test_digital_assets.py index f91e0de..5c1af3d 100644 --- a/tests/assets/test_digital_assets.py +++ b/tests/assets/test_digital_assets.py @@ -82,6 +82,19 @@ def test_compose_valid_transactions(b, user_pk, user_sk, alice, signed_create_tx assert b.validate_transaction(compose_transaction) +def test_decompose_valid_transactions(b, user_pk, user_sk, alice, signed_create_tx, _bdb): + from transactions.types.assets.decompose import Decompose + + validated = b.validate_transaction(signed_create_tx) + b.store_bulk_transactions([validated]) + + inputs = signed_create_tx.to_inputs() + assets = [signed_create_tx.id] + decompose_transaction = Decompose.generate(inputs=inputs, recipients=[([user_pk], 1)], assets=assets) + decompose_transaction.sign([user_sk]) + assert b.validate_transaction(decompose_transaction) + + def test_create_valid_divisible_asset(b, user_pk, user_sk, _bdb): tx = Create.generate([user_pk], [([user_pk], 2)]) tx_signed = tx.sign([user_sk]) diff --git a/tests/web/test_transactions.py b/tests/web/test_transactions.py index 40c9b8d..345d049 100644 --- a/tests/web/test_transactions.py +++ b/tests/web/test_transactions.py @@ -16,6 +16,7 @@ from transactions.common import crypto from transactions.common.transaction import Transaction from transactions.types.assets.create import Create from transactions.types.assets.compose import Compose +from transactions.types.assets.decompose import Decompose from transactions.types.assets.transfer import Transfer from transactions.common.transaction_mode_types import ( BROADCAST_TX_COMMIT, @@ -523,3 +524,30 @@ def test_post_transaction_compose_valid(client, b): mode_endpoint = TX_ENDPOINT + "?mode=commit" response = client.post(mode_endpoint, data=json.dumps(signed_tx.to_dict())) assert "202 ACCEPTED" in response.status + + +@pytest.mark.abci +def test_post_transaction_decompose_valid(client, b): + mode = ("?mode=commit", BROADCAST_TX_COMMIT) + alice = generate_key_pair() + tx = Create.generate( + [alice.public_key], + [([alice.public_key], 1)], + assets=[{"data": "QmW5GVMW98D3mktSDfWHS8nX2UiCd8gP1uCiujnFX4yK97"}], + ).sign([alice.private_key]) + mode_endpoint = TX_ENDPOINT + mode[0] + response = client.post(mode_endpoint, data=json.dumps(tx.to_dict())) + assert "202 ACCEPTED" in response.status + tx_obj = tx + tx = tx.to_dict() + inputs_ = tx_obj.to_inputs() + + assets_ = [tx["id"]] + decompose_transaction = Decompose.generate(inputs=inputs_, recipients=[([alice.public_key], 1)], assets=assets_) + signed_tx = decompose_transaction.sign([alice.private_key]) + validated_decompose = b.validate_transaction(signed_tx) + mode_endpoint = TX_ENDPOINT + "?mode=commit" + response = client.post(mode_endpoint, data=json.dumps(signed_tx.to_dict())) + assert "202 ACCEPTED" in response.status + + \ No newline at end of file From 869d8a394d4e61d6175e4cf41cc7d0d14a41e4b3 Mon Sep 17 00:00:00 2001 From: Lorenz Herzberger Date: Thu, 26 Jan 2023 10:20:14 +0100 Subject: [PATCH 2/2] updated CHANGELOG and version Signed-off-by: Lorenz Herzberger --- CHANGELOG.md | 3 +++ planetmint/version.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 900bdf3..38b118f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,9 @@ For reference, the possible headings are: * **Known Issues** * **Notes** +## [2.1.0] - 2023-26-01 +* **Added** validation for compose and decompose transaction types + ## [2.0.0] - 2023-12-01 * **Changed** changed tarantool db schema * **Removed** removed text_search routes diff --git a/planetmint/version.py b/planetmint/version.py index 1cbd364..8100550 100644 --- a/planetmint/version.py +++ b/planetmint/version.py @@ -3,8 +3,8 @@ # SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0) # Code is Apache-2.0 and docs are CC-BY-4.0 -__version__ = "2.0.0" -__short_version__ = "2.0" +__version__ = "2.1.0" +__short_version__ = "2.1" # Supported Tendermint versions __tm_supported_versions__ = ["0.34.15"]