mirror of
https://github.com/planetmint/planetmint.git
synced 2025-11-24 06:25:45 +00:00
Further fixes
Signed-off-by: cybnon <stefan.weber93@googlemail.com>
This commit is contained in:
parent
cb5b5b8509
commit
fe495144c4
@ -15,51 +15,50 @@ class SubCondition:
|
||||
|
||||
@dataclass
|
||||
class ConditionDetails:
|
||||
type: str
|
||||
type: str = ""
|
||||
public_key: str = ""
|
||||
threshold: int = 0
|
||||
sub_conditions: list[SubCondition] = field(default_factory=list)
|
||||
sub_conditions: list[SubCondition] = None
|
||||
|
||||
|
||||
@dataclass
|
||||
class Condition:
|
||||
uri: str
|
||||
details: ConditionDetails
|
||||
uri: str = ""
|
||||
details: ConditionDetails = field(default_factory=ConditionDetails)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Output:
|
||||
id: str
|
||||
amount: int
|
||||
condition: field(default_factory=Condition)
|
||||
public_keys: str = ""
|
||||
tx_id: str = ""
|
||||
amount: int = 0
|
||||
condition: Condition = field(default_factory=Condition)
|
||||
|
||||
@staticmethod
|
||||
def from_dict(output: dict, tx_id: str = "") -> Output:
|
||||
if output["condition"]["details"].get("subconditions") is None:
|
||||
return output_with_public_key(output, tx_id)
|
||||
else:
|
||||
print(output)
|
||||
return output_with_sub_conditions(output, tx_id)
|
||||
|
||||
@staticmethod
|
||||
def from_tuple(output: tuple) -> Output:
|
||||
return Output(
|
||||
id=output[0],
|
||||
public_keys=output[1],
|
||||
tx_id=output[0],
|
||||
condition=Condition(
|
||||
uri=output[2],
|
||||
uri=output[1],
|
||||
details=ConditionDetails(
|
||||
type=output[3],
|
||||
public_key=output[4],
|
||||
threshold=output[5],
|
||||
sub_conditions=output[6],
|
||||
type=output[2],
|
||||
public_key=output[3],
|
||||
threshold=output[4],
|
||||
sub_conditions=output[5],
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
def to_output_dict(self) -> dict:
|
||||
return {
|
||||
"id": self.id,
|
||||
"id": self.tx_id,
|
||||
"public_keys": self.public_keys,
|
||||
"condition": {
|
||||
"uri": self.condition.uri,
|
||||
@ -75,7 +74,7 @@ class Output:
|
||||
|
||||
def output_with_sub_conditions(output, tx_id) -> Output:
|
||||
return Output(
|
||||
id=tx_id,
|
||||
tx_id=tx_id,
|
||||
amount=output["amount"],
|
||||
condition=Condition(
|
||||
uri=output["condition"]["uri"],
|
||||
@ -98,7 +97,7 @@ def output_with_sub_conditions(output, tx_id) -> Output:
|
||||
|
||||
def output_with_public_key(output, tx_id) -> Output:
|
||||
return Output(
|
||||
id=tx_id,
|
||||
tx_id=tx_id,
|
||||
amount=output["amount"],
|
||||
condition=Condition(
|
||||
uri=output["condition"]["uri"],
|
||||
|
||||
@ -78,10 +78,14 @@ def store_transaction_inputs(connection, input: Input, index: int):
|
||||
@register_query(TarantoolDBConnection)
|
||||
def store_transaction_outputs(connection, output: Output, index: int):
|
||||
connection.run(connection.space(TARANT_TABLE_OUTPUT).insert((
|
||||
output.public_keys,
|
||||
output.condition,
|
||||
output.condition,
|
||||
output.tx_id,
|
||||
output.amount,
|
||||
output.condition.uri if output.condition else "",
|
||||
output.condition.details.type if output.condition.details else "",
|
||||
output.condition.details.public_key if output.condition.details else "",
|
||||
uuid4().hex,
|
||||
output.condition.details.threshold if output.condition.details else "",
|
||||
output.condition.details.sub_conditions if output.condition.details else "",
|
||||
index
|
||||
)))
|
||||
|
||||
@ -97,7 +101,7 @@ def store_transactions(connection, signed_transactions: list):
|
||||
[store_transaction_inputs(connection, Input.from_dict(input, transaction["id"]), index) for
|
||||
index, input in enumerate(transaction[TARANT_TABLE_INPUT])]
|
||||
|
||||
[store_transaction_outputs(connection, Output.from_dict(output, transaction["id"])) for index, output in
|
||||
[store_transaction_outputs(connection, Output.from_dict(output, transaction["id"]), index) for index, output in
|
||||
enumerate(transaction[TARANT_TABLE_OUTPUT])]
|
||||
|
||||
for _key in txtuples[TARANT_TABLE_KEYS]:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user