From 5ce84c5a2f955cebbcbe33f309b1c4c3234ba637 Mon Sep 17 00:00:00 2001 From: andrei Date: Mon, 4 Apr 2022 17:06:22 +0300 Subject: [PATCH] hash error --- planetmint/backend/tarantool/query.py | 6 ++--- .../backend/tarantool/transaction/tools.py | 5 +++-- planetmint/commands/planetmint.py | 7 +++--- planetmint/common/transaction.py | 2 +- planetmint/lib.py | 22 +++++++++---------- tests/db/test_bigchain_api.py | 2 +- tests/tendermint/test_lib.py | 2 +- 7 files changed, 24 insertions(+), 22 deletions(-) diff --git a/planetmint/backend/tarantool/query.py b/planetmint/backend/tarantool/query.py index 020bd3e..802233d 100644 --- a/planetmint/backend/tarantool/query.py +++ b/planetmint/backend/tarantool/query.py @@ -131,9 +131,9 @@ def store_assets(connection, assets: list): space = connection.space("assets") for asset in assets: try: - space.insert((asset["id"], asset["data"])) + space.insert((asset["id"], asset)) except: # TODO Raise ERROR for Duplicate - print("DUPLICATE ERROR (" + asset["id"] + ") " + str(asset["data"])) + pass @register_query(TarantoolDB) @@ -151,7 +151,7 @@ def get_assets(connection, assets_ids: list) -> list: for _id in list(set(assets_ids)): asset = space.select(str(_id), index="assetid_search") asset = asset.data[0] - _returned_data.append({"id": str(asset[0]), "data": asset[1]}) + _returned_data.append(asset[1]) return sorted(_returned_data, key=lambda k: k["id"], reverse=False) diff --git a/planetmint/backend/tarantool/transaction/tools.py b/planetmint/backend/tarantool/transaction/tools.py index aacf122..34e0bb8 100644 --- a/planetmint/backend/tarantool/transaction/tools.py +++ b/planetmint/backend/tarantool/transaction/tools.py @@ -49,7 +49,7 @@ class TransactionDecompose: metadata = self._transaction.get("metadata") self._tuple_transaction["metadata"] = (self._transaction["id"], metadata) if metadata is not None else () - def __asset_check(self): + def __asset_check(self): # ASSET CAN BE VERIFIED BY OPERATION TYPE CREATE OR TRANSFER _asset = self._transaction.get("asset") if _asset is None: self._tuple_transaction["asset"] = "" @@ -174,7 +174,7 @@ class TransactionCompose: _outputs = [] for _output in self.db_results["outputs"]: _out = self._map["outputs"].copy() - _out["amount"] = _out[1] + _out["amount"] = _output[1] _out["public_keys"] = [_key[3] for _key in self.db_results["keys"] if _key[2] == _output[5]] _out["condition"]["uri"] = _output[2] if self.db_results["outputs"][0][7] is None: @@ -184,6 +184,7 @@ class TransactionCompose: _out["condition"]["details"]["subconditions"] = _output[7] _out["condition"]["type"] = _output[3] _out["condition"]["treshold"] = _output[6] + _outputs.append(_out) return _outputs def convert_to_dict(self): diff --git a/planetmint/commands/planetmint.py b/planetmint/commands/planetmint.py index efa3849..641ca6d 100644 --- a/planetmint/commands/planetmint.py +++ b/planetmint/commands/planetmint.py @@ -13,7 +13,7 @@ import argparse import copy import json import sys -from planetmint.backend.tarantool.database import TarantoolDB, drop_tarantool, init_tarantool +from planetmint.backend.tarantool.connection import TarantoolDB from planetmint.core import rollback from planetmint.migrations.chain_migration_election import ChainMigrationElection @@ -245,11 +245,12 @@ def run_election_show(args, planet): def _run_init(): + pass # bdb = planetmint.Planetmint() # schema.init_database(connection=bdb.connection) - init_tarantool() + # init_tarantool() @configure_planetmint @@ -267,7 +268,7 @@ def run_drop(args): if response != 'y': return - drop_tarantool() + # drop_tarantool() def run_recover(b): diff --git a/planetmint/common/transaction.py b/planetmint/common/transaction.py index a7ce183..1e5c9cd 100644 --- a/planetmint/common/transaction.py +++ b/planetmint/common/transaction.py @@ -1170,6 +1170,7 @@ class Transaction(object): """ # NOTE: Remove reference to avoid side effects # tx_body = deepcopy(tx_body) + print("VERIF " + str(tx_body)) tx_body = rapidjson.loads(rapidjson.dumps(tx_body)) try: @@ -1181,7 +1182,6 @@ class Transaction(object): tx_body_serialized = Transaction._to_str(tx_body) valid_tx_id = Transaction._to_hash(tx_body_serialized) - print("VALIDTX " + tx_body_serialized) if proposed_tx_id != valid_tx_id: err_msg = ("The transaction's id '{}' isn't equal to " "the hash of its body, i.e. it's not valid.") diff --git a/planetmint/lib.py b/planetmint/lib.py index 1e22bec..f22fa91 100644 --- a/planetmint/lib.py +++ b/planetmint/lib.py @@ -244,17 +244,17 @@ class Planetmint(object): transaction = backend.query.get_transaction(self.connection, transaction_id) if transaction: - asset = backend.query.get_asset(self.connection, transaction_id) - metadata = backend.query.get_metadata(self.connection, [transaction_id]) - if asset: - transaction['asset'] = asset - - if 'metadata' not in transaction: - metadata = metadata[0] if metadata else None - if metadata: - metadata = metadata.get('metadata') - - transaction.update({'metadata': metadata}) + # asset = backend.query.get_asset(self.connection, transaction_id) + # metadata = backend.query.get_metadata(self.connection, [transaction_id]) + # if asset: + # transaction['asset'] = asset + # + # if 'metadata' not in transaction: + # metadata = metadata[0] if metadata else None + # if metadata: + # metadata = metadata.get('metadata') + # + # transaction.update({'metadata': metadata}) transaction = Transaction.from_dict(transaction) diff --git a/tests/db/test_bigchain_api.py b/tests/db/test_bigchain_api.py index b6d4124..ad23886 100644 --- a/tests/db/test_bigchain_api.py +++ b/tests/db/test_bigchain_api.py @@ -503,7 +503,7 @@ def test_cant_spend_same_input_twice_in_tx(b, alice): tx_create = Transaction.create([alice.public_key], [([alice.public_key], 100)]) tx_create_signed = tx_create.sign([alice.private_key]) assert b.validate_transaction(tx_create_signed) == tx_create_signed - + print("DCT " + str(tx_create_signed.to_dict())) b.store_bulk_transactions([tx_create_signed]) # Create a transfer transaction with duplicated fulfillments diff --git a/tests/tendermint/test_lib.py b/tests/tendermint/test_lib.py index 0d5b4bc..40fada6 100644 --- a/tests/tendermint/test_lib.py +++ b/tests/tendermint/test_lib.py @@ -380,7 +380,7 @@ def test_get_spent_transaction_critical_double_spend(b, alice, bob, carol): [([bob.public_key], 1)], asset_id=tx.id)\ .sign([alice.private_key]) - print("PROPOSEDTX " + str(same_input_double_spend.to_dict())) + print("SPEND " + str(tx.to_dict())) b.store_bulk_transactions([tx])