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