From 602dfbea062dba69a65e11ec6226dc2de346f7a6 Mon Sep 17 00:00:00 2001 From: Sylvain Bellemare Date: Mon, 28 Nov 2016 19:30:09 +0100 Subject: [PATCH] Add transaction schema validation to the server by overriding Transaction.from_dict() in models.py --- bigchaindb/models.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bigchaindb/models.py b/bigchaindb/models.py index 3bbc80e3..bca182c3 100644 --- a/bigchaindb/models.py +++ b/bigchaindb/models.py @@ -6,6 +6,7 @@ from bigchaindb.common.exceptions import (InvalidHash, InvalidSignature, AssetIdMismatch, AmountError) from bigchaindb.common.transaction import Transaction, Asset from bigchaindb.common.util import gen_timestamp, serialize +from bigchaindb.common.schema import validate_transaction_schema class Transaction(Transaction): @@ -113,6 +114,11 @@ class Transaction(Transaction): else: return self + @classmethod + def from_dict(cls, tx_body): + validate_transaction_schema(tx_body) + return super().from_dict(tx_body) + class Block(object): """Bundle a list of Transactions in a Block. Nodes vote on its validity.