def test_input_deserialization_with_invalid_input(user_pub): from bigchaindb.common.transaction import Input ffill = { 'owners_before': [user_pub], 'fulfillment': None, 'fulfills': None, } with raises(TypeError): Input.from_dict(ffill)
def test_input_deserialization_with_invalid_fulfillment_uri(user_pub): from bigchaindb.common.exceptions import InvalidSignature from bigchaindb.common.transaction import Input ffill = { 'owners_before': [user_pub], 'fulfillment': 'an invalid fulfillment', 'fulfills': None, } with raises(InvalidSignature): Input.from_dict(ffill)
def test_input_deserialization_with_unsigned_fulfillment(ffill_uri, user_pub): from bigchaindb.common.transaction import Input from cryptoconditions import Fulfillment expected = Input(Fulfillment.from_uri(ffill_uri), [user_pub]) ffill = { 'owners_before': [user_pub], 'fulfillment': Fulfillment.from_uri(ffill_uri), 'fulfills': None, } input = Input.from_dict(ffill) assert input == expected
def transfer(inputs, outputs, asset, metadata): """ Generate a TRANSFER transaction. The TRANSFER transaction transfers ownership of a given asset. """ inputs = [Input.from_dict(i) for i in listify(inputs)] outputs = [Output.from_dict(i) for i in listify(outputs)] tx = Transaction(Transaction.TRANSFER, asset=asset, inputs=inputs, outputs=outputs, metadata=metadata) click.echo(Transaction._to_str(tx.to_dict()))