mirror of
https://github.com/planetmint/planetmint.git
synced 2025-11-24 14:35:45 +00:00
added proper input conversion of the test cases and a proper input validation and object converion
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
This commit is contained in:
parent
d05acebb2f
commit
97513aca6a
@ -36,6 +36,7 @@ from transactions.common.exceptions import (
|
||||
)
|
||||
from transactions.common.transaction import VALIDATOR_ELECTION, CHAIN_MIGRATION_ELECTION
|
||||
from transactions.common.transaction_mode_types import BROADCAST_TX_COMMIT, BROADCAST_TX_ASYNC, BROADCAST_TX_SYNC
|
||||
from transactions.common.output import Output as TransactionOutput
|
||||
from transactions.types.elections.election import Election
|
||||
from transactions.types.elections.validator_utils import election_id_to_public_key
|
||||
|
||||
@ -414,8 +415,14 @@ class Planetmint(object):
|
||||
asset_id = tx.get_asset_id(input_txs)
|
||||
if asset_id != tx.assets[0]["id"]:
|
||||
raise AssetIdMismatch(("The asset id of the input does not" " match the asset id of the" " transaction"))
|
||||
|
||||
if not tx.inputs_valid(input_conditions):
|
||||
|
||||
# convert planetmint.Output objects to transactions.common.Output objects
|
||||
input_conditions_dict = Output.list_to_dict(input_conditions)
|
||||
input_conditions_converted = []
|
||||
for input_cond in input_conditions_dict:
|
||||
input_conditions_converted.append(TransactionOutput.from_dict( input_cond ))
|
||||
|
||||
if not tx.inputs_valid(input_conditions_converted):
|
||||
raise InvalidSignature("Transaction signature is invalid.")
|
||||
|
||||
input_amount = sum([input_condition.amount for input_condition in input_conditions])
|
||||
|
||||
@ -7,6 +7,7 @@ import random
|
||||
import pytest
|
||||
|
||||
from unittest.mock import patch
|
||||
from planetmint.backend.models import Input
|
||||
from transactions.types.assets.create import Create
|
||||
from transactions.types.assets.transfer import Transfer
|
||||
from ipld import marshal, multihash
|
||||
@ -110,10 +111,10 @@ class TestBigchainApi(object):
|
||||
before = tx.to_dict()
|
||||
after = tx_from_db.to_dict()
|
||||
|
||||
assert before["assets"][0] == after["transaction"]["assets"][0]
|
||||
before.pop("asset", None)
|
||||
after["transaction"].pop("asset", None)
|
||||
assert before == after["transaction"]
|
||||
assert before["assets"][0] == after["assets"][0]
|
||||
before.pop("assets", None)
|
||||
after.pop("assets", None)
|
||||
assert before == after
|
||||
|
||||
|
||||
class TestTransactionValidation(object):
|
||||
@ -159,7 +160,7 @@ class TestMultipleInputs(object):
|
||||
|
||||
tx_link = b.fastquery.get_outputs_by_public_key(user_pk).pop()
|
||||
input_tx = b.get_transaction(tx_link.txid)
|
||||
inputs = input_tx.to_inputs()
|
||||
inputs = Input.list_to_dict(input_tx.inputs)
|
||||
tx = Transfer.generate(inputs, [([user2_pk], 1)], asset_ids=[input_tx.id])
|
||||
tx = tx.sign([user_sk])
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user