Merge branch 'refactor-backend' of github.com:planetmint/planetmint into refactor-backend

This commit is contained in:
Jürgen Eckel 2023-01-11 13:36:56 +01:00
commit 10be96b4c7
No known key found for this signature in database
3 changed files with 17 additions and 3 deletions

View File

@ -28,7 +28,7 @@ class DbTransaction:
inputs=Input.from_list_dict(transaction["inputs"]),
assets=Asset.from_list_dict(transaction["assets"]),
metadata=MetaData.from_dict(transaction["metadata"]),
script=Script.from_dict(transaction["script"]),
script=Script.from_dict(transaction["script"]) if "script" in transaction else None,
)
@staticmethod
@ -53,6 +53,7 @@ class DbTransaction:
@staticmethod
def remove_generated_or_none_output_keys(output):
output["condition"]["details"] = {k: v for k, v in output["condition"]["details"].items() if v is not None}
if "id" in output:
output.pop("id")
return output

View File

@ -113,6 +113,17 @@ class Output:
transaction_id=output[5],
)
@staticmethod
def from_dict(output_dict: dict, index: int, transaction_id: str) -> Output:
return Output(
id="placeholder",
amount=int(output_dict["amount"]),
public_keys=output_dict["public_keys"],
condition=Condition.from_dict(output_dict["condition"]),
index=index,
transaction_id=transaction_id
)
def to_dict(self) -> dict:
return {
"id": self.id,

View File

@ -389,7 +389,9 @@ class Planetmint(object):
if input_tx is None:
for ctxn in current_transactions:
if ctxn.id == input_txid:
input_tx = ctxn
ctxn_dict = ctxn.to_dict()
input_tx = DbTransaction.from_dict(ctxn_dict)
_output = [Output.from_dict(output, index, ctxn.id) for index, output in enumerate(ctxn_dict["outputs"])]
if input_tx is None:
raise InputDoesNotExist("input `{}` doesn't exist".format(input_txid))