This commit is contained in:
andrei 2022-04-08 16:02:52 +03:00
parent f98eb7d463
commit cd7cd7703c
2 changed files with 20 additions and 39 deletions

View File

@ -76,11 +76,11 @@ def store_transactions(connection, signed_transactions: list):
for _key in txtuples["keys"]:
keysxspace.insert(_key)
if len(txtuples["metadata"]) > 0:
if txtuples["metadata"] is not None:
metadatasxspace.insert(txtuples["metadata"])
if txtuples["is_data"]:
assetsxspace.insert(txtuples["asset_data"])
if txtuples["asset"] is not None:
assetsxspace.insert(txtuples["asset"])
@register_query(TarantoolDB)
@ -115,11 +115,11 @@ def get_metadata(connection, transaction_ids: list):
@register_query(TarantoolDB)
# asset: {"id": "asset_id"}
# asset: {"data": any} -> insert (tx_id, asset["data"]).
def store_asset(connection, asset: dict, tx_id=None, is_data=False): # TODO convert to str all asset["id"]
def store_asset(connection, asset: dict, tx_id=None): # TODO convert to str all asset["id"]
space = connection.space("assets")
try:
if is_data and tx_id is not None:
space.insert((tx_id, asset))
if tx_id is not None:
space.insert((asset, tx_id))
else:
space.insert((str(asset["id"]), asset))
except: # TODO Add Raise For Duplicate
@ -131,7 +131,7 @@ def store_assets(connection, assets: list):
space = connection.space("assets")
for asset in assets:
try:
space.insert((asset["id"], asset))
space.insert((asset, asset["id"]))
except: # TODO Raise ERROR for Duplicate
pass
@ -149,10 +149,11 @@ def get_assets(connection, assets_ids: list) -> list:
_returned_data = []
space = connection.space("assets")
for _id in list(set(assets_ids)):
asset = space.select(str(_id), index="assetid_search")
asset = space.select(str(_id), index="txid_search")
asset = asset.data[0]
_returned_data.append(asset[1])
return sorted(_returned_data, key=lambda k: k["id"], reverse=False)
_returned_data.append(asset[0])
# return sorted(_returned_data, key=lambda k: k["id"], reverse=False)
return _returned_data
@register_query(TarantoolDB)

View File

@ -31,12 +31,10 @@ class TransactionDecompose:
"inputs": [],
"outputs": [],
"keys": [],
"metadata": (),
"asset": "",
"asset_data": (),
"metadata": None,
"asset": None
}
print(f"Transaction ::::: {self._transaction}")
self.if_key = lambda dct, key: False if not key in dct.keys() else dct[key]
def get_map(self, dictionary: dict = None):
@ -48,23 +46,17 @@ class TransactionDecompose:
def _metadata_check(self):
metadata = self._transaction.get("metadata")
self._tuple_transaction["metadata"] = (self._transaction["id"], metadata) if metadata is not None else ()
if metadata is None:
return
def __asset_check(self): # ASSET CAN BE VERIFIED BY OPERATION TYPE CREATE OR TRANSFER
_operation = self._transaction["operation"]
self._tuple_transaction["metadata"] = (self._transaction["id"], metadata)
def __asset_check(self):
_asset = self._transaction.get("asset")
if _asset is None:
self._tuple_transaction["asset"] = ""
return
if _operation == "CREATE":
self._tuple_transaction["asset_data"] = (self._transaction["id"], _asset, self._transaction["id"])
self._tuple_transaction["asset"] = self._transaction["id"]
return
elif _operation == "TRANSFER":
self._tuple_transaction["asset"] = _asset["id"]
return
self._tuple_transaction["asset"] = (_asset, self._transaction["id"])
def __prepare_inputs(self):
_inputs = []
@ -118,7 +110,6 @@ class TransactionDecompose:
return (self._transaction["id"],
self._transaction["operation"],
self._transaction["version"],
self._tuple_transaction["asset"],
self.get_map())
def convert_to_tuple(self):
@ -148,18 +139,7 @@ class TransactionCompose:
return self.db_results["transaction"][0]
def _get_asset(self):
# if self._get_transaction_operation() == 'CREATE':
# return None
if len(self.db_results["transaction"][3]) > 0:
print("get_asse 1")
return {
"id": self.db_results["transaction"][3]
}
elif len(self.db_results["asset"]) > 0:
print("get_asse 2")
return self.db_results["asset"][0][1]
else:
return {'data': None}
return None
def _get_metadata(self):
return self.db_results["metadata"][0][1] if len(self.db_results["metadata"]) == 1 else None