mirror of
https://github.com/planetmint/planetmint.git
synced 2025-11-24 14:35:45 +00:00
More fixes
Signed-off-by: cybnon <stefan.weber93@googlemail.com>
This commit is contained in:
parent
3ebfed41c7
commit
135d049969
@ -12,8 +12,8 @@ from dataclasses import dataclass
|
|||||||
class Asset:
|
class Asset:
|
||||||
id: str = ""
|
id: str = ""
|
||||||
tx_id: str = ""
|
tx_id: str = ""
|
||||||
data: str = ""
|
data: dict = ""
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def from_tuple(asset_tuple: tuple) -> Asset:
|
def from_tuple(asset_tuple: tuple) -> Asset:
|
||||||
return Asset(asset_tuple[2], asset_tuple[1], json.loads(asset_tuple[0]))
|
return Asset(asset_tuple[2], asset_tuple[1], json.loads(asset_tuple[0])["data"])
|
||||||
|
|||||||
@ -37,8 +37,9 @@ class Condition:
|
|||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Output:
|
class Output:
|
||||||
|
id: str = ""
|
||||||
tx_id: str = ""
|
tx_id: str = ""
|
||||||
amount: int = 0
|
amount: str = '0'
|
||||||
public_keys: List[str] = field(default_factory=list)
|
public_keys: List[str] = field(default_factory=list)
|
||||||
condition: Condition = field(default_factory=Condition)
|
condition: Condition = field(default_factory=Condition)
|
||||||
|
|
||||||
@ -54,6 +55,7 @@ class Output:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def from_tuple(output: tuple) -> Output:
|
def from_tuple(output: tuple) -> Output:
|
||||||
return Output(
|
return Output(
|
||||||
|
id=output[5],
|
||||||
tx_id=output[0],
|
tx_id=output[0],
|
||||||
amount=output[1],
|
amount=output[1],
|
||||||
condition=Condition(
|
condition=Condition(
|
||||||
|
|||||||
@ -31,7 +31,7 @@ register_query = module_dispatch_registrar(query)
|
|||||||
|
|
||||||
|
|
||||||
@register_query(TarantoolDBConnection)
|
@register_query(TarantoolDBConnection)
|
||||||
def _group_transaction_by_ids(connection, txids: list):
|
def _group_transaction_by_ids(connection, txids: list) -> list[Transaction]:
|
||||||
_transactions = []
|
_transactions = []
|
||||||
for txid in txids:
|
for txid in txids:
|
||||||
tx = get_transaction_space_by_id(connection, txid)
|
tx = get_transaction_space_by_id(connection, txid)
|
||||||
@ -39,8 +39,9 @@ def _group_transaction_by_ids(connection, txids: list):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
tx.inputs = get_inputs_by_tx_id(connection, txid)
|
tx.inputs = get_inputs_by_tx_id(connection, txid)
|
||||||
tx.outputs = get_outputs_by_tx_id(connection, txid)
|
_output = get_outputs_by_tx_id(connection, txid)
|
||||||
tx.keys = get_keys_by_tx_id(connection, txid)
|
_keys = get_keys_by_tx_id(connection, txid)
|
||||||
|
tx.outputs = [_enricht_output_with_public_keys(_keys, output) for output in _output]
|
||||||
tx.assets = get_assets_by_tx_id(connection, txid)
|
tx.assets = get_assets_by_tx_id(connection, txid)
|
||||||
tx.metadata = get_metadata_by_tx_id(connection, txid)
|
tx.metadata = get_metadata_by_tx_id(connection, txid)
|
||||||
tx.script = get_script_by_tx_id(connection, txid)
|
tx.script = get_script_by_tx_id(connection, txid)
|
||||||
@ -49,6 +50,10 @@ def _group_transaction_by_ids(connection, txids: list):
|
|||||||
return _transactions
|
return _transactions
|
||||||
|
|
||||||
|
|
||||||
|
def _enricht_output_with_public_keys(keys: list[Keys], output: Output) -> Output:
|
||||||
|
output.public_keys = [key.public_keys for key in keys if key.output_id == output.id]
|
||||||
|
return output
|
||||||
|
|
||||||
@register_query(TarantoolDBConnection)
|
@register_query(TarantoolDBConnection)
|
||||||
def get_inputs_by_tx_id(connection, tx_id: str) -> list[Input]:
|
def get_inputs_by_tx_id(connection, tx_id: str) -> list[Input]:
|
||||||
_inputs = connection.run(connection.space(TARANT_TABLE_INPUT).select(tx_id, index=TARANT_ID_SEARCH))
|
_inputs = connection.run(connection.space(TARANT_TABLE_INPUT).select(tx_id, index=TARANT_ID_SEARCH))
|
||||||
@ -183,7 +188,7 @@ def get_transaction_space_by_id(connection, transaction_id):
|
|||||||
|
|
||||||
@register_query(TarantoolDBConnection)
|
@register_query(TarantoolDBConnection)
|
||||||
def get_transaction_single(connection, transaction_id):
|
def get_transaction_single(connection, transaction_id):
|
||||||
return _group_transaction_by_ids(txids=[transaction_id], connection=connection)
|
return _group_transaction_by_ids(txids=[transaction_id], connection=connection)[0]
|
||||||
|
|
||||||
|
|
||||||
@register_query(TarantoolDBConnection)
|
@register_query(TarantoolDBConnection)
|
||||||
|
|||||||
@ -224,11 +224,11 @@ class Planetmint(object):
|
|||||||
return backend.query.delete_unspent_outputs(self.connection, *unspent_outputs)
|
return backend.query.delete_unspent_outputs(self.connection, *unspent_outputs)
|
||||||
|
|
||||||
def is_committed(self, transaction_id):
|
def is_committed(self, transaction_id):
|
||||||
transaction = backend.query.get_transaction(self.connection, transaction_id)
|
transaction = backend.query.get_transaction_space_by_id(self.connection, transaction_id)
|
||||||
return bool(transaction)
|
return bool(transaction)
|
||||||
|
|
||||||
def get_transaction(self, transaction_id):
|
def get_transaction(self, transaction_id):
|
||||||
return backend.query.get_transaction(self.connection, transaction_id)
|
return backend.query.get_transaction_single(self.connection, transaction_id)
|
||||||
|
|
||||||
def get_transactions(self, txn_ids):
|
def get_transactions(self, txn_ids):
|
||||||
return backend.query.get_transactions(self.connection, txn_ids)
|
return backend.query.get_transactions(self.connection, txn_ids)
|
||||||
@ -278,7 +278,7 @@ class Planetmint(object):
|
|||||||
raise DoubleSpend('tx "{}" spends inputs twice'.format(txid))
|
raise DoubleSpend('tx "{}" spends inputs twice'.format(txid))
|
||||||
elif transactions:
|
elif transactions:
|
||||||
tx_id = transactions[0]["transactions"].id
|
tx_id = transactions[0]["transactions"].id
|
||||||
tx = backend.query.get_transaction(self.connection, tx_id)
|
tx = backend.query.get_transaction_single(self.connection, tx_id)
|
||||||
assets = backend.query.get_assets_by_tx_id(self.connection, tx_id)
|
assets = backend.query.get_assets_by_tx_id(self.connection, tx_id)
|
||||||
transaction = {"transactions": tx} | {"assets": [asset.data for asset in assets]}
|
transaction = {"transactions": tx} | {"assets": [asset.data for asset in assets]}
|
||||||
elif current_spent_transactions:
|
elif current_spent_transactions:
|
||||||
@ -693,7 +693,7 @@ class Planetmint(object):
|
|||||||
return recipients
|
return recipients
|
||||||
|
|
||||||
def show_election_status(self, transaction):
|
def show_election_status(self, transaction):
|
||||||
data = transaction.assets[0]["data"]
|
data = transaction.assets[0]
|
||||||
if "public_key" in data.keys():
|
if "public_key" in data.keys():
|
||||||
data["public_key"] = public_key_to_base64(data["public_key"]["value"])
|
data["public_key"] = public_key_to_base64(data["public_key"]["value"])
|
||||||
response = ""
|
response = ""
|
||||||
@ -757,7 +757,7 @@ class Planetmint(object):
|
|||||||
def get_commited_votes(self, transaction, election_pk=None): # TODO: move somewhere else
|
def get_commited_votes(self, transaction, election_pk=None): # TODO: move somewhere else
|
||||||
if election_pk is None:
|
if election_pk is None:
|
||||||
election_pk = election_id_to_public_key(transaction.id)
|
election_pk = election_id_to_public_key(transaction.id)
|
||||||
txns = list(backend.query.get_asset_tokens_for_public_key(self.connection, transaction.id, election_pk))
|
txns = backend.query.get_asset_tokens_for_public_key(self.connection, transaction.id, election_pk)
|
||||||
return self.count_votes(election_pk, txns)
|
return self.count_votes(election_pk, txns)
|
||||||
|
|
||||||
def _get_initiated_elections(self, height, txns): # TODO: move somewhere else
|
def _get_initiated_elections(self, height, txns): # TODO: move somewhere else
|
||||||
@ -851,7 +851,7 @@ class Planetmint(object):
|
|||||||
votes_committed = self.get_commited_votes(transaction, election_pk)
|
votes_committed = self.get_commited_votes(transaction, election_pk)
|
||||||
votes_current = self.count_votes(election_pk, current_votes)
|
votes_current = self.count_votes(election_pk, current_votes)
|
||||||
|
|
||||||
total_votes = sum(output.amount for output in transaction.outputs)
|
total_votes = sum(int(output.amount) for output in transaction.outputs)
|
||||||
if (votes_committed < (2 / 3) * total_votes) and (votes_committed + votes_current >= (2 / 3) * total_votes):
|
if (votes_committed < (2 / 3) * total_votes) and (votes_committed + votes_current >= (2 / 3) * total_votes):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@ -909,7 +909,7 @@ class Planetmint(object):
|
|||||||
if election.operation == CHAIN_MIGRATION_ELECTION:
|
if election.operation == CHAIN_MIGRATION_ELECTION:
|
||||||
self.migrate_abci_chain()
|
self.migrate_abci_chain()
|
||||||
if election.operation == VALIDATOR_ELECTION:
|
if election.operation == VALIDATOR_ELECTION:
|
||||||
validator_updates = [election.assets[0]["data"]]
|
validator_updates = [election.assets[0].data]
|
||||||
curr_validator_set = self.get_validators(new_height)
|
curr_validator_set = self.get_validators(new_height)
|
||||||
updated_validator_set = new_validator_set(curr_validator_set, validator_updates)
|
updated_validator_set = new_validator_set(curr_validator_set, validator_updates)
|
||||||
|
|
||||||
@ -917,7 +917,7 @@ class Planetmint(object):
|
|||||||
|
|
||||||
# TODO change to `new_height + 2` when upgrading to Tendermint 0.24.0.
|
# TODO change to `new_height + 2` when upgrading to Tendermint 0.24.0.
|
||||||
self.store_validator_set(new_height + 1, updated_validator_set)
|
self.store_validator_set(new_height + 1, updated_validator_set)
|
||||||
return encode_validator(election.assets[0]["data"])
|
return encode_validator(election.assets[0].data)
|
||||||
|
|
||||||
|
|
||||||
Block = namedtuple("Block", ("app_hash", "height", "transactions"))
|
Block = namedtuple("Block", ("app_hash", "height", "transactions"))
|
||||||
|
|||||||
@ -320,7 +320,7 @@ def test_election_new_upsert_validator_with_tendermint(b, priv_validator_path, u
|
|||||||
|
|
||||||
election_id = run_election_new_upsert_validator(new_args, b)
|
election_id = run_election_new_upsert_validator(new_args, b)
|
||||||
|
|
||||||
assert b.get_transaction_space_by_id(election_id)
|
assert b.get_transaction(election_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.bdb
|
@pytest.mark.bdb
|
||||||
@ -347,7 +347,7 @@ def test_election_new_upsert_validator_without_tendermint(caplog, b, priv_valida
|
|||||||
with caplog.at_level(logging.INFO):
|
with caplog.at_level(logging.INFO):
|
||||||
election_id = run_election_new_upsert_validator(args, b)
|
election_id = run_election_new_upsert_validator(args, b)
|
||||||
assert caplog.records[0].msg == "[SUCCESS] Submitted proposal with id: " + election_id
|
assert caplog.records[0].msg == "[SUCCESS] Submitted proposal with id: " + election_id
|
||||||
assert b.get_transaction_space_by_id(election_id)
|
assert b.get_transaction(election_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.abci
|
@pytest.mark.abci
|
||||||
@ -358,7 +358,7 @@ def test_election_new_chain_migration_with_tendermint(b, priv_validator_path, us
|
|||||||
|
|
||||||
election_id = run_election_new_chain_migration(new_args, b)
|
election_id = run_election_new_chain_migration(new_args, b)
|
||||||
|
|
||||||
assert b.get_transaction_space_by_id(election_id)
|
assert b.get_transaction(election_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.bdb
|
@pytest.mark.bdb
|
||||||
@ -377,7 +377,7 @@ def test_election_new_chain_migration_without_tendermint(caplog, b, priv_validat
|
|||||||
with caplog.at_level(logging.INFO):
|
with caplog.at_level(logging.INFO):
|
||||||
election_id = run_election_new_chain_migration(args, b)
|
election_id = run_election_new_chain_migration(args, b)
|
||||||
assert caplog.records[0].msg == "[SUCCESS] Submitted proposal with id: " + election_id
|
assert caplog.records[0].msg == "[SUCCESS] Submitted proposal with id: " + election_id
|
||||||
assert b.get_transaction_space_by_id(election_id)
|
assert b.get_transaction(election_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.bdb
|
@pytest.mark.bdb
|
||||||
@ -446,7 +446,7 @@ def test_election_approve_with_tendermint(b, priv_validator_path, user_sk, valid
|
|||||||
args = Namespace(action="approve", election_id=election_id, sk=priv_validator_path, config={})
|
args = Namespace(action="approve", election_id=election_id, sk=priv_validator_path, config={})
|
||||||
approve = run_election_approve(args, b)
|
approve = run_election_approve(args, b)
|
||||||
|
|
||||||
assert b.get_transaction_space_by_id(approve)
|
assert b.get_transaction(approve)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.bdb
|
@pytest.mark.bdb
|
||||||
@ -463,7 +463,7 @@ def test_election_approve_without_tendermint(caplog, b, priv_validator_path, new
|
|||||||
with caplog.at_level(logging.INFO):
|
with caplog.at_level(logging.INFO):
|
||||||
approval_id = run_election_approve(args, b)
|
approval_id = run_election_approve(args, b)
|
||||||
assert caplog.records[0].msg == "[SUCCESS] Your vote has been submitted"
|
assert caplog.records[0].msg == "[SUCCESS] Your vote has been submitted"
|
||||||
assert b.get_transaction_space_by_id(approval_id)
|
assert b.get_transaction(approval_id)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.bdb
|
@pytest.mark.bdb
|
||||||
|
|||||||
@ -105,12 +105,12 @@ class TestBigchainApi(object):
|
|||||||
tx = Create.generate([alice.public_key], [([alice.public_key], 1)], assets=[asset1]).sign([alice.private_key])
|
tx = Create.generate([alice.public_key], [([alice.public_key], 1)], assets=[asset1]).sign([alice.private_key])
|
||||||
b.store_bulk_transactions([tx])
|
b.store_bulk_transactions([tx])
|
||||||
|
|
||||||
tx_from_db = b.get_transaction_space_by_id(tx.id)
|
tx_from_db = b.get_transaction(tx.id)
|
||||||
|
|
||||||
before = tx.to_dict()
|
before = tx.to_dict()
|
||||||
after = tx_from_db.to_dict()
|
after = tx_from_db.to_dict()
|
||||||
|
|
||||||
assert before["assets"][0]["data"] == after["transaction"]["assets"][0]["data"]
|
assert before["assets"][0] == after["transaction"]["assets"][0]
|
||||||
before.pop("asset", None)
|
before.pop("asset", None)
|
||||||
after["transaction"].pop("asset", None)
|
after["transaction"].pop("asset", None)
|
||||||
assert before == after["transaction"]
|
assert before == after["transaction"]
|
||||||
@ -131,7 +131,7 @@ class TestTransactionValidation(object):
|
|||||||
from transactions.common.exceptions import InvalidSignature
|
from transactions.common.exceptions import InvalidSignature
|
||||||
|
|
||||||
input_tx = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
input_tx = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
||||||
input_transaction = b.get_transaction_space_by_id(input_tx.txid)
|
input_transaction = b.get_transaction(input_tx.txid)
|
||||||
sk, pk = generate_key_pair()
|
sk, pk = generate_key_pair()
|
||||||
tx = Create.generate([pk], [([user_pk], 1)])
|
tx = Create.generate([pk], [([user_pk], 1)])
|
||||||
tx.operation = "TRANSFER"
|
tx.operation = "TRANSFER"
|
||||||
@ -158,7 +158,7 @@ class TestMultipleInputs(object):
|
|||||||
user2_sk, user2_pk = crypto.generate_key_pair()
|
user2_sk, user2_pk = crypto.generate_key_pair()
|
||||||
|
|
||||||
tx_link = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
tx_link = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
||||||
input_tx = b.get_transaction_space_by_id(tx_link.txid)
|
input_tx = b.get_transaction(tx_link.txid)
|
||||||
inputs = input_tx.to_inputs()
|
inputs = input_tx.to_inputs()
|
||||||
tx = Transfer.generate(inputs, [([user2_pk], 1)], asset_ids=[input_tx.id])
|
tx = Transfer.generate(inputs, [([user2_pk], 1)], asset_ids=[input_tx.id])
|
||||||
tx = tx.sign([user_sk])
|
tx = tx.sign([user_sk])
|
||||||
@ -175,7 +175,7 @@ class TestMultipleInputs(object):
|
|||||||
user3_sk, user3_pk = crypto.generate_key_pair()
|
user3_sk, user3_pk = crypto.generate_key_pair()
|
||||||
tx_link = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
tx_link = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
||||||
|
|
||||||
input_tx = b.get_transaction_space_by_id(tx_link.txid)
|
input_tx = b.get_transaction(tx_link.txid)
|
||||||
tx = Transfer.generate(input_tx.to_inputs(), [([user2_pk, user3_pk], 1)], asset_ids=[input_tx.id])
|
tx = Transfer.generate(input_tx.to_inputs(), [([user2_pk, user3_pk], 1)], asset_ids=[input_tx.id])
|
||||||
tx = tx.sign([user_sk])
|
tx = tx.sign([user_sk])
|
||||||
|
|
||||||
@ -195,7 +195,7 @@ class TestMultipleInputs(object):
|
|||||||
b.store_bulk_transactions([tx])
|
b.store_bulk_transactions([tx])
|
||||||
|
|
||||||
owned_input = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
owned_input = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
||||||
input_tx = b.get_transaction_space_by_id(owned_input.txid)
|
input_tx = b.get_transaction(owned_input.txid)
|
||||||
inputs = input_tx.to_inputs()
|
inputs = input_tx.to_inputs()
|
||||||
|
|
||||||
transfer_tx = Transfer.generate(inputs, [([user3_pk], 1)], asset_ids=[input_tx.id])
|
transfer_tx = Transfer.generate(inputs, [([user3_pk], 1)], asset_ids=[input_tx.id])
|
||||||
@ -220,7 +220,7 @@ class TestMultipleInputs(object):
|
|||||||
|
|
||||||
# get input
|
# get input
|
||||||
tx_link = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
tx_link = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
||||||
tx_input = b.get_transaction_space_by_id(tx_link.txid)
|
tx_input = b.get_transaction(tx_link.txid)
|
||||||
|
|
||||||
tx = Transfer.generate(tx_input.to_inputs(), [([user3_pk, user4_pk], 1)], asset_ids=[tx_input.id])
|
tx = Transfer.generate(tx_input.to_inputs(), [([user3_pk, user4_pk], 1)], asset_ids=[tx_input.id])
|
||||||
tx = tx.sign([user_sk, user2_sk])
|
tx = tx.sign([user_sk, user2_sk])
|
||||||
|
|||||||
@ -235,7 +235,7 @@ def test_deliver_tx__valid_create_updates_db_and_emits_event(b, init_chain_reque
|
|||||||
|
|
||||||
app.end_block(types.RequestEndBlock(height=99))
|
app.end_block(types.RequestEndBlock(height=99))
|
||||||
app.commit()
|
app.commit()
|
||||||
assert b.get_transaction_space_by_id(tx.id).id == tx.id
|
assert b.get_transaction(tx.id).id == tx.id
|
||||||
block_event = events.get()
|
block_event = events.get()
|
||||||
assert block_event.data["transactions"] == [tx]
|
assert block_event.data["transactions"] == [tx]
|
||||||
|
|
||||||
@ -264,7 +264,7 @@ def test_deliver_tx__double_spend_fails(b, init_chain_request):
|
|||||||
|
|
||||||
app.end_block(types.RequestEndBlock(height=99))
|
app.end_block(types.RequestEndBlock(height=99))
|
||||||
app.commit()
|
app.commit()
|
||||||
assert b.get_transaction_space_by_id(tx.id).id == tx.id
|
assert b.get_transaction(tx.id).id == tx.id
|
||||||
result = app.deliver_tx(encode_tx_to_bytes(tx))
|
result = app.deliver_tx(encode_tx_to_bytes(tx))
|
||||||
assert result.code == CodeTypeError
|
assert result.code == CodeTypeError
|
||||||
|
|
||||||
@ -410,7 +410,7 @@ def test_rollback_pre_commit_state_after_crash(b):
|
|||||||
rollback(b)
|
rollback(b)
|
||||||
|
|
||||||
for tx in txs:
|
for tx in txs:
|
||||||
assert b.get_transaction_space_by_id(tx.id)
|
assert b.get_transaction(tx.id)
|
||||||
assert b.get_latest_abci_chain()
|
assert b.get_latest_abci_chain()
|
||||||
assert len(b.get_validator_set()["validators"]) == 1
|
assert len(b.get_validator_set()["validators"]) == 1
|
||||||
assert b.get_election(migration_election.id)
|
assert b.get_election(migration_election.id)
|
||||||
@ -421,7 +421,7 @@ def test_rollback_pre_commit_state_after_crash(b):
|
|||||||
rollback(b)
|
rollback(b)
|
||||||
|
|
||||||
for tx in txs:
|
for tx in txs:
|
||||||
assert not b.get_transaction_space_by_id(tx.id)
|
assert not b.get_transaction(tx.id)
|
||||||
assert not b.get_latest_abci_chain()
|
assert not b.get_latest_abci_chain()
|
||||||
assert len(b.get_validator_set()["validators"]) == 4
|
assert len(b.get_validator_set()["validators"]) == 4
|
||||||
assert len(b.get_validator_set(2)["validators"]) == 4
|
assert len(b.get_validator_set(2)["validators"]) == 4
|
||||||
|
|||||||
@ -78,7 +78,7 @@ def test_app(b, eventqueue_fixture, init_chain_request):
|
|||||||
data = p.process("commit", None)
|
data = p.process("commit", None)
|
||||||
res = next(read_messages(BytesIO(data), types.Response))
|
res = next(read_messages(BytesIO(data), types.Response))
|
||||||
assert res.commit.data == new_block_hash.encode("utf-8")
|
assert res.commit.data == new_block_hash.encode("utf-8")
|
||||||
assert b.get_transaction_space_by_id(tx.id).id == tx.id
|
assert b.get_transaction(tx.id).id == tx.id
|
||||||
|
|
||||||
block0 = b.get_latest_block()
|
block0 = b.get_latest_block()
|
||||||
assert block0
|
assert block0
|
||||||
|
|||||||
@ -67,9 +67,9 @@ def test_asset_is_separated_from_transaciton(b):
|
|||||||
tx_dict = copy.deepcopy(tx.to_dict())
|
tx_dict = copy.deepcopy(tx.to_dict())
|
||||||
|
|
||||||
b.store_bulk_transactions([tx])
|
b.store_bulk_transactions([tx])
|
||||||
assert "asset" not in backend.query.get_transaction(b.connection, tx.id)
|
assert "asset" not in backend.query.get_transaction_single(b.connection, tx.id)
|
||||||
assert backend.query.get_asset(b.connection, tx.id)["data"] == assets[0]
|
assert backend.query.get_asset(b.connection, tx.id).data == assets[0]
|
||||||
assert b.get_transaction_space_by_id(tx.id).to_dict() == tx_dict
|
assert b.get_transaction(tx.id).to_dict() == tx_dict
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.bdb
|
@pytest.mark.bdb
|
||||||
|
|||||||
@ -246,7 +246,7 @@ def test_upsert_validator(b, node_key, node_keys, ed25519_node_keys):
|
|||||||
)
|
)
|
||||||
code, message = b.write_transaction(election, BROADCAST_TX_COMMIT)
|
code, message = b.write_transaction(election, BROADCAST_TX_COMMIT)
|
||||||
assert code == 202
|
assert code == 202
|
||||||
assert b.get_transaction_space_by_id(election.id)
|
assert b.get_transaction(election.id)
|
||||||
|
|
||||||
tx_vote = gen_vote(election, 0, ed25519_node_keys)
|
tx_vote = gen_vote(election, 0, ed25519_node_keys)
|
||||||
assert b.validate_transaction(tx_vote)
|
assert b.validate_transaction(tx_vote)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user