From f55f22144fd9a32d08ffb75ee1ea563c37627ed5 Mon Sep 17 00:00:00 2001 From: Lev Berman Date: Thu, 13 Sep 2018 15:35:24 +0200 Subject: [PATCH] Problem: the skip_id param is redundant. (#2531) Solution: remove the param; only call validate_id where it is needed. --- bigchaindb/common/transaction.py | 2 ++ bigchaindb/elections/vote.py | 6 ++---- bigchaindb/models.py | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/bigchaindb/common/transaction.py b/bigchaindb/common/transaction.py index 40cc68e7..a1dfc626 100644 --- a/bigchaindb/common/transaction.py +++ b/bigchaindb/common/transaction.py @@ -1195,7 +1195,9 @@ class Transaction(object): """ operation = tx.get('operation', Transaction.CREATE) if isinstance(tx, dict) else Transaction.CREATE cls = Transaction.resolve_class(operation) + if not skip_schema_validation: + cls.validate_id(tx) cls.validate_schema(tx) inputs = [Input.from_dict(input_) for input_ in tx['inputs']] diff --git a/bigchaindb/elections/vote.py b/bigchaindb/elections/vote.py index 01175290..adafb7f3 100644 --- a/bigchaindb/elections/vote.py +++ b/bigchaindb/elections/vote.py @@ -42,16 +42,14 @@ class Vote(Transaction): def generate(cls, inputs, recipients, election_id, metadata=None): (inputs, outputs) = cls.validate_transfer(inputs, recipients, election_id, metadata) election_vote = cls(cls.OPERATION, {'id': election_id}, inputs, outputs, metadata) - cls.validate_schema(election_vote.to_dict(), skip_id=True) + cls.validate_schema(election_vote.to_dict()) return election_vote @classmethod - def validate_schema(cls, tx, skip_id=False): + def validate_schema(cls, tx): """Validate the validator election vote transaction. Since `VOTE` extends `TRANSFER` transaction, all the validations for `CREATE` transaction should be inherited """ - if not skip_id: - cls.validate_id(tx) _validate_schema(TX_SCHEMA_COMMON, tx) _validate_schema(TX_SCHEMA_TRANSFER, tx) _validate_schema(cls.TX_SCHEMA_CUSTOM, tx) diff --git a/bigchaindb/models.py b/bigchaindb/models.py index 9df4dbd4..f53aed02 100644 --- a/bigchaindb/models.py +++ b/bigchaindb/models.py @@ -45,7 +45,6 @@ class Transaction(Transaction): @classmethod def validate_schema(cls, tx_body): - cls.validate_id(tx_body) validate_transaction_schema(tx_body) validate_txn_obj('asset', tx_body['asset'], 'data', validate_key) validate_txn_obj('metadata', tx_body, 'metadata', validate_key)