Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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
Beispiel #4
0
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()))